用于多任务用户界面建模的基于神经网络的多模态变换器的制作方法

专利2023-02-18  117


用于多任务用户界面建模的基于神经网络的多模态变换器
1.对相关申请的交叉引用
2.本技术要求2021年7月14日提交的美国临时专利申请第63/221,677号的优先权,其全部内容通过引用结合于此。


背景技术:

3.神经网络可被训练来预测与图形用户界面相关的建模任务的各方面,例如内容、功能、布局等。现代图形用户界面为建模开启了丰富的问题空间,在建模中输入固有地是多模态的,并且由几种不同类型的数据组成。基于图形用户界面,有大量的建模任务可以直接增强终端用户体验并推进智能用户界面的开发。


技术实现要素:

4.在一个方面,提供了一种计算机实现的方法。该方法包括经由计算设备接收由计算设备的图形用户界面提供的显示的截屏。该方法还包括由神经网络的图像-结构变换器通过融合基于截屏的第一嵌入和基于截屏中虚拟对象的布局的第二嵌入来生成表示。该方法还包括由神经网络并基于所生成的表示来预测与图形用户界面相关联的建模任务输出。该方法还包括由计算设备提供预测的建模任务输出。
5.在另一方面,提供了一种计算设备。该计算设备包括一个或多个处理器和数据存储装置。数据存储装置上存储有计算机可执行指令,当由一个或多个处理器执行时,这些指令使得计算设备执行功能。这些功能包括:经由计算设备接收由该计算设备的图形用户界面提供的显示的截屏;由神经网络的图像-结构变换器通过融合基于截屏的第一嵌入和基于截屏中虚拟对象的布局的第二嵌入来生成表示;由神经网络并基于所生成的表示来预测与图形用户界面相关联的建模任务输出;以及由计算设备提供预测的建模任务输出。
6.在另一方面,提供了一种计算机程序。该计算机程序包括指令,当由计算机执行时,这些指令使计算机执行功能。这些功能包括:经由计算设备接收由该计算设备的图形用户界面提供的显示的截屏;由神经网络的图像-结构变换器通过融合基于截屏的第一嵌入和基于截屏中虚拟对象的布局的第二嵌入来生成表示;由神经网络并基于所生成的表示来预测与图形用户界面相关联的建模任务输出;以及由计算设备提供预测的建模任务输出。
7.在另一方面,提供了一种制品。该制品包括其上存储有计算机可读指令的一个或多个计算机可读介质,当由计算设备的一个或多个处理器执行时,这些指令使得计算设备执行功能。这些功能包括:经由计算设备接收由该计算设备的图形用户界面提供的显示的截屏;由神经网络的图像-结构变换器通过融合基于截屏的第一嵌入和基于截屏中虚拟对象的布局的第二嵌入来生成表示;由神经网络并基于所生成的表示来预测与图形用户界面相关联的建模任务输出;以及由计算设备提供预测的建模任务输出。
8.在另一方面,提供了一种计算设备。该计算设备包括用于经由计算设备接收由该计算设备的图形用户界面提供的显示的截屏的装置;用于由神经网络的图像-结构变换器通过融合基于截屏的第一嵌入和基于截屏中虚拟对象的布局的第二嵌入来生成表示的装
置;用于通过神经网络并基于所生成的表示来预测与图形用户界面相关联的建模任务输出的装置;以及用于由计算设备提供预测的建模任务输出的装置。
9.前面的概述仅仅是说明性的,并不旨在以任何方式进行限制。除了上述说明性的方面、实施例和特征之外,通过参考附图和以下详细描述以及附图,进一步的方面、实施例和特征将变得显而易见。
附图说明
10.图1是示出根据示例实施例的示例神经网络的图。
11.图2a示出了根据示例实施例的ui对象检测任务的示例预测结果。
12.图2b示出了根据示例实施例的ui对象检测任务的附加示例预测结果。
13.图3示出了根据示例实施例的语言命令检测任务的示例。
14.图4示出了根据示例实施例的屏幕总结任务的示例。
15.图5示出了根据示例实施例的微件加文字任务的示例。
16.图6示出了根据示例实施例的可轻击性预测任务的示例。
17.图7是示出根据示例实施例的机器学习模型的训练和推理阶段的图。
18.图8描绘了根据示例实施例的分布式计算架构。
19.图9是根据示例实施例的计算设备的框图。
20.图10描绘了根据示例实施例的被布置为基于云的服务器系统的计算集群的网络。
21.图11是根据示例实施例的方法的流程图。
具体实施方式
22.本技术涉及基于变换器架构的神经网络,该神经网络可以接受多模态输入,并且可以同时完成图形用户界面的多个建模任务。任务可以包括例如ui对象检测、自然语言命令落地(grounding)、微件加文字(captioning)、屏幕总结(summariztion)和ui可轻击性(tappability)预测。该模型可被配置成处理三种类型的数据:图像、结构(例如,视图层次)和自然语言。
23.变换器的灵活架构使其成为解决各种问题的“瑞士军刀”。除了在处理应对同类输入或输出(如自然语言和视觉)的各个领域取得成功,变换器体系结构最近在处理涉及多模态输入、多任务输出或两者的问题方面显示出了有希望的结果。
24.这里描述的是对图形用户界面建模的任务,图形用户界面是支撑日常人类活动的几乎每个方面的重要媒介。现代图形用户界面为建模开启了丰富的问题空间,在建模中输入固有地是多模态的,由几种不同类型的数据组成。用户界面屏幕以视觉形式(即,屏幕截屏)和结构表示(即树状视图层级)两者存在。基于图形用户界面,有大量的将直接增强终端用户体验并推进智能用户界面的开发的建模任务。例如,现有的方法开发了模型和数据集,用于将语言命令落地到可执行的ui动作,为移动设备上的可访问性生成语言描述,以及理解用户界面的可用性,或者识别屏幕上的对象。以前的工作也开始学习用户界面屏幕的有效表示,这可以潜在地有利于下游任务。
25.描述了一种通用用户界面转换器(vut),其可以处理三种类型的数据:图像、结构(视图层级)和语言,并且可以执行多种不同的任务,例如,ui对象检测、自然语言命令落地、
微件加文字、屏幕总结和ui可轻击性预测。
26.vut可以同时执行不同的任务。通常,对不同任务使用不同模型会导致大量的计算资源,包括存储器资源、处理资源和/或电力资源。当任务必须在诸如移动电话的移动设备上执行时,这尤其具有挑战性。因此,使用一个模型执行所有不同的任务可以大大减少所需的计算资源量。
27.vut是用于图形用户界面多任务建模的多模态模型,通过一个模型来完成广泛的任务,以增强移动用户体验。
28.vut可以基于双塔变换器架构,一个用于图像结构,另一个用于语言,其中每个变换器用于编码和解码其自身的模态,具有跨塔(cross-tower)注意力(attention)。
29.图像结构转换器既可以用作编码器和解码器二者。vut的图像结构转换器可以跨模态执行早期融合。代替跨语言和图像区域操作,vut的图像结构转换器在整个截屏图像和视层级次结构上操作。这能够提高任务执行的效率和准确性。vut的图像结构转换器不仅用于表示学习,还用于当输入中不存在视图层级信息时的对象检测,例如用于对象检测任务。
30.vut的图像结构转换器是单塔架构,其中图像和对象查询二者都被输入到同一个转换器,即早期融合,而不是传统模型中使用的编码器-解码器架构。
31.vut的问答转换器是基于自动回归架构设计的,其中问题或命令作为前缀输入到模型中,响应被逐个标记(token)地解码。
32.对于语言(命令)落地任务,不是像现有模型中那样生成语言响应,而是使用模型的最后隐藏状态来检索屏幕上的ui对象以完成命令。
33.基于相同神经网络层使用多个不同的头(head)增加了效率和准确性,并且还使得能够对一个或多个任务进行有效的单独和/或联合训练。
34.图1是示出根据示例实施例的示例神经网络100的图。图形用户界面包含ui元素的集合,用于完成连贯的任务集。可以存在制定ui任务涉及的各种类型的数据:《s,v,t,q,a》。s是描述ui屏幕102a的视觉外观的截屏图像102。v是表示ui屏幕102的下层结构的视图层级结构104树。t是视图层级104中要操作或查询的目标对象106(ui元素)。q是任务的自然语言描述,其可以是诸如“元素的文字(caption)是什么?”的开放式问题130、诸如“对象看起来可点击吗?”的是或否问题、或诸如“点击下一个按钮”的命令等。当任务的响应形式是自然语言时,答案a 134是对问题q 130的自然语言答案。
35.在一些实施例中,该方法包括经由计算设备接收由计算设备的图形用户界面提供的显示的截屏102。
36.该方法还包括由神经网络100的图像-结构变换器108通过融合基于截屏的第一嵌入和基于屏幕截屏102中的虚拟对象的布局的第二嵌入来生成表示120。图像结构模型108对ui的整个截屏102及其视图层级树104进行编码,其中早期融合了两种模态。
37.通常,图像-结构转换器108是双模态模型,其获取诸如截屏102的图像和对应的视图层级104,并输出图像102和视图层级104中的每个节点的隐藏表示120。对于图像模态,截屏102的内容嵌入114cs可以由图像嵌入器110计算,并且视图层级104的内容嵌入114可以由结构嵌入器112计算。这种嵌入可以与模式和位置编码116ps相结合,并输入到图像-结构变换器108中。变换器118通常指神经网络100的变换器层,其中变换器层包括图像-结构变换器108和问题-答案变换器126。
38.截屏可能会随机调整大小以进行图像增强,因此可能会有不同的大小。在一些实施例中,可以使用截屏s 102的二进制非填充掩码s
mask
。此外,例如,可以应用张量整形和/或广播。内容嵌入114cs可以被确定为:
39.cs=dense(resnet(s));ps=pe(s
mask
)
ꢀꢀꢀ
(等式1)
40.其中,且其中,m是resnet之后的超像素的数量,并且d表示表示的维度。
41.在一些实施例中,该方法包括由神经网络100预测截屏102中的虚拟对象的布局。当在输入中不存在视图层级104时,图像-结构模型108预测ui对象。对于视图层级模态,当视图层级104不存在时,如在对象检测任务124中,视图层级模态的内容嵌入114v的值被设置为零。在一些实施例中,视图层级模态的位置编码116pv可以是每个查询位置的学习嵌入向量。当在输入中存在视图层级104时,视图层级树中的每个对象,视图层级104,被嵌入整个结构的上下文中。
42.用户界面(ui)对象可包括一组属性,包括类型、是否可点击、边界框的位置、文档中的顺序(dom)位置、文本内容以及对象是否是目标。属性可以单独嵌入到相同的维度中,然后通过相加来组合,以形成每个元素的嵌入。
43.这些属性可以单独嵌入到相同的维度中,然后通过相加进行组合,以形成每个元素e0的嵌入。注意,对于命令落地任务138,对象是否是目标的信息可能在输入中不存在,因为t将由模型预测。用于计算v中的节点的cv和pv方法可以类似于现有技术。无论v是否存在于输入中,视图层级模态的嵌入可以是两个张量:和
44.然后,该方法包括由神经网络100为截屏102和视图层级104中的每一个确定内容嵌入114和位置嵌入116。通过融合生成表示120可以包括基于内容嵌入114和位置嵌入116生成表示120。因为来自两种模态(图像模态和视图层级模态)的嵌入将联合参与变换器编码器的自注意力,所以使它们的位置编码对每个模态是全局的而不是局部的可能是有利的。为此,可学习的模态嵌入可以被添加到这些模态特定的位置编码中的每一个。来自两种模态的嵌入可以沿着第一维度连接(concatenate),以形成图像-结构变换器108的输入来输出表示120。
45.例如,ps和pv可以是每个模态内的位置编码。通常,来自两种模态的嵌入可以联合参与变换器编码器的自注意力。在一些实施例中,截屏102的位置嵌入116和视图层级104的位置嵌入116可以是对应于整个截屏102的全局嵌入。例如,位置编码可以是全局的,而不是对每个模态局部的。为此,可学习的模态嵌入可以被添加到这些模态特定的位置编码中的每一个,如下:
46.p
′s=ps+es;p
′v=pv+evꢀꢀꢀ
(等式2)
47.其中,和分别是图像和视图层级模态的可学习嵌入。然后,两种模态的嵌入可以沿着第一维度连接,以形成变换器编码器的输入:
48.c=concat
1st_dim
[cs,cv];p=concat
1st_dim
[p
′s,p
′v]
ꢀꢀꢀ
(等式3)
[0049]
其中,和分别是最终的内容嵌入和位置编码,它们被馈送到多层变换器编码器:
[0050]
h=transformer
encoder
(c,p)
ꢀꢀꢀ
(等式4)
[0051]
隐藏表示在一些实施例中,h可以针对每个模态的隐藏表示是分离的:
[0052]hs
=h[:m];hv=h[m:]
ꢀꢀꢀ
(等式5)
[0053]
同时导致每个模态的隐藏表示:和
[0054]
图像-结构模型108执行对象检测任务124。例如,对象输出层122可被配置成基于表示120输出ui对象检测任务124。在一些实施例中,该方法包括经由计算设备接收指示截屏102中的虚拟对象的布局的视图层级104。
[0055]
该方法还包括通过神经网络100并基于所生成的表示120来预测与图形用户界面相关联的建模任务输出。这里使用的术语“建模任务输出”通常指与图形用户界面相关联的任何任务。例如,图形用户界面可以包括虚拟对象、列表、图像、视频、图标、用户可选择的图标、用户可调整的控件(例如,调整图像特征、声音特性等的滑动条)、应用界面、应用图标以及用于文本的输入字段、图像、语音等。图形用户界面还可以包括这些对象,可以执行的任务,层级结构,以及包括颜色、色调、分辨率等的显示特性之间的各种关系。因此,建模任务输出可以是为图形用户界面识别各种元素、属性、功能、设计、布局等的任何任务的输出。这样的任务可以包括自然语言命令落地任务、微件加文字任务、屏幕摘要任务、对象检测任务、可轻击性预测任务等的输出。
[0056]
在一些实施例中,图形用户界面的建模包括多任务建模,并且其中神经网络100包括双变换器,其中图像-结构变换器108预测图像-结构任务的建模任务输出,问题-答案变换器126预测自然语言任务的建模任务输出。问题-答案模型126对问题进行编码,并使用来自图像-结构模型108的编码来预测答案。图像-结构转换器108和问题-答案转换器126配置有跨塔(cross tower)注意力(例如,编码器-解码器注意力146)。
[0057]
在一些实施例中,问题-答案变换器126可以是编码问题q 130并解码答案a 134的语言模型。该过程可以开始于“开始”128,结束于“eos”132。模型的输入可以是x=x
1:t
,其中t表示序列的长度。该输入可以是用于命令落地任务138的问题q 130的标记序列,或者当答案a 134是要生成的语言答案时,是q 130与解码的答案a

的连接。在一些实施例中,在具有教导的训练期间,强制a=a

。在自回归推断过程中,a

是依赖于步长的预测的标记序列:
[0058]g1:t
=transformer
decoder
(e(x
1:t
),pe(1:t);hs,hvꢀꢀꢀ
(等式6)
[0059]
其中,xi是序列中的第i个标记(1≤i≤t),e(.)和pe(.)计算序列中的每个标记的内容嵌入和位置编码。hs和hv可以通过变换器解码器中的编码器-解码器注意力146来访问。隐藏状态的序列,可用于预测下一标记,用以生成答案或检索命令落地任务138的视图层级中的目标ui对象。
[0060]
在一些实施例中,建模任务输出用于以下任务中的一个或多个:对象检测任务124、自然语言命令落地任务138、微件加文字任务140、屏幕摘要任务142或可轻击性预测任务144。当任务输出是语言时,问题-答案模型126直接实现任务,例如,微件加文字任务140、屏幕摘要任务142和可轻击性预测任务144。对于命令落地任务138,图像-结构转换器108的表示118可以替代地用于定位要在其上动作的ui元素。
[0061]
在一些实施例中,神经网络100包括对象检测头、文本头和指示器(pointer)头。这些头基于隐藏表示120。例如,诸如对象输出层122的对象检测头可用于ui对象检测任务
124,其中hv可用作输入层。然后,
[0062][0063]
其中,是输出对象类型logits的线性投影,其中表示比ui对象类的数量多1(例如,21+1=22)。在一些实施例中,附加的填充类型可以被包括在原始ui对象类之上。该函数是由θ
bbx
参数化的多层感知机,并且是用于生成坐标的线性投影。logits用于在训练期间使用匈牙利匹配(hungarian matching)生成对象预测和计算最佳复合损失两者。
[0064]
文本头可用于具有文本响应组件的任务,例如答案a 134,softmax层可应用于解码器隐藏状态g
1:t
(如等式6中所确定的)的顶部,以生成每个答案标记:
[0065]ai
=argmax(softmax(g
|q|+i-1wtxt
))
ꢀꢀꢀ
(等式8)
[0066]
其中,aj是答案序列a中的第i个标记,|q|是问题的长度。此外,表示可学习的权重,而|vocab|是词汇量。对于具有文本响应组件的任务中的每个,模型可以针对预测的和基准真相(ground truth)答案标记序列上的交叉熵损失被优化。
[0067]
指示器头或落地指示器136可用于命令落地任务138,来自变换器解码器的最后隐藏状态可用作“指示器”,以基于它们的隐藏表示120,使用如下的点积相似性来匹配视图层级104中的所有对象:
[0068][0069]
其中,hj是hv中的第j行,hv是视图层级104中第j个对象的隐藏表示。该术语表示可学习的投影,并且g
|q|
表示来自(如使用等式6确定的)解码器的最后隐藏状态,其能够经由解码器自注意力来访问整个问题(命令)序列q 130,并且最后的隐藏状态可以用作“指示器”,而不是按跨度嵌入单词包的池化。该模型可以通过最小化预测的和基准真相对象索引之间的交叉熵损失来优化。
[0070]
在一些实施例中,建模任务输出用于对象检测任务124,并且该方法包括通过神经网络100检测指示截屏102的布局层级的一种或多种类型的容器对象。给定截屏图像s 102,对象检测任务124是检测屏幕上的每个ui元素。在一些实施例中,建模任务输出用于对象检测任务124,并且该方法包括通过神经网络100检测文本字段、切换按钮或图像视图中的一个或多个。这项任务具有挑战性,因为它需要检测不同类型的容器对象,这些对象决定了屏幕的布局层级。在一些实施例中,布局层级包括线性布局、框架布局或列表之一。当视图层级结构104不可用时,对这些对象的检测是向提供可访问性特征或重构或适配ui的重要一步。作为屏幕理解任务,该任务可以有益于改进其他ui建模任务。该任务被表述为:
[0071]
v=f(s)
ꢀꢀꢀ
(等式10)
[0072]
在一些实施例中,对象检测任务124可以基于单塔图像-结构转换器来实现,并且不依赖于问题-答案模型。
[0073]
在一些实施例中,建模任务输出用于微件加文字任务140,并且该方法包括通过神经网络100和针对截屏102来预测图形用户界面中预测的虚拟对象的功能的自然语言描述。
一般来说,为用户界面元素生成自然语言描述对于可访问性和基于语言的交互来说是一项重要的任务。在一些实施例中,给定ui视图层级104、截屏图像s 102和目标元素t 106,模型预测描述对象功能的自然语言短语a 134。这种关系可以描述为:
[0074]
a=f(s,v,t,q)
ꢀꢀꢀ
(等式11)
[0075]
该模型通过图像-结构模型108使用s 102和视图层级104的信息。微件加文字任务140中的问题q 130的例子可以包括“元素的文字是什么?”或者“什么最能描述对象?”。答案a 134的示例可以包括“转发”或“购物车”。微件加文字任务140将涉及经典图像加文字任务的技术扩展到ui领域。
[0076]
该方法还包括经由计算设备提供预测的建模任务输出。
[0077]
在一些实施例中,建模任务输出用于微件加文字任务140,并且该方法包括通过神经网络100和针对截屏102来预测图形用户界面中预测的虚拟对象的功能的自然语言描述。
[0078]
在一些实施例中,建模任务输出用于屏幕摘要任务142,并且该方法包括通过神经网络100预测图形用户界面屏幕摘要任务142的截屏102的摘要,该认为是生成描述整个屏幕的摘要的任务,由下面的等式3确定,而不是聚焦在作为微件加文字任务140的单个元素上。
[0079]
a=f(s,v,q)
ꢀꢀꢀ
(等式12)
[0080]
屏幕摘要任务142的问题q 130的一些例子是“屏幕的描述是什么?”或者“什么最好地概括ui?”。该任务与现有方法中的多模态摘要任务广泛相关,但是专用于用户界面领域。
[0081]
现代智能手机界面的有用特征是将用户的自然语言命令解释为可执行动作,例如语音控制。在语言命令落地任务138中,给定ui、s和v以及语言命令q,模型需要预测屏幕上的哪个对象可以完成语言命令。这可以确定为:
[0082]
t=f(s,v,q)
ꢀꢀꢀ
(等式13)
[0083]
因此,该方法还包括将目标虚拟对象与自然语言命令相关联。该方法还包括通过图形用户界面提供自然语言命令。注意,该任务在屏幕上定位目标对象t 106,而不是像微件加文字任务140和屏幕摘要任务142那样生成自然语言响应。q 130的可能性可以是无限的,它可以是用户为了操纵ui而输入的任何短语。一些示例问题q 130可以是“转到下一个屏幕”或者“轻击结帐按钮”。命令也可以间接指某个对象,例如“点击搜索框右侧的图标”。
[0084]
在一些实施例中,提供自然语言命令包括在目标虚拟对象处或附近显示自然语言命令。在一些实施例中,提供自然语言命令包括响应于与目标虚拟对象的用户交互,将自然语言命令作为语音命令来提供。现代智能手机界面的重要特征是将用户的自然语言命令解释为可执行的动作,例如语音控制。
[0085]
在一些实施例中,建模任务输出用于可轻击性预测任务144,并且该方法涉及:对于图形用户界面,识别开发者设计的可轻击性特征和用户感知的可轻击性特征之间的不匹配。用户是否将ui对象感知为可点击的会是重要的可用性问题。用户感知的可轻击性与设计者或开发者想要的可轻击性之间的不匹配会对移动用户体验产生不利影响。在可轻击性预测任务144中,给定ui s 102和视图层级104、展开查询的目标t 106和询问问题q 130,模型提供是或否答案a 134。这可以被确定为:
[0086]
a=f(s,v,t,q)
ꢀꢀꢀ
(等式14)
[0087]
该方法还涉及向图形用户界面的开发者提供补偿(offset)所识别的不匹配的建议。通常,任务共享图像-结构变换器108。除了ui对象检测任务124之外,其他任务也共享问题-答案变换器126。结果,自然语言输入q是这种任务的任务指示器。q还携带了针对落地任务的实际任务细节,以便在ui上找到对象。
[0088]
对于可轻击性预测任务,可以基于以下正则表达式模式生成合成的是或否问题。该模型被训练为将“是”或“否”解码为问题的答案:“[对象|元素|微件|控件][可点击|可轻击]?”。在一些实施例中,基于正则表达式生成的问题示例是,例如,“对象是可点击的吗?”,“微件是可点击的吗?”,“元素是可点击的吗?”,等等。
[0089]
对于微件加文字任务140和屏幕总结任务142,模型将需要生成开放式答案。在一些实施例中,以下正则表达式可用于为这些任务生成问题。vut可能被训练以解码遵循以下问题的屏幕总结或微件文字:“[屏幕|ui]的[总结|描述]是什么?”,或“[对象|元素|微件|控件]的[文字|描述]是什么?”。基于正则表达式生成的一些问题可以是:“屏幕的总结是什么?”“,ui的描述是什么?”,“微件的文字是什么?”,“对象的描述是什么?”,等等。
[0090]
对于语言命令落地任务138,可以将涉及屏幕中的特定对象的命令馈送给模型,通过其训练该模型来定位所涉及的对象。示例命令可以由人类注释者针对屏幕上显示的目标ui对象来生成。例如,可能会要求人类注释者针对每个突出显示的目标对象提出不同的命令。诸如“点击状态选项上方的通知栏”、“按下返回箭头按钮”、“选择时钟选项上方的图标”、“向下滑动通知栏”的命令可以由人类注释者生成。
[0091]
该方法还涉及训练神经网络100以接收由特定图形用户界面显示的输入截屏,并预测与特定图形用户界面的建模相关联的建模任务输出。对于ui对象检测任务,rico,包含来自9362个不同应用的64462个独特的android屏幕的移动用户界面的公共语料库,可用于训练。每个屏幕包括rgb截屏和对应的视图层级。视图层级是具有21个唯一类型的节点的树结构,其可以从原始数据集中的android视图类属性合并。树中的节点对应于屏幕上的ui元素或管理其子节点的布局的容器元素。在一些实施例中,视图层级在数据集中可以有最多128个节点。例如,数据可以分成训练集(54611)、验证集(2518)和测试集(2627)。附加和/或替选数据集是可能的,具有用于训练集、验证集和测试集的各种分布。
[0092]
对于微件加文字任务,可以使用公共数据集。发布的数据集包括针对来自17000个rico屏幕的超过46000个唯一ui对象的多于200000个人工注释。带注释的ui元素可以被拆分以用于训练(39951)、验证(3436)和测试(3531)。在一些实施例中,数据集可以按应用来拆分,使得同一应用的屏幕可能仅出现在一个拆分中。
[0093]
收集了针对22301个独特的android屏幕的屏幕总结数据集。基于所显示的ui屏幕,人类工作者被要求针对该屏幕生成3-5个总结。总结的最大长度为10个字。在一些实施例中,数据集可以分成训练集(17569屏)、验证集(2298)和测试集(2434)。
[0094]
可轻击性预测数据集包括来自3218个android屏幕的多于20000个ui元素的可轻击性注释。在数据收集中,给定在屏幕上突出显示的目标ui元素,要求人类评价者针对目标对象对他们而言是否可点击来回答“是”或“否”。在一些实施例中,数据集可以被分成训练(14783)、验证(1854)和测试(2029)。
[0095]
语言落地数据集包括10000个人类注释,用于操作来自26个android内置应用(如设置)的1432个独特屏幕的ui对象。人类评价者生成诸如“点击电池信息下面的按钮”的命
令,并且命令短语的最大长度是20个字。在一些实施例中,数据集可以被分成训练(7822)、验证(1024)和测试(987)。
[0096]
当将每个数据集分成训练集、验证集和测试集时,可能希望确保不同任务的训练集和任何测试集之间没有应用(或屏幕)重叠。这可能是重要的,因为在多任务学习情况下,vut从所有的训练集中学习。因此,优选的是,跨越所有训练集的应用和屏幕的联合不与任何测试集重叠。
[0097]
在一些实施例中,训练可以在计算设备处执行。
[0098]
在一些实施例中,预测建模任务输出涉及:在计算设备处获得经训练的神经网络;以及将所获得的经训练的神经网络应用于建模任务输出的预测。
[0099]
在一些实施例中,预测建模任务输出涉及:由计算设备确定预测建模任务输出的请求。该方法还涉及:从计算设备向第二计算设备发送预测建模任务输出的请求,该第二计算设备包括神经网络的训练版本。在发送请求之后,该方法涉及计算设备从第二计算设备接收预测的建模任务输出。
[0100]
一些示例模型参数是为了说明的目的而提供的,并且不被解释为限制权利要求的范围。对于ui对象检测任务,vut可以配置有12层变换器编码器作为图像-结构模型,其达到48000000个可训练参数,这略小于具有6层编码器和6层解码器的detr的50000000个可训练参数。对于剩余的任务,vut可以配置有针对图像-结构模型的6层变换器编码器和针对问题-答案模型的6层变换器解码器。当所有任务被联合训练时,存在64000000个参数。特定任务的头(head)和词块嵌入和投射是参数大小增长的主要因素。当训练中仅涉及这些任务的子集时,例如,微件加文字和对象检测,可能将存在所涉及的较少的可训练参数,因为仅使用完整模型的一部分。所有vut变体使用以下配置:#attention_heads=8(#注意力_头=8),hidden_dimension=2568(隐藏_尺寸=2568),transformer_mlp_dimension=20488(变换器_mlp_尺寸=20488),transformer_qkv_dimension=256(变换器_qkv_尺寸=256)。
[0101]
除了ui对象检测之外的所有任务都需要模型来编码视图层级。为此,视图层级中的每个对象被表示为内容嵌入cv和位置编码pv。内容嵌入将对象的属性(比如类型、文本内容和可点击属性)嵌入。对于文本内容,它可以将对象所拥有的所有词块标记(word piece token)当作“单词包”来处理。每个标记可以被分配可学习的嵌入,然后可以在嵌入的集合上执行最大池化,以获取固定长度的嵌入向量来表示对象的文本内容。可以添加每个内容属性的嵌入以形成对象的内容嵌入。
[0102]
因为展平的视图层级被馈送到变换器118,所以期望位置编码被配置成捕获对象的空间位置和结构位置两者。空间位置包括对象的边界框的四个坐标值,即[上、左、下、右],结构位置包括三个dom位置属性,包括对象在层级的前序和后序遍历中的索引位置,以及对象在层级中的深度。每种类型的位置可以使用正弦表示来编码。注意,在图像-结构模型108中,位置编码116被添加到变换器118的每层的输入。这与问题-答案模型126相比照,在问题-答案模型126中,每个标记的位置编码仅被添加到第一层的输入中。在问题-答案模型126中使用所学习的用于位置编码的嵌入。在训练期间,10%的丢弃(dropout)可以用于问题-答案变换器126中的注意力和mlp丢失,并且20%的丢弃可以在交叉注意力146之前应用于来自图像-结构模型108的编码。在5任务联合学习期间,针对图像-结构变换器,注意力
和mlp丢弃率可以为20%。在干扰的自回归解码期间,最大解码长度可以是30,其覆盖了问题和答案的总长度。
[0103]
可以以类似于bert中使用的方式将短语标记成词块的序列,这导致28536的词汇量。截屏图像的最大大小可以是1080
×
1080。每个图像可以随机调整大小,以用于图像放大。每个屏幕上ui对象和容器的最大数量可以限额为128个。vut可以基于用于机器学习的库jax2来实现。在一些实施例中,每个vut模型可以用64个屏幕/示例的批量大小来训练,该训练在64个tpu v3核上并行化。
[0104]
示例应用
[0105]
在一些实施例中,描述了用户界面建模。在一个示例实现中,可以提供基于云的开发者工具。例如,可以向开发者提供用于设计和/或改进gui的平台。如本文所述,神经网络100可以输出预测的任务,并且可以为开发者提供交互式开发者工具。
[0106]
例如,可以识别屏幕上对象的可轻击性,并且可以确定开发者设计的可轻击性特征和用户感知的可轻击性特征之间的不匹配。基于云的开发者工具然后可以向开发者提供这样的信息,以实现可轻击性特征的改进。此外,例如,在一些实施例中,这种基于云的开发者工具可以是基本实时的开发者工具,其基本实时地对gui建模、预测建模任务输出并提供建议。
[0107]
在另一示例实现中,神经网络100可以预测建模任务输出,该建模任务输出可以用于提高移动设备的终端用户的用户体验。例如,描述了将语言命令落地到可执行ui动作中。这可以使得能够提高用户体验。
[0108]
此外,例如,描述了针对移动设备上的可访问性生成语言描述。作为另一个示例,可以执行gui的总结并将其提供给用户。这些特征还可以使得实现增强的用户体验,尤其是利用文本和/或语音命令来帮助用户导航gui和/或gui的多个屏幕。
[0109]
在一些实施例中,描述了理解用户界面的可用性,连同识别屏幕上的对象。
[0110]
附加的和/或替选的应用是可能的。例如,可以使一个或多个特征对开发者可用,以帮助通过gui开发用户平台的任务。例如,微件加文字可以使开发人员能够使用微件加文字任务的输出,而不是需要手动注释微件。
[0111]
此外,例如,对象检测任务可以向开发者提供gui中对象的布局层级、对象的索引、它们的功能等等。神经网络100的这种预测输出可以显著减少分配给开发者要执行的开发任务的时间和资源,并且还增强了开发任务的准确性。这对于移动平台(例如,如基于android的系统)的开发可能是重要的应用。
[0112]
这些任务可以由单个神经网络模型来执行,该神经网络模型可以被联合训练以执行所有任务,被联合训练以执行所有任务的特定子组,和/或被独立训练以执行任务。这种选择可以取决于平台(例如,移动或基于云的平台),针对处理器、存储器、功率、网络带宽等的可用资源分配,并且可以取决于目标受众(例如,最终用户、开发者等)。
[0113]
一个或多个这样的示例特征可以经由基于云的平台、作为交互特征、作为平台即服务(paas)平台、软件即服务(saas)平台和/或机器学习即服务(mlaas)平台来提供。如本文所述,应用可以提高移动电话的用户的用户体验,为gui的最终用户提供易用性特征,辅助开发者设计基于诸如移动设备的移动平台的操作系统的应用,辅助开发者解决gui的各个方面的问题,等等。
[0114]
图2a和图2b示出了根据示例实施例的ui对象检测任务的示例预测结果。示出了在测试数据上、每个任务的预测与基准真相的示例,如通过vut的单个模型在它联合学习所有任务时实现的。参考图2a,图像205示出了针对搜索功能的用户界面的基准真相图像,图像210示出了针对同一用户界面的预测图像。参考图2b,图像215示出了针对网络登录页面功能的用户界面的基准真相图像,图像220示出了针对同一用户界面的预测图像。
[0115]
图3示出了根据示例实施例的语言命令检测任务的示例。在每个截屏中,由模型定位的对象用具有虚线边界的边界框突出显示。例如,在图像305中,显示具有搜索框和语音图标的搜索页面。围绕语音图标的边界框305a被突出显示,并且命令检测任务可以预测命令“轻击语音图标”。作为另一个示例,在图像310中,显示了具有应用列表的页面。日历图标周围的边界框310a(出现在计算器图标下方)被突出显示,并且命令检测任务可以预测命令“按下计算器图标下方的图标”。此外,例如,在图像315中,显示了带有天气通知的主页。温度显示周围的边界框315a被突出显示,并且命令检测任务可以预测命令“选择通知栏下方的天气文本”。
[0116]
图4示出了根据示例实施例的屏幕总结任务的示例。由人类注释者为每个屏幕创建的参考(基准真相总结)与来自神经网络的预测一起显示。例如,在图像405中,显示了基于位置的搜索页面。人类注释者可能已经创建了基准真相总结,例如“显示应用中的搜索框的页面”,而屏幕总结任务可能预测屏幕提供了“搜索位置的搜索栏”。作为另一示例,在图像410中,显示来自媒体回放应用的页面。人类注释者可能已经创建了诸如“页面示出在应用上播放的音乐”的基准真相总结,并且屏幕总结任务可能预测屏幕提供“显示音乐应用中的音乐轨迹的页面”。此外,例如,在图像415中,显示了用于账户设立的页面。人类注释者可能已经创建了基准真相总结,例如“设立帐户细节的弹出式显示”,而屏幕总结任务可能预测屏幕提供“创建帐户的弹出式显示”。
[0117]
图5示出了根据示例实施例的微件加文字任务的示例。目标元素通过带有虚线边界的边界框突出显示。显示了由人类注释者为每个目标元素创建的三个参考(基准真相文字)之一。例如,在图像505中,显示了用于将单词和/或短语从一种语言翻译成另一种语言的页面,具有文本输入部分505a、部分505b中的法语单词列表以及具有边界框505c的“复制”微件。基准真相文字可以是“复制到剪贴板选项”,并且微件加文字任务可以在“复制”微件周围显示边界框505c,并且预测微件文字是“复制文本”。作为另一示例,在图像510中,显示了具有显示多个绘文字(emoji)的绘文字应用的页面。基准真相文字可以是“选择绘文字8”,并且微件加文字任务可以在“绘文字8”微件周围显示边界框510c,并且预测微件文字为“选择绘文字”。此外,例如,在图像515中,显示了具有用户简档的页面。基准真相文字可以是“输入并确认密码”,并且微件加文字任务可以在“确认密码”输入域微件周围显示边界框515a,并且预测微件文字为“输入密码”。
[0118]
图6示出了根据示例实施例的可轻击性预测任务的示例。关注的元素用带虚线边界的边界框突出显示。例如,在图像605中,可轻击性预测任务可以是预测用户图像的图标的可轻击性。基准真相可以指示图标是可轻击的,并且模型可以预测图标是可轻击的,并且在图标周围放置边界框605a。作为另一个示例,在图像610中,可轻击性预测任务可以是预测带有文本“更多关于您的信息”的图标的可轻3击性。基准真相可以指示图标是不可轻击的,并且模型可以预测图标是不可轻击的,并且在图标周围放置边界框610a。此外,例如,在
图像615中,可轻击性预测任务可以是预测“微件3”的下载图标的可轻击性。基准真相可以指示图标是可轻击的,并且模型可以预测图标是可轻击的,并且在“微件3”的下载图标周围放置边界框615a。
[0119]
这些和其他示例应用在本公开的范围内被设想。
[0120]
实验结果
[0121]
vut和detr的比较
[0122]
这里描述的图像-结构模型108与现有的用于端到端对象检测架构的基于变换器的模型(detr)共享一些方面。因此,可以针对ui对象检测任务来比较这两个模型。在这个实验中,detr可以被配置为使用6层变换器编码器和6层变换器解码器,并且在模型中具有相似数量的参数,vut图像结构可以被配置为在这个实验中使用12层变换器编码器。由于与编码器-解码器注意力146相关联的权重,detr(50000000个参数)具有比vut(48000000个参数)稍多的参数。实验表明,图像-结构模型明显胜过detr的编码器-解码器架构。事实上,detr实验发现,更多的编码层可以显著提高准确性。但是在目前的实验中,vut的图像-结构模型使用了仅编码器的架构,并且也实现了更好的准确性。实验表明,本文提出的多模态编码方法能很好地完成目标检测任务。
[0123]
利用vut的单一任务训练
[0124]
为了了解vut在联合学习多项任务时表现多好,可以通过单独基于每个数据集训练vut来建立基线。每个模型可以被训练,直到它收敛。对于ui对象检测任务,可以使用detr的默认设置来训练模型,使用64的批量大小以用于300000次迭代。学习率计划包括以200000步长从1e-4
到1e-5
的一个学习率衰减。在这个实验中,在vut中使用了6层图像-结构编码器,有8个头的注意力和256的隐藏大小。本模型实现了ap=37.0、ap50=47.6和ap75=38.8。注意,这种准确性低于先前报告的在不同ui数据集上使用centernet(中心网)的结果。但是,这些结果不能直接比较。vut模型的任务更具挑战性,因为vut模型被训练成检测包括几个容器元素的21种不同的ui对象类型,而不是先前工作中的12个对象。此外,先前的工作使用了由人手动标记的数据集,并且还采用了繁重的后处理来改进预测。
[0125]
对于微件加文字任务,除了文本头之外,还可以使用6层图像-结构模型和6层问题-答案模型两者。类似地,该模型可以用64的批量大小来训练,直到它收敛,这可能需要45000步长。vut模型达到了与现有模型相当的准确度,尽管vut的模型架构与先前的工作有显著不同。下面的表1提供了微件加文字任务的结果:
[0126][0127]
表1
[0128]
对于屏幕总结任务,可以使用与训练用于微件加文字的模型相同的设置,并且模型以50000步长收敛。vut达到的准确度见表2:
[0129]
[0130]
表2
[0131]
语言命令落地任务使用与微件加文字和屏幕总结任务相似的模型设置,除了它使用落地头而不是文本头之外。该模型可能需要大约27000步长才能以批量大小为64收敛(见下表3中的结果)。为了针对这些任务中的每一个训练模型,学习率可以以15000的步长一次从1e-4
衰减到1e-5

[0132][0133]
表3
[0134]
为了单独学习可轻击性预测任务,使用了与两个文本相关任务(总结和文字)相同的模型设置。我们发现,尽管使用了较大的丢弃率,但该模型非常容易过度拟合。因此,我们以批量大小64来训练模型,而提前停止。尽管我们在这里使用了非常不同的模型架构,但是准确度(下面的表4)与先前发表的结果相当。
[0135][0136]
表4
[0137]
联合训练针对多任务的vut
[0138]
可以评估同时在多个任务上的vut的执行。在这个实验中,6层图像-结构变换器和6层问题-答复变换器两者都可以与所有任务头一起使用。每个任务头和模型部件只在特定任务需要它时才使用。整个模型可以基于jax来实现。
[0139]
因为ui对象检测任务比其他任务需要更多的迭代,所以多任务学习可以通过针对ui对象检测任务训练vut,然后通过交替来自每个数据集的批次针对所有任务联合训练vut来发起。这种学习策略是合理的,因为通过从ui对象任务中学习,模型可以学习关于如何编码屏幕像素的有用信息。正如实验中一贯地示出的,涉及对象检测的联合学习通常可以促进其他四个任务的学习。
[0140]
基于这样的多任务学习策略,vut模型可以首先针对ui对象检测被训练达大约300k步。然后,该模型可以针对一起学习所有的任务被训练达大约额外的200k步。在训练时,模型可以在5个数据集和任务之间交替,并且一次可以使用来自一个数据集的一个批次。如上面的表1、2、3和4所示,多任务学习虽然比单任务学习更具挑战性,但通常可以与单任务学习同等水平地执行。对于微件加文字、屏幕总结和可轻击性预测任务,多任务学习似乎一贯地优于单任务学习。当涉及文本生成相关任务时,落地任务138的准确性可能会降低。这与模型架构一致,因为落地任务依赖于问题-答案模型的最后隐藏状态,并且可能通过将问题-答案模型的隐藏表示“拉”向不同方向而与三个文本生成任务竞争。然而,似乎在多任务学习中具有对象检测任务经常优于不涉及对象检测的配置。对于对象检测任务本身,当用于多任务学习的批次变更开始时,准确性可能会下降。然而,这逐渐恢复其准确性,尤其是在学习率衰减之后。对象检测的准确性恢复到ap=32.5,ap50=44.2和ap75=33.7。
通过仔细的学习率调度和调整,准确性可能会进一步提高。
[0141]
附加实验结果
[0142]
如先前所指示的,vut模型可以首先针对ui对象检测任务被训练,这在它与其他任务一起被进一步训练之前帮助该模型获取对截屏图像的理解并学习表示像素。随着更多的任务参与训练,ui对象检测任务上的模型的准确性可能会受到影响。表5
[0143][0144][0145]
表5
[0146]
如表5所指示的,当加入多任务学习的附加任务时,vut在对象检测任务上的准确性大部分得以保持。当所有任务都加入训练时,即表中的最后一行,对象检测准确性有更明显的下降。针对模型的不同部分微调学习率调度和丢弃(dropout)率可以潜在地将准确性带到其原始水平。例如,在所有5个任务
*
中,使用图像结构变换器中较小的丢弃,没有注意力丢弃和10%的mlp丢弃率,因为似乎较大的丢弃会损害ui对象检测任务。同时,在这个实验中,mlp和注意力丢弃率可以在问题-答案变换器中增加到20%,以避免对其他任务的过度拟合。在这种设置中,ui对象检测的准确性得到了更好的恢复,并且对其他任务的模型准确性似乎有微小的影响。这些实验表明,不将对象检测视为独立的预训练任务,而是将其作为多任务学习的一部分是可行的,其中vut通过单个模型实现所有任务。
[0147]
用于生成推断/预测的训练机器学习模型
[0148]
图7示出了图示根据示例实施例的(一个或多个)经训练的机器学习模型732的训练阶段702和推断阶段704的图700。一些机器学习技术涉及在输入训练数据集上训练一个或多个机器学习算法,以识别训练数据中的模式,并提供关于训练数据(中的模式)的输出推断和/或预测。所得到的经训练的机器学习算法可以被称为经训练的机器学习模型。例如,图7示出了训练阶段702,其中一个或多个机器学习算法720正在训练数据710上被训练,以成为(一个或多个)经训练的机器学习模型732。然后,在推断阶段704期间,(一个或多个)经训练的机器学习模型732可以接收输入数据730和一个或多个推断/预测请求740(可能作为输入数据730的一部分),并且响应地提供一个或多个推断和/或预测750作为输出。
[0149]
这样,(一个或多个)经训练的机器学习模型732可以包括一个或多个机器学习算法720的一个或多个模型。(一个或多个)机器学习算法720可以包括但不限于:人工神经网络(例如,这里描述的卷积神经网络、循环神经网络、贝叶斯网络、隐马尔可夫模型、马尔可夫决策过程、逻辑回归函数、支持向量机、合适的统计机器学习算法和/或启发式机器学习
系统)。(一个或多个)机器学习算法720可以是受监督的或不受监督的,并且可以实现在线和离线学习的任何合适的组合。
[0150]
在一些示例中,可以使用诸如图形处理单元(gpu)、张量处理单元(tpu)、数字信号处理器(dsp)和/或专用集成电路(asic)的设备上协处理器来加速(一个或多个)机器学习算法720和/或(一个或多个)经训练的机器学习模型732。这种设备上协处理器可用于加速(一个或多个)机器学习算法720和/或(一个或多个)经训练的机器学习模型732。在一些示例中,(一个或多个)经训练的机器学习模型732可以被训练、驻留和执行以在特定计算设备上提供推断,和/或以其他方式可以为特定计算设备做出推断。
[0151]
在训练阶段702期间,可以通过使用不受监督、受监督、半监督和/或强化学习技术提供至少训练数据710作为训练输入来训练(一个或多个)机器学习算法720。不受监督学习涉及向(一个或多个)机器学习算法720提供部分(或全部)训练数据710,并且(一个或多个)机器学习算法720基于所提供的部分(或全部)训练数据710来确定一个或多个输出推断。受监督学习涉及向(一个或多个)机器学习算法720提供一部分训练数据710,其中(一个或多个)机器学习算法720基于所提供的一部分训练数据710来确定一个或多个输出推断,并且基于与训练数据710相关联的正确结果来接受或校正(一个或多个)输出推断。在一些示例中,(一个或多个)机器学习算法720的受监督学习可以由针对训练输入的一组规则和/或一组标签来管理,并且该组规则和/或该组标签可以用于校正(一个或多个)机器学习算法720的推断。
[0152]
半监督学习涉及具有训练数据710的一部分而非全部的正确结果。在半监督学习期间,受监督学习针对具有正确结果的训练数据710的一部分被使用,而不受监督学习针对不具有正确结果的训练数据710的一部分被使用。强化学习涉及(一个或多个)机器学习算法720接收关于先前推断的奖励信号,其中奖励信号可以是数值(numerical value)。在强化学习期间,(一个或多个)机器学习算法720可以输出推断并接收作为响应的奖励信号,其中(一个或多个)机器学习算法720被配置为试图使奖励信号的数值最大化。在一些示例中,强化学习还利用值函数,该值函数提供表示奖励信号随时间提供的数值的预期总和的数值。在一些示例中,(一个或多个)机器学习算法720和/或(一个或多个)经训练的机器学习模型732可以使用其他机器学习技术来训练,包括但不限于增量学习和课程学习。
[0153]
在一些示例中,(一个或多个)机器学习算法720和/或(一个或多个)经训练的机器学习模型732可以使用迁移学习技术。例如,迁移学习技术可以涉及在一组数据上预训练并使用训练数据710附加地训练的(一个或多个)经训练的机器学习模型732。更具体地,(一个或多个)机器学习算法720可以在来自一个或多个计算设备的数据上被预训练,并且得到的经训练的机器学习模型被提供给计算设备cd1,其中cd1旨在于推断阶段704期间执行经训练的机器学习模型。然后,在训练阶段702期间,可以使用训练数据710来附加地训练被预训练的机器学习模型,其中训练数据710可以从计算设备cd1的内核和非内核数据中导出。使用cd1数据的训练数据710对(一个或多个)机器学习算法720和/或预训练的机器学习模型的进一步训练可以使用受监督或不受监督学习来执行。一旦(一个或多个)机器学习算法720和/或预训练的机器学习模型已经在至少训练数据710上被训练,训练阶段702就可以完成。经训练的所得到的机器学习模型可被用作(一个或多个)经训练的机器学习模型732中的至少一个。
[0154]
具体而言,一旦训练阶段702已经完成,(一个或多个)经训练的机器学习模型732就可以被提供给计算设备,如果还没有在该计算设备上的话。推断阶段704可以在(一个或多个)经训练的机器学习模型732被提供给计算设备cd1之后开始。
[0155]
在推断阶段704期间,(一个或多个)经训练的机器学习模型732可以接收输入数据730,并生成和输出关于输入数据730的一个或多个对应的推断和/或预测750。这样,输入数据730可以用作(一个或多个)经训练的机器学习模型732的输入,以用于向内核组件和非内核组件提供(一个或多个)对应的推断和/或(一个或多个)预测750。例如,(一个或多个)经训练的机器学习模型732可以响应于一个或多个推断/预测请求740生成(一个或多个)推断和/或(一个或多个)预测750。在一些示例中,(一个或多个)经训练的机器学习模型732可以由其他软件的一部分来执行。例如,(一个或多个)经训练的机器学习模型732可以由推断或预测守护程序执行,以容易地用于根据请求提供推断和/或预测。输入数据730可以包括来自执行(一个或多个)经训练的机器学习模型732的计算设备cd1的数据和/或来自除cd1之外的一个或多个计算设备的输入数据。
[0156]
输入数据730可以包括这里描述的训练数据。其他类型的输入数据也是可能的。
[0157]
(一个或多个)推断和/或(一个或多个)预测750可以包括由对输入数据730(和训练数据710)进行操作的(一个或多个)经训练的机器学习模型732产生的任务输出、数值和/或其他输出数据。在一些示例中,(一个或多个)经训练的机器学习模型732可以使用输出(一个或多个)推断和/或(一个或多个)预测750作为输入的反馈760。(一个或多个)经训练的机器学习模型732也可以依赖于过去的推断作为用于生成新推断的输入。
[0158]
在训练之后,神经网络的经训练的版本可以是(一个或多个)经训练的机器学习模型732的示例。在该方法中,一个或多个推断/预测请求740的示例可以是对预测输入截屏的建模任务输出的请求,并且(一个或多个)推断和/或预测750的对应示例可以是预测的任务输出。
[0159]
在一些示例中,一个计算设备cd_solo可以包括神经网络的经训练的版本,可能是在训练之后。然后,计算设备cd_solo可以接收对预测建模任务输出的请求,并使用神经网络的经训练的版本来预测建模任务输出。
[0160]
在一些示例中,可以使用两个或更多个计算设备cd_cli和cd_srv来提供输出图像;例如,第一计算设备cd_cli可以生成预测建模任务输出的请求并将其发送给第二计算设备cd_srv。然后,cd_srv可以使用神经网络的经训练的版本来预测建模任务输出,并响应于来自cd_cli的对输出类的请求。然后,在接收到对请求的响应时,cd_cli可以提供所请求的输出(例如,使用用户界面和/或显示器、打印副本、电子通信等)。
[0161]
示例数据网络
[0162]
图8描绘了根据示例实施例的分布式计算架构800。分布式计算架构800包括服务器设备808、810,它们被配置成经由网络806与可编程设备804a、804b、804c、804d、804e通信。网络806可以对应于局域网(lan)、广域网(wan)、wlan、wwan、企业内部网、公共互联网或被配置成在联网的计算设备之间提供通信路径的任何其他类型的网络。网络806也可以对应于一个或多个lan、wan、企业内部网和/或公共互联网的组合。
[0163]
尽管图8仅示出了五个可编程设备,但是分布式应用架构可以服务于数十、数百或数千个可编程设备。此外,可编程设备804a、804b、804c、804d、804e(或任何附加的可编程设
备)可以是任何种类的计算设备,诸如移动计算设备、台式计算机、可穿戴计算设备、头戴式设备(hmd)、网络终端、移动计算设备等。在一些示例中,诸如可编程设备804a、804b、804c、804e所图示,可编程设备可以直接连接到网络806。在其他示例中,诸如可编程设备804d所图示,可编程设备可以经由相关联的计算设备,诸如可编程设备804c,间接地连接到网络806。在该示例中,可编程设备804c可以充当相关联的计算设备,以在可编程设备804d和网络806之间传递电子通信。在其他示例中,诸如可编程设备804e所图示,计算设备可以是交通工具的一部分和/或在交通工具内部,交通工具诸如为汽车、卡车、公共汽车、船或船舶、飞机等。在图8中未示出的其他示例中,可编程设备可以直接地和间接地连接到网络806。
[0164]
服务器设备808、810可以被配置成执行可编程设备804a-804e所请求的一个或多个服务。例如,服务器设备808和/或810可以向可编程设备804a-804e提供内容。该内容可以包括但不限于网页、超文本、脚本、诸如编译软件的二进制数据、图像、音频和/或视频。内容可以包括压缩和/或未压缩的内容。内容可以加密和/或不加密。其他类型的内容也是可能的。
[0165]
作为另一个示例,服务器设备808和/或810可以向可编程设备804a-804e提供对用于数据库、搜索、计算、图形、音频、视频、万维网/互联网应用和/或其他功能的软件的访问。服务器设备的许多其他示例也是可能的。
[0166]
计算设备架构
[0167]
图9是根据示例实施例的示例计算设备900的框图。特别地,图9中所示的计算设备900可以被配置成执行神经网络100的至少一个功能和/或方法1100和/或执行与神经网络100相关的至少一个功能。
[0168]
计算设备900可以包括用户接口模块901、网络通信模块902、一个或多个处理器903、数据存储装置904、一个或多个相机918、一个或多个传感器920和电力系统922,所有这些可以经由系统总线、网络或其他连接机制905链接在一起。
[0169]
用户接口模块901可以可操作来向外部用户输入/输出设备发送数据和/或从外部用户输入/输出设备接收数据。例如,用户接口模块901可以被配置成向用户输入设备发送数据和/或从用户输入设备接收数据,用户输入设备诸如为触摸屏、计算机鼠标、键盘、小键盘、触摸板、轨迹球、操纵杆、语音识别模块和/或其他类似设备。用户接口模块901还可被配置成向用户显示设备提供输出,用户显示设备诸如为一个或多个阴极射线管(crt)、液晶显示器、发光二极管(led)、使用数字光处理(dlp)技术的显示器、打印机、灯泡、和/或现在已知或以后开发的其他类似设备。用户接口模块901还可以被配置成利用诸如扬声器、扬声器插孔、音频输出端口、音频输出设备、耳机和/或其他类似设备的设备来生成听觉输出。用户接口模块901还可以被配置有一个或多个触觉设备,这些触觉设备可以生成触觉输出,诸如通过与计算设备900的触摸和/或物理接触可检测的振动和/或其他输出。在一些示例中,用户接口模块901可以用于提供用于利用计算设备900的图形用户界面(gui),诸如,例如移动电话设备的图形用户界面。
[0170]
网络通信模块902可以包括提供一个或多个无线接口907和/或一个或多个有线接口908的一个或多个设备,这些接口可被配置为经由网络进行通信。(一个或多个)无线接口907可以包括一个或多个无线发射机、接收机和/或收发机,诸如bluetooth
tm
收发机、zigbee
@
收发机、wi-fi
tm
收发机、wimax
tm
收发机、lte
tm
收发机和/或可配置成经由无线网络
进行通信的其他类型的无线收发机。(一个或多个)有线接口908可以包括一个或多个有线发射机、接收机和/或收发机,诸如以太网收发机、通用串行总线(usb)收发机或可配置成经由双绞线、同轴电缆、光纤链路或到有线网络的类似物理连接进行通信的类似收发机。
[0171]
在一些示例中,网络通信模块902可以被配置成提供可靠、安全和/或认证的通信。对于本文描述的每个通信,可以提供用于促进可靠通信(例如,保证的消息传递)的信息,可能作为消息报头和/或报尾的一部分(例如,分组/消息排序信息、封装报头和/或报尾、大小/时间信息、以及诸如循环冗余校验(crc)和/或奇偶校验值的传输验证信息)。可以使用一个或多个密码协议和/或算法来使通信安全(例如,被编码或加密)和/或解密/解码,所述密码协议和/或算法诸如为但不限于数据加密标准(des)、高级加密标准(aes)、里维斯特-沙米尔-阿德尔曼(rivest-shamir-adelman,rsa)算法、迪菲-赫尔曼(diffie-hellman)算法、诸如安全套接字层(ssl)或传输层安全性(tls)的安全套接字协议和/或数字签名算法(dsa)。也可以使用其他密码协议和/或算法,或者除了这里列出的那些之外,还可以使用其他密码协议和/或算法来保护(并且然后解密/解码)通信。
[0172]
一个或多个处理器903可以包括一个或多个通用处理器,和/或一个或多个专用处理器(例如,数字信号处理器、张量处理单元(tpu)、图形处理单元(gpu)、专用集成电路等)。一个或多个处理器903可以被配置成执行包含在数据存储装置904中的计算机可读指令906和/或本文所述的其他指令。
[0173]
数据存储装置904可以包括一个或多个非暂时性计算机可读存储介质,其可以由一个或多个处理器903中的至少一个读取和/或访问。一个或多个计算机可读存储介质可以包括易失性和/或非易失性存储组件,诸如光、磁、有机或其他存储器或盘存储装置,其可以整体或部分地与一个或多个处理器903中的至少一个集成。在一些示例中,可以使用单个物理设备(例如,一个光、磁、有机或其他存储器或盘存储单元)来实现数据存储装置904,而在其他示例中,可以使用两个或更多个物理设备来实现数据存储装置904。
[0174]
数据存储装置904可以包括计算机可读指令906和可能的附加数据。在一些示例中,数据存储装置904可以包括执行本文描述的方法、场景和技术的至少一部分和/或本文描述的设备和网络的至少一部分功能所需的存储装置。在一些示例中,数据存储装置904可以包括用于经训练的神经网络模型912(例如,经训练的神经网络(诸如神经网络100)的模型)的存储装置。特别是在这些示例中,计算机可读指令906可以包括当由一个或多个处理器903执行时使得计算设备900能够提供经训练的神经网络模型912的一些或全部功能的指令。
[0175]
在一些示例中,计算设备900可以包括一个或多个相机918。(一个或多个)相机918可以包括一个或多个图像捕捉设备,诸如静止和/或视频相机,被配备为捕捉光并将所捕捉的光记录在一个或多个图像中;也就是说,(一个或多个)相机918可以生成捕捉的光的(一个或多个)图像。一个或多个图像可以是一个或多个静止图像和/或在视频影像中使用的一个或多个图像。(一个或多个)相机918可以捕捉作为可见光、红外辐射、紫外光和/或作为一种或多种其他频率的光发射的光和/或电磁辐射。
[0176]
在一些示例中,计算设备900可以包括一个或多个传感器920。传感器920可被配置成测量计算设备900内的条件和/或计算设备900的环境中的条件,并提供关于这些条件的数据。例如,传感器920可以包括以下中的一个或多个:(i)用于获得关于计算设备900的数
据的传感器,诸如但不限于用于测量计算设备900的温度的温度计、用于测量电力系统922的一个或多个电池的功率的电池传感器、和/或测量计算设备900的条件的其他传感器;(ii)用于识别其他对象和/或设备的识别传感器,诸如但不限于射频识别(rfid)读取器、接近传感器、一维条形码读取器、二维条形码(例如快速响应(qr)码)读取器和激光跟踪器,其中识别传感器可以被配置为读取标识符(诸如rfid标签、条形码、qr码)和/或被配置为被读取的其他设备和/或对象并提供至少识别信息;(iii)用于测量计算设备900的位置和/或运动的传感器,诸如但不限于,倾斜传感器、陀螺仪、加速度计、多普勒传感器、gps设备、声纳传感器、雷达设备、激光位移传感器和罗盘;(iv)用于获得指示计算设备900的环境的数据的环境传感器,诸如但不限于,红外传感器、光学传感器、光传感器、生物传感器、电容传感器、触摸传感器、温度传感器、无线传感器、无线电传感器、运动传感器、麦克风、声音传感器、超声传感器和/或烟雾传感器;和/或(v)用于测量作用在计算设备900周围的一个或多个力(例如,惯性力和/或重力)的力传感器,诸如但不限于,测量一维或多维力、扭矩、地面力、摩擦力的一个或多个传感器,和/或识别零力矩点(zmp)和/或zmp的位置的zmp传感器。传感器920的许多其他示例也是可能的。
[0177]
电力系统922可以包括一个或多个电池924和/或用于向计算设备900提供电力的一个或多个外部电力接口926。一个或多个电池924中的每个电池在电耦合到计算设备900时可以充当计算设备900的存储电力的源。电力系统922的一个或多个电池924可以被配置为便携式的。一个或多个电池924中的一些或全部可以容易地从计算设备900可移除。在其他示例中,一个或多个电池924中的一些或全部可以在计算设备900内部,因此可能不容易从计算设备900可移除。一个或多个电池924中的一些或全部可以是可再充电的。例如,可再充电电池可以经由电池和另一电源之间的有线连接被再充电,诸如通过计算设备900外部的并且经由一个或多个外部电力接口连接到计算设备900的一个或多个电源。在其他示例中,一个或多个电池924中的一些或全部可以是非可再充电电池。
[0178]
电力系统922的一个或多个外部电力接口926可以包括一个或多个有线电力接口,诸如usb电缆和/或电源线,其使能到计算设备900外部的一个或多个电源的有线电力连接。一个或多个外部电力接口926可以包括一个或多个无线电力接口,诸如qi无线充电器,其使能诸如经由qi无线充电器到一个或多个外部电源的无线电力连接。一旦使用一个或多个外部电力接口926建立了到外部电源的电力连接,计算设备900就可以通过所建立的电力连接从外部电源汲取电力。在一些示例中,电力系统922可以包括相关传感器,诸如与一个或多个电池相关联的电池传感器或其他类型的电力传感器。
[0179]
基于云的服务器
[0180]
图10描绘了根据示例实施例的基于云的服务器系统。在图10中,神经网络和/或计算设备的功能可以分布在计算集群1009a、1009b、1009c中。计算集群1009a可以包括由本地集群网络1012a连接的一个或多个计算设备1000a、集群存储阵列1010a和集群路由器1011a。类似地,计算集群1009b可以包括由本地集群网络1012b连接的一个或多个计算设备1000b、集群存储阵列1010b和集群路由器1011b。同样,计算集群1009c可以包括由本地集群网络1012c连接的一个或多个计算设备1000c、集群存储阵列1010c和集群路由器1011c。
[0181]
在一些实施例中,计算集群1009a、1009b、1009c可以是驻留在单个计算中心的单个计算设备。在其他实施例中,计算集群1009a、1009b、1009c可以包括单个计算中心中的多
个计算设备,或者甚至包括位于不同地理位置的多个计算中心中的多个计算设备。例如,图10描绘了驻留在不同物理位置的计算集群1009a、1009b、1009c中的每一个。
[0182]
在一些实施例中,计算集群1009a、1009b、1009c处的数据和服务可以被编码为存储在非暂时性有形计算机可读介质(或计算机可读存储介质)中的计算机可读信息,并且可由其他计算设备访问。在一些实施例中,计算集群1009a、1009b、1009c可以存储在单个盘驱动器或其他有形存储介质上,或者可以在位于一个或多个不同地理位置的多个盘驱动器或其他有形存储介质上实现。
[0183]
在一些实施例中,计算集群1009a、1009b和1009c中的每一个可以具有相同数量的计算设备、相同数量的集群存储阵列和相同数量的集群路由器。然而,在其他实施例中,每个计算集群可以具有不同数量的计算设备、不同数量的集群存储阵列和不同数量的集群路由器。每个计算集群中的计算设备、集群存储阵列和集群路由器的数量可以取决于分配给每个计算集群的一个或多个计算任务。
[0184]
例如,在计算集群1009a中,计算设备1000a可以被配置成执行条件化的、基于轴向(axial)自注意力的神经网络和/或计算设备的各种计算任务。在一个实施例中,神经网络和/或计算设备的各种功能可以分布在计算设备1000a、1000b、1000c中的一个或多个中。相应计算集群1009b和1009c中的计算设备1000b和1000c可以类似于计算集群1009a中的计算设备1000a来配置。另一方面,在一些实施例中,计算设备1000a、1000b和1000c可以被配置成执行不同的功能。
[0185]
在一些实施例中,与神经网络和/或计算设备相关联的计算任务和存储的数据可以至少部分地基于神经网络和/或计算设备的处理要求、计算设备1000a、1000b、1000c的处理能力、每个计算集群中的计算设备之间以及计算集群本身之间的网络链路的等待时间、和/或可能有助于成本、速度、容错性、弹性、效率的其他因素、和/或整体系统架构的其它设计目标而分布在计算设备1000a、1000b和1000c上。
[0186]
计算集群1009a、1009b、1009c的集群存储阵列1010a、1010b、1010c可以是包括被配置为管理对硬盘驱动器组的读写访问的盘阵列控制器的数据存储阵列。盘阵列控制器,单独地或结合它们各自的计算设备,也可以被配置成管理存储在集群存储阵列中的数据的备份或冗余拷贝,以防止盘驱动器或其他集群存储阵列故障和/或网络故障,这些故障阻止一个或多个计算设备访问一个或多个集群存储阵列。
[0187]
类似于条件化的、基于轴向自注意力的神经网络和/或计算设备的功能可以跨计算集群1009a、1009b、1009c的计算设备1000a、1000b、1000c分布的方式,这些组件的各种活跃部分和/或备份部分可以跨集群存储阵列1010a、1010b、1010c分布。例如,一些集群存储阵列可以被配置为存储神经网络的第一层和/或计算设备的数据的一部分,而其他集群存储阵列可以存储神经网络的第二层和/或计算设备的数据的其他(一个或多个)部分。此外,例如,一些集群存储阵列可以被配置为存储神经网络的编码器的数据,而其他集群存储阵列可以存储神经网络的解码器的数据。此外,一些集群存储阵列可以被配置为存储存储在其他集群存储阵列中的数据的备份版本。
[0188]
计算集群1009a、1009b、1009c中的集群路由器1011a、1011b、1011c可以包括被配置为为计算集群提供内部和外部通信的联网装备。例如,计算集群1009a中的集群路由器1011a可以包括一个或多个因特网交换和路由设备,其被配置为提供(i)经由本地集群网络
1012a在计算设备1000a和集群存储阵列1010a之间的局域网通信,以及(ii)经由到网络806的广域网链路1013a在计算集群1009a与计算集群1009b和1009c之间的广域网通信。集群路由器1011b和1011c可以包括类似于集群路由器1011a的网络装备,并且集群路由器1011b和1011c可以为计算集群1009b和1009b执行类似于集群路由器1011a为计算集群1009a执行的联网功能。
[0189]
在一些实施例中,集群路由器1011a、1011b、1011c的配置可以至少部分地基于计算设备和集群存储阵列的数据通信需求、集群路由器1011a、1011b、1011c中的网络装备的数据通信能力、本地集群网络1012a、1012b、1012c的等待时间和吞吐量、广域网链路1013a、1013b、1013c的等待时间、吞吐量和成本、和/或可能有助于成本、速度、容错性、弹性、效率的其他因素、和/或合理系统架构的其它设计标准。
[0190]
示例操作方法
[0191]
图11是根据示例实施例的方法1100的流程图。方法1100可以由诸如计算设备900之类的计算设备来执行。方法1100可以开始于框1110,其中计算设备接收由计算设备的图形用户界面提供的显示的截屏。
[0192]
在框1120,计算设备通过神经网络的图像-结构变换器,通过融合基于截屏的第一嵌入和基于截屏中虚拟对象的布局的第二嵌入来生成表示。
[0193]
在块1130,计算设备通过神经网络并基于所生成的表示来预测与图形用户界面相关联的建模任务输出。
[0194]
在块1140,计算设备经由计算设备提供预测的建模任务输出。
[0195]
一些实施例涉及通过神经网络预测截屏中虚拟对象的布局。
[0196]
一些实施例涉及经由计算设备接收指示截屏中虚拟对象的布局的视图层级。这样的实施例涉及由神经网络为截屏和视图层级中的每一个确定内容嵌入和位置嵌入。通过融合生成表示包括基于内容嵌入和位置嵌入生成表示。在这样的实施例中,截屏的位置嵌入和视图层级的位置嵌入可以是对应于整个截屏的全局嵌入。
[0197]
在一些实施例中,图形用户界面的建模涉及多任务建模,并且其中神经网络包括双变换器,其中图像-结构变换器预测图像结构任务的建模任务输出,问题-答案变换器预测自然语言任务的建模任务输出,并且其中图像-结构变换器和问题-答案变换器被配置为具有跨塔注意力。
[0198]
在一些实施例中,建模任务输出可以用于以下任务中的一个或多个:对象检测任务、自然语言命令落地任务、微件加文字任务、屏幕总结任务或可轻击性预测任务。
[0199]
在一些实施例中,建模任务输出可以用于自然语言命令落地任务。这些实施例涉及通过神经网络并基于该表示来预测图形用户界面中的目标虚拟对象。这样的实施例还涉及将目标虚拟对象与自然语言命令相关联。这些实施例还涉及经由图形用户界面提供自然语言命令。
[0200]
在一些实施例中,提供自然语言命令涉及在目标虚拟对象处或附近显示自然语言命令。
[0201]
在一些实施例中,提供自然语言命令涉及响应于用户与目标虚拟对象的交互,将自然语言命令作为语音命令来提供。
[0202]
在一些实施例中,建模任务输出可以用于对象检测任务。这样的实施例涉及由神
经网络检测指示截屏的布局层级的一种或多种类型的容器对象。在这样的实施例中,布局层级可以包括线性布局、框架布局或列表之一。
[0203]
在一些实施例中,建模任务输出可以用于对象检测任务。这样的实施例涉及通过神经网络检测文本字段、切换按钮或图像视图中的一个或多个。
[0204]
在一些实施例中,建模任务输出可以用于微件加文字任务。这样的实施例涉及通过神经网络并且对于截屏,预测图形用户界面中预测的虚拟对象的功能的自然语言描述。
[0205]
在一些实施例中,建模任务输出可以用于可轻击性预测任务。这样的实施例涉及为图形用户界面识别开发者设计的可轻击性特征和用户感知的可轻击性特征之间的不匹配。这样的实施例还涉及向图形用户界面的开发者提供补偿所识别的不匹配的建议。
[0206]
在一些实施例中,神经网络可以包括对象检测头、文本头和指示器头。
[0207]
一些实施例涉及训练神经网络以接收由特定图形用户界面显示的输入截屏,并预测与特定图形用户界面的建模相关联的建模任务输出。
[0208]
在一些实施例中,训练在计算设备处执行。
[0209]
在一些实施例中,预测建模任务输出涉及在计算设备处获得经训练的神经网络。这样的实施例还涉及将获得的经训练的神经网络应用于建模任务输出的预测。
[0210]
在一些实施例中,预测建模任务输出涉及由计算设备确定预测建模任务输出的请求。这样的实施例涉及从计算设备向第二计算设备发送预测建模任务输出的请求,第二计算设备包括神经网络的经训练的版本。这样的实施例还涉及,在发送请求之后,计算设备从第二计算设备接收预测的建模任务输出。
[0211]
本公开不限于本技术中描述的特定实施例,这些实施例旨在说明各个方面。对于本领域的技术人员来说,将显而易见的是,在不脱离本发明的精神和范围的情况下,可以进行许多修改和变化。除了这里列举的方法和装置之外,对于本领域的技术人员来说,根据前面的描述,本发明范围内的功能等同的方法和装置将是显而易见的。这种修改和变化旨在落入所附权利要求的范围内。
[0212]
以上详细描述参考附图描述了所公开的系统、设备和方法的各种特征和功能。在附图中,相似的符号通常标识相似的组件,除非上下文另有指示。在详细描述、附图和权利要求中描述的说明性实施例不意味着是限制性的。在不脱离本文呈现的主题的精神或范围的情况下,可以利用其他实施例,并且可以进行其他改变。将容易理解的是,如在此一般描述的和在附图中示出的,本公开的方面可以以多种不同的配置来布置、替换、组合、分离和设计,所有这些在此都是明确预期的。
[0213]
关于附图中的梯形图、场景和流程图中的任一个或全部,并且如本文所讨论的,根据示例实施例,每个方框和/或通信可以表示信息的处理和/或信息的传输。替代实施例包括在这些示例实施例的范围内。在这些替代实施例中,例如,被描述为块、传输、通信、请求、响应和/或消息的功能可以取决于所涉及的功能不按所示或所讨论的顺序(包括基本上同时或以相反的顺序)来执行。此外,更多或更少的块和/或功能可以与这里讨论的任何梯形图、场景和流程图一起使用,并且这些梯形图、场景和流程图可以部分地或整体地彼此组合。
[0214]
表示信息处理的块可以对应于可以被配置为执行这里描述的方法或技术的特定逻辑功能的电路。替代地或附加地,表示信息处理的块可以对应于程序代码(包括相关数
据)的模块、片段或一部分。程序代码可以包括可由处理器执行的一个或多个指令,用于实现方法或技术中的特定逻辑功能或动作。程序代码和/或相关数据可以存储在任何类型的计算机可读介质上,例如包括盘或硬盘驱动器或其他存储介质的存储设备。
[0215]
计算机可读介质还可以包括非暂时性计算机可读介质,例如短期存储数据的非暂时性计算机可读介质,如寄存器存储器、处理器高速缓存和随机存取存储器(ram)。计算机可读介质还可以包括长期存储程序代码和/或数据的非暂时性计算机可读介质,例如二级或永久性长期存储装置,例如只读存储器(rom)、光盘或磁盘、致密盘只读存储器(cd-rom)。计算机可读介质也可以是任何其他易失性或非易失性存储系统。例如,计算机可读介质可以被认为是计算机可读存储介质,或者有形存储设备。
[0216]
此外,表示一个或多个信息传输的块可以对应于同一物理设备中的软件和/或硬件模块之间的信息传输。然而,其他信息传输可以在不同物理设备中的软件模块和/或硬件模块之间进行。
[0217]
如此处所描述的,描述了用于用户界面的多任务建模的多模态变换器vut。该模型可以被配置为接受三种类型的数据,即ui截屏图像、视图层级和自然语言问题。基于5个数据集的实验表明,vut同时实现了5种类型的ui任务,并展示了为用户界面领域提供统一建模的前景。vut模型支持对几个基准ui任务进行多模态多任务学习,最终可有利于移动交互和用户体验。
[0218]
尽管这里描述的示例任务解决了ui建模问题,但是它们可以被推广到不同的任务。例如,输入和输出模态基于通用数据类型。输入包括图像、视图层级和语言。输出头装备有生成视图层级、对象引用和语言响应的能力。因此,基于这些输入和输出模态的许多任务可以潜在地用该模型来学习。例如,ui布局生成可以由问题-答案模型来处理,以生成线性化视图层级的标记序列。
[0219]
虽然在此已经公开了各种方面和实施例,但是其他方面和实施例对于本领域技术人员来说将是显而易见的。在此公开的各种方面和实施例是为了解释的目的而提供的,并且不旨在进行限制,真实的范围由所附权利要求指示。

技术特征:
1.一种计算机实现的方法,包括:经由计算设备接收由该计算设备的图形用户界面提供的显示的截屏;由神经网络的图像-结构变换器通过融合基于截屏的第一嵌入和基于截屏中虚拟对象的布局的第二嵌入来生成表示;由神经网络并基于所生成的表示来预测与图形用户界面相关联的建模任务输出;以及由计算设备提供预测的建模任务输出。2.根据权利要求1所述的计算机实现的方法,进一步包括:由神经网络预测截屏中虚拟对象的布局。3.根据权利要求1所述的计算机实现的方法,进一步包括:经由计算设备接收指示截屏中的虚拟对象的布局的视图层级;以及由神经网络并为截屏和视图层级中的每一个确定内容嵌入和位置嵌入,其中通过融合生成表示包括基于内容嵌入和位置嵌入生成表示。4.根据权利要求3所述的计算机实现的方法,其中所述截屏的位置嵌入和所述视图层级的位置嵌入是对应于整个截屏的全局嵌入。5.根据权利要求1所述的计算机实现的方法,其中所述图形用户界面的建模包括多任务建模,并且其中所述神经网络包括双变换器,其中所述图像-结构变换器预测图像-结构任务的建模任务输出,问题-答案变换器预测自然语言任务的建模任务输出,并且其中所述图像-结构变换器和问题-答案变换器被配置为具有跨塔注意力。6.根据权利要求1所述的计算机实现的方法,其中所述建模任务输出用于以下一项或多项:对象检测任务、自然语言命令落地任务、微件加文字任务、屏幕总结任务或可轻击性预测任务。7.根据权利要求1所述的计算机实现的方法,其中所述建模任务输出用于自然语言命令落地任务,并且所述方法还包括:由神经网络并基于该表示来预测图形用户界面中的目标虚拟对象;将目标虚拟对象与自然语言命令相关联;以及经由图形用户界面提供自然语言命令。8.根据权利要求1所述的计算机实现的方法,其中提供自然语言命令包括在目标虚拟对象处或附近显示自然语言命令。9.根据权利要求1所述的计算机实现的方法,其中提供自然语言命令包括响应于用户与目标虚拟对象的交互,将自然语言命令作为语音命令来提供。10.根据权利要求1所述的计算机实现的方法,其中所述建模任务输出用于对象检测任务,并且所述方法还包括:由神经网络检测指示截屏的布局层级的一种或多种类型的容器对象。11.根据权利要求10所述的计算机实现的方法,其中所述布局层级包括线性布局、框架布局或列表之一。12.根据权利要求1所述的计算机实现的方法,其中所述建模任务输出用于对象检测任务,并且所述方法还包括:由神经网络检测文本字段、切换按钮或图像视图中的一个或多个。13.根据权利要求1所述的计算机实现的方法,其中所述建模任务输出用于微件加文字
任务,并且所述方法还包括:由所述神经网络并针对所述截屏,预测在所述图形用户界面中所预测的虚拟对象的功能的自然语言描述。14.根据权利要求1所述的计算机实现的方法,其中所述建模任务输出用于可轻击性预测任务,并且所述方法还包括:对于图形用户界面,识别开发者设计的可轻击性特征和用户感知的可轻击性特征之间的不匹配;以及向图形用户界面的开发者提供补偿所识别的不匹配的建议。15.根据权利要求1所述的计算机实现的方法,其中所述神经网络包括对象检测头、文本头和指示器头。16.根据权利要求1所述的计算机实现的方法,进一步包括:训练神经网络以接收由特定图形用户界面显示的输入截屏,并预测与特定图形用户界面的建模相关联的建模任务输出。17.根据权利要求16所述的计算机实现的方法,其中所述训练在所述计算设备处执行。18.根据权利要求1所述的计算机实现的方法,其中预测建模任务输出还包括:在计算设备处获得经训练的神经网络;以及将所获得的经训练的神经网络应用于建模任务输出的预测。19.根据权利要求1所述的计算机实现的方法,其中预测建模任务输出包括:由计算设备确定对预测建模任务输出的请求;从计算设备向第二计算设备发送对预测建模任务输出的请求,第二计算设备包括神经网络的经训练的版本;以及在发送请求之后,计算设备从第二计算设备接收预测的建模任务输出。20.一种计算设备,包括:一个或多个处理器;以及数据存储装置,其中所述数据存储装置上存储有计算机可执行指令,当由所述一个或多个处理器执行时,所述指令使得所述计算设备执行包括以下的功能:接收由计算设备的图形用户界面提供的显示的截屏;由神经网络的图像-结构变换器通过融合基于截屏的第一嵌入和基于截屏中虚拟对象的布局的第二嵌入来生成表示;由神经网络并基于所生成的表示来预测与图形用户界面相关联的建模任务输出;以及提供预测的建模任务输出。21.一种制品,其包括其上存储有计算机可读指令的一个或多个非暂时性计算机可读介质,当由计算设备的一个或多个处理器执行时,所述指令使得计算设备执行包括以下的功能:接收由计算设备的图形用户界面提供的显示的截屏;由神经网络的图像-结构变换器通过融合基于截屏的第一嵌入和基于截屏中虚拟对象的布局的第二嵌入来生成表示;由神经网络并基于所生成的表示来预测与图形用户界面相关联的建模任务输出;以及提供预测的建模任务输出。

技术总结
一种方法包括经由计算设备接收由计算设备的图形用户界面提供的显示的截屏。该方法还包括由神经网络的图像-结构变换器通过融合基于截屏的第一嵌入和基于截屏中虚拟对象的布局的第二嵌入来生成表示。该方法还包括由神经网络并基于所生成的表示来预测与图形用户界面相关联的建模任务输出。该方法还包括由计算设备提供预测的建模任务输出。设备提供预测的建模任务输出。设备提供预测的建模任务输出。


技术研发人员:Y.李 G.李 X.周 M.德哈尼 A.A.格里岑科
受保护的技术使用者:谷歌有限责任公司
技术研发日:2022.07.14
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-1053.html

最新回复(0)