对AI来说,「玩手机」可不是一件易事,光是识别各种用户界面(user interface, UI)就是一大难题:不光要识别出各个组件的类型,还要根据其使用的符号、位置来判断组件的功能。
对移动设备UI的理解,能够帮助实现各种人机交互任务,比如UI自动化等。
之前的工作对移动UI的建模通常依赖于屏幕的视图层次信息,直接利用了UI的结构数据,并借此绕过了从屏幕像素开始对组件进行识别的难题。
不过并不是所有的场景下都有可用的视图层次,这种方法通常会因为对象描述的缺失或结构信息的错位而输出错误结果,所以尽管使用视图层次结构可以提升短期性能,但最终可能会阻碍模型的适用性和泛化性能。
最近Google Research的两位研究人员提出了一个可用于移动端UI理解的纯视觉方法Spotlight,在视觉语言模型的基础上,只需要将用户界面的截图和屏幕上的一个感兴趣的区域(focus)作为输入即可。
论文链接:https://arxiv.org/pdf/2209.14927.pdf
Spotlight的这种通用架构很容易扩展,并且能够执行一系列的用户界面建模任务。
文中的实验结果表明,Spotlight模型在几个有代表性的用户界面任务上均达到了sota的性能,成功超越之前使用屏幕截图和视图层次结构作为输入的方法。
此外,文中还探索了Spotlight模型的多任务学习和few-shot提示的能力,在多任务学习方向上也展现出了有前景的实验结果。
论文作者Yang Li是谷歌研究中心的高级研究员,也是华盛顿大学 CSE 的附属教员,在中国科学院获得计算机科学博士学位,并在加州大学伯克利分校 EECS 进行博士后研究。他领导开发了下一个 Android 应用程序预测,也是 Android 上在设备上交互机器学习的先驱,还开发手势搜索等。
Spotlight:理解手机界面
对用户界面的计算理解是实现智能 UI 行为的关键一步。
在此之前,该团队研究过各种 UI 建模任务,包括窗口标题(widget)、屏幕摘要(screen summarization)和command grounding,这些任务解决了不同交互场景下的自动化和可访问性问题。
后续还利用这些功能演示了机器学习如何帮助「用户体验从业者」通过诊断可点击性混淆来提高 UI 质量,并为改进 UI 设计提供思路,所有这些工作与其他领域的工作共同展现了深度神经网络是如何潜在地改变终端用户的体验及交互设计实践。
虽然在处理「单个 UI 任务」时取得了一定程度上的成功,但接下来的问题是:是否能够从「特定 UI 识别」任务中提升对「通用 UI」的处理能力。
Spotlight模型也是对这个问题的解决方案进行的第一次尝试,研究人员开发了一个多任务模型来同时处理一系列 UI 任务,尽管工作上取得了一些进展,但仍存在一些难题。
之前的 UI 模型严重依赖于 UI 视图层次结构,也就是移动端 UI 屏幕的结构或元数据,比如网页的文档对象模型(Document Object Model),模型直接获取屏幕上 UI 对象的详细信息,包括类型、文本内容和位置等。
这种元数据使得以前的模型相对于纯视觉的模型来说更有优势,但视图层次结构数据的可访问性是一大难题,对象描述缺失或结构信息对齐不当等问题经常发生。
因此,尽管使用视图层次结构可以获得短期收益,但它最终可能会阻碍模型的性能和适用性。此外,之前的模型必须处理跨数据集和跨 UI 任务的异构信息,往往会导致更复杂的模型体系结构,最终难以跨任务扩展或泛化。
Spotlight模型
纯视觉的Spotlight方法旨在完全从原始像素中实现通用的用户界面理解能力。
研究人员引入了一个统一的方法来表示不同的 UI 任务,其中的信息可以通用地表示为两种核心模式:视觉和语言,其中视觉模式捕获用户从 UI 屏幕上看到的内容,语言模式可以是自然语言或任何与任务相关的token序列。
Spotlight 模型输入为一个三元组:屏幕快照、屏幕上感兴趣的区域和任务的文本描述;输出是关于感兴趣区域的文本描述或响应。
模型的这种简单的输入和输出表示更加通用,可以适用于各种 UI 任务,并且可扩展到多种模型架构上。
模型设计上能够进行一系列的学习策略和设置,从特定任务的微调,到多任务学习和few-shot学习。
Spotlight 模型能够利用了现有的架构构建模块,比如 ViT 和 T5,这些模块在高资源的通用视觉语言领域中进行了预训练,可以直接在这些通用领域模型之上进行模型构建。
因为 UI 任务通常与屏幕上的特定对象或区域有关,模型需要能够聚焦于对象或感兴趣的区域,研究人员将焦点区域抽取器(Focus Region Extractor)引入到视觉语言模型中,使模型能够根据屏幕上下文聚焦于该区域。
研究人员还设计了一个区域总结器(Region Summarizer),通过使用区域边界框生成的注意力query来获得基于 ViT 编码的屏幕区域的潜在表征。
具体来说,就是每个坐标(标量值,包括左,上,右或底部)的边界框,在屏幕截图中表示为黄色框。
首先通过一个多层感知机(MLP)将输入转换为作为一个稠密向量的集合,然后反馈给Transformer模型,根据坐标类型获取嵌入向量(coordinate-type embedding),对稠密向量及其相应的坐标类型嵌入进行颜色编码,以表明它们与每个坐标值之间的关系。
然后坐标查询(Coordinate queries)通过「交叉注意力」参与 ViT 输出的屏幕编码,最终Transformer的注意力输出被用作 T5下游解码的区域表示。
实验结果
研究人员使用两个没有无标签的(unlabeled)数据集对Spotlight模型进行预训练,分别是基于 C4语料库的内部数据集和一个内部移动数据集,总共包含250万个移动 UI 屏幕和8000万个网页。
然后分别针对四个下游任务,标题、摘要、grouding和可点击性,对预训练后的模型进行微调。
对于窗口标题(widget captioning)和屏幕摘要任务,使用CIDEr指标来衡量模型文本描述与评分者创建的一组参考的相似程度;对于command grounding任务,准确率指标为模型响应用户命令成功定位目标对象的百分比;对于可点击性预测,使用 F1分数来衡量模型区分可点击对象和不可点击对象的能力。
实验中,将 Spotlight 与几个基准模型进行了比较:WidgetCaption 使用视图层次结构和每个 UI 对象的图像为对象生成文本描述;Screen2Words 使用视图层次结构和屏幕截图以及辅助功能(例如,应用程序描述)来为屏幕生成摘要;VUT 结合了屏幕截图和视图层次结构来执行多个任务;原始的 Tappability 模型利用来自视图层次结构的对象元数据和屏幕快照来预测对象的 Tappability.
Spotlight 在四个 UI 建模任务中大大超越了之前的sota模型。
在一个更有难度的任务设置中,要求模型同时学习多个任务,因为多任务模型可以极大减少模型的能源消耗(model footprint),结果表明,Spotlight模型的性能仍然具有竞争力。
为了理解区域总结器(Region Summarizer)如何使 Spotlight 能够聚焦于屏幕上的目标区域和相关区域,研究人员分析了窗口标题和屏幕总结任务的注意力权重,能够指示出模型注意力在屏幕截图上的位置。
在下图中,对于窗口标题任务,模型在预测「选择切尔西队」(select Chelsea team)时,左侧的复选框用红色边框突出显示,可以从右边的注意力热力图中看到,模型不仅学会了注意复选框的目标区域,还学会了关注最左边的文本「Chelsea」来生成标题。
对于屏幕摘要任务,模型预测「页面显示一个学习应用程序的教程」(page displaying the tutorial of a learning app),并给出左侧的截图,示例中,目标区域是整个屏幕,模型可以学习处理屏幕上的重要部分以进行摘要。
参考资料:
https://ai.googleblog.com/2023/02/a-vision-language-approach-for.html