当前位置: 首页 > 编程日记 > 正文

机器推理文本+视觉,跨模态预训练新进展

作者 | 李根、段楠、周明

来源 | 微软研究院AI头条(ID:MSRAsia)

【导读】机器推理要求利用已有的知识和推断技术对未见过的输入信息作出判断,在自然语言处理领域中非常重要。本文将介绍微软亚洲研究院在跨模态预训练领域的研究进展。

近年来,自然语言处理(NLP)和计算机视觉(CV)两大领域不断碰撞和融合,衍生出很多跨模态研究课题(例如图片检索和图片问答等)。但由于这两个领域中的基础模型大都针对纯 NLP 或 CV 任务单独设计和训练(例如 NLP 中针对语言模型设计的 BERT 和 CV 中针对图片分类设计的 ResNet),这些模型无法很好地刻画语言和视觉内容之间的关联。从下游任务对应的标注数据中学习这类关联是解决方案之一,但由于标注开销大,该方案依然缺点明显。

针对上述问题,我们提出跨模态预训练模型 Unicoder-VL。借助通用领域跨模态预训练,该模型能够学习到语言和视觉间的内在关联,并用于生成语言和视觉的联合向量表示。实验证明,这种考虑了跨模态信息的联合向量表示能够很好地迁移到下游任务中,并取得很好的效果。接下来,本文首先简要介绍 Unicoder-VL 的模型,然后通过其在图片检索和图片推理问答中的应用,说明该模型对跨模态推理任务的作用。

跨模态预训练模型 Unicoder-VL

Unicoder-VL 采用多层 Transformer 结构作为模型基础,基于自注意力机制学习语言与语言信息间的协同表示。我们设计了四种跨模态预训练任务,包括:1)基于文本的掩码语言模型;2)基于图像区域的掩码类别预测;3)图像文本匹配;4)图像特征生成。图1给出该模型示意图。

图1: Unicoder-VL 模型示意图

1)基于文本的掩码语言模型。该任务将预训练数据中的 token 以15%概率随机遮挡(mask)。为保证预训练与微调的一致性(微调时不做遮挡),每次选中的遮挡词以80%概率真正遮挡(替换成特殊符号 [MASK]),以10%概率随机替换为其他词,以10%概率保持不变。

2)基于图像区域的掩码类别预测。该任务首先使用 Faster R-CNN 提取图片中每个区域的特征,包括视觉特征(池化后的 ROI 特征)和空间特征(表示其空间位置信息的坐标值)。然后,将视觉特征和空间特征分别输入到全连接层并映射到和语言 token 维度相同的向量空间中,并与该区域对应的文本类别标签向量相加,得到每个图像区域对应的输入向量表示。和文本掩码类似,该任务对图像区域做遮挡操作,以15%概率选中遮挡区域,并在每次遮挡时以80%概率将特征随机替换为全0向量,以10%概率随机替换成其他区域对应的特征向量,以10%概率保持不变。

3)图像文本匹配。该任务基于图片-文本对随机采样负样例图片或文本,并让模型判别两者是否匹配。Unicoder-VL 保留了 BERT 中的特殊符号 [CLS]。该符号在最后一层的输出向量经过 MLP 层映射后,直接用于预测输入图文之间的匹配关系。这一任务用于学习图片与文本之间的全局信息对应关系。

4)图像特征生成。该任务为每个遮挡的图片区域生成一个特征向量。通过拟合该向量和图片区域对应的原始图像特征向量,使得模型能够更好地根据图文上下文信息进行图像信息补全。

Unicoder-VL 在图片检索和图片推理问答中的应用

Unicoder-VL 在经过预训练后,可以直接在下游任务上进行微调(fine-tune)。本文主要在图片检索和图片推理问答这两个任务上进行验证。

1)图像文本检索。我们选取 MSCOCO 数据集和 Flickr30k 数据集,并分别从图片检索文本和文本检索图片这两个角度评估 Unicoder-VL 在图片检索上的能力。由于预训练数据与这两个图文检索数据集之间的差异,需要在这两个数据集上进行一定程度的微调。所用到的数据构造则与预训练任务3)保持一致:即随机采样负例图片(或文本),让模型判别两者是否匹配。

实验结果如图2所示:zero-shot 表示 Unicoder-VL 在经过预训练但未经过微调的情况下,在测试集的性能表现;w/o pre-training 表示 Unicoder-VL 在未经预训练的情况下,直接用于下游任务训练的表现。前者证明经过预训练的 Unicoder-VL 具有很好的泛化迁移能力,后者证明 Transformer 结构即使没有经过预训练,同样在跨模态任务上有很强的建模能力。与 state-of-the-art 结果的比较说明跨模态预训练可以极大提高图片检索的能力。

图2: Unicoder-VL 在 MSCOCO 和 Flickr30k 测试集的图片检索结果 (截止到2019.12.10)

2)图片推理问答(GQA)。图片推理问答任务 GQA 是由斯坦福大学提出的跨模态推理问答数据集。该任务在训练数据集中不但提供图片、自然语言问题和问题对应的答案,还提供图片对应的场景图(scene graph)以及每个自然语言问题对应的基于场景图的语义表示。由于该数据集中很大比例的问题都是复杂问题(即涉及到多跳转或多约束条件的自然语言理解),因此需要模型具备很强的推理能力,才能在该任务上个取得排名靠前的结果。

针对该任务,我们设计了一个基于 Unicoder-VL 的视觉问答推理模型(DREAM+Unicoder-VL)。该模型首先使用 Unicoder-VL 将输入自然语言问题和图片转化为对应的向量表示。然后,基于语义分析技术,将自然语言问题转化为对应的树结构语义表示,基于物体识别技术,从图片中抽取物体候选,并使用常识知识库对每个物体候选进行常识知识三元组扩展。接下来,对问题对应的语义表示和常识知识三元组集合进行向量编码,并结合 Unicoder-VL 输出的向量表示进行跨模态注意力计算。最后,基于融合后的跨模态混合信息进行答案排序。图3 给出该方法在 GQA 任务排行榜上的结果(截止到2020-01-10)。

图3: Unicoder-VL 在图片推理问答 GQA 任务上的结果

除了为推理任务而专门设计的问题理解和图片理解外,实验证明使用 Unicoder-VL 比使用 BERT + ResNet 能够获得显著的性能提升。这充分说明跨模态预训练模型对跨模态任务的重要性和有效性。

结语

本文介绍了微软亚洲研究院在跨模态预训练上的一个工作:Unicoder-VL,验证了跨模态预训练在图片检索和视觉推理问答任务上均能取得很好的效果。当然,这依然是机器推理研究中最初始的一步。在未来,我们将基于目前已有的预训练模型、知识图谱、规则以及海量开放领域数据,针对推理任务,尤其是小样本任务,进行更多的探索和尝试。

了解更多技术细节,请点击阅读原文查看论文:

Unicoder-VL: A Universal Encoder for Vision and Language by Cross-modal Pre-training

链接:https://arxiv.org/pdf/1908.06066.pdf

(*本文为AI科技大本营转载文章,转载请联系原作者)

精彩推荐

2020年,由 CSDN 主办的「Python开发者日」活动(Python Day)正式启动。我们将与 PyCon 官方授权的 PyCon中国社区合作,联手顶尖企业、行业与技术专家,通过精彩的技术干货内容、有趣多元化的活动等诸多体验,共同为中国 IT 技术开发者搭建专业、开放的技术交流与成长的家园。未来,我们和中国万千开发者一起分享技术、践行技术,铸就中国原创技术力量。

【Python Day——北京站】现已正式启动,「新春早鸟票」火热开抢!2020年,我们还将在全国多个城市举办巡回活动,敬请期待!

活动咨询,可扫描下方二维码加入官方交流群~

CSDN「Python Day」咨询群 ????

来~一起聊聊Python

如果群满100人,无法自动进入,可添加会议小助手微信:婷婷,151 0101 4297(电话同微信)


推荐阅读

  • 回家的票抢上了吗?聊聊12306为什么时不时要崩一下

  • 微软开源NAS算法Petridish,提高神经网络迁移能力

  • 必看!52篇深度强化学习收录论文汇总 | AAAI 2020

  • 悲痛!临近年关,一位 IT 创业者自杀,曾卖房给员工发工资

  • 小网站的容器化(上)

  • 国内 RISC-V 产学研基地成立,Intel、Arm、RISC-V 将三分天下?

  • 你点的每个“在看”,我都认真当成了AI

相关文章:

[LeetCode]:94:Binary Tree Inorder Traversal

题目&#xff1a; Given a binary tree, return the inorder traversal of its nodes values. For example:Given binary tree {1,#,2,3}, 1\2/3return [1,3,2]. 代码&#xff1a; public class Solution {public static ArrayList<Integer> listResult new ArrayList&l…

腾讯 AI 2019这一年

所有参与投票的 CSDN 用户都参加抽奖活动群内公布奖项&#xff0c;还有更多福利赠送近日&#xff0c;腾讯AI实验室总结了 2019 年其取得重大进展的两大研究方向&#xff0c;推动实现的行业应用以及前沿研究探索方面的成果。一、两大难题攻坚&#xff1a;通用人工智能与数字人用…

跨平台PHP调试器设计及使用方法——探索和设计

在《跨平台PHP调试器设计及使用方法——立项》一文中&#xff0c;我确定了使用xdebug作为调试器插件部分的基础组件。xdebug提供了一个远程调试的功能&#xff08;相关资料可以详见https://xdebug.org/docs/remote&#xff09;&#xff0c;我们这个项目便是基于这个功能实现的。…

Ubuntu下允许Root用户直接登录图形界面

ubuntu root是默认禁用了&#xff0c;不允许用root登陆&#xff0c;所以先要设置root密码。 执行&#xff1a;sudo passwd root 接着输入密码和root密码&#xff0c;重复密码。再重新启动就可以用root登陆。 另外&#xff0c;默认情况下是不允许用root帐号直接登陆图形界面的。…

携程App for Apple Watch探索

在Apple Watch发布之后&#xff0c;很多App都针对它设计了相应的版本。旅行作为与Apple Watch时间管理特性契合度较高的场景&#xff0c;同时携程旅行作为国内领先的OTA行业App&#xff0c;也成为了首批适配Apple Watch并荣登Apple官网和App Store推荐的应用之一。InfoQ就App f…

跨平台PHP调试器设计及使用方法——通信

首先引用《跨平台PHP调试器设计及使用方法——探索和设计》中的结构图&#xff08;转载请指明出于breaksoftware的csdn博客&#xff09; 本文要介绍的是我们逻辑和pydbgp通信的实现&#xff08;图中红框内内容&#xff09;。 设计通信之前&#xff0c;我需要先设计一种通信协议…

MVP模式的相关知识

MVP 是从经典的模式MVC演变而来&#xff0c;它们的基本思想有相通的地方&#xff1a;Controller/Presenter负责逻辑的处理&#xff0c;Model提供数据&#xff0c;View负责显示。作为一种新的模式&#xff0c;MVP与MVC有着一个重大的区别&#xff1a;在MVP中View并不直接使用Mod…

“数学不行,还能干点啥?”面试官+CTO:干啥都费劲!

关于数学与程序员的“暧昧”关系&#xff0c;先看看网友的看法&#xff1a;同时编程圈也流传着一个段子&#xff1a;一流程序员靠数学&#xff0c;二流程序员靠算法&#xff0c;末端程序员靠百度&#xff0c;低端看高端就是黑魔法。想一想&#xff0c;我们日常学习、求职、工作…

CentOS7 yum 源的配置与使用

YUM&#xff1a;Yellowdog Updater Modified Yum&#xff08;全称为 Yellow dog Updater, Modified&#xff09;是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理&#xff0c;能够从指定的服务器自动下载RPM包并且安装&#xff0c;可以自动处理依赖…

跨平台PHP调试器设计及使用方法——协议解析

在《跨平台PHP调试器设计及使用方法——探索和设计》一文中&#xff0c;我介绍了将使用pydbgp作为和Xdebug的通信库&#xff0c;并让pydbgp以&#xff08;孙&#xff09;子进程的方式存在。《跨平台PHP调试器设计及使用方法——通信》解决了和pydbgp通信的问题&#xff0c;本文…

测试客户端发图图

转载于:https://blog.51cto.com/ericsong/116942

搜狐、美团、小米都在用的Apache Doris有什么好? | BDTC 2019

【导读】12 月 5-7 日&#xff0c;由中国计算机学会主办&#xff0c;CCF 大数据专家委员会承办&#xff0c;CSDN、中科天玑协办的中国大数据技术大会&#xff08;BDTC 2019&#xff09;在北京长城饭店隆重举行。100 顶尖技术专家、1000 大数据从业者齐聚于此&#xff0c;以“大…

cacti邮件告警设置

功能说明对指定流量图形&#xff08;指定接口&#xff09;设置最高或最低流量阀值&#xff0c;当流量出现异常偏高或偏低触发阀值&#xff0c;系统自动将异常信息以邮件形式通知指定收件人。如果收件人邮箱是139邮箱&#xff0c;还可以增设短信通知功能。设置前准备设置该功能之…

跨平台PHP调试器设计及使用方法——高阶封装

在《跨平台PHP调试器设计及使用方法——协议解析》一文中介绍了如何将pydbgp返回的数据转换成我们需要的数据。我们使用该问中的接口已经可以构建一个简单的调试器。但是由于pydbgp存在的一些问题&#xff0c;以及调试器需要的一些高级功能&#xff0c;我们还需要对这些接口进行…

Oracle的口令文件(passwordfile)的讲解(摘录)

初学oracle&#xff0c;很多概念迷糊&#xff0c;今天看到这文章&#xff0c;让我有一个比较清晰的认识。转载[url]http://www.itpub.net/viewthread.php?tid906008&extra&page1[/url]1、os认证oracle安装之后默认情况下是启用了os认证的&#xff0c;这里提到的os认证…

如何优雅地使用pdpipe与Pandas构建管道?

作者 | Tirthajyoti Sarkar译者 | 清儿爸编辑 | 夕颜出品 | AI科技大本营&#xff08;ID: rgznai100&#xff09; 【导读】Pandas 是 Python 生态系统中的一个了不起的库&#xff0c;用于数据分析和机器学习。它在 Excel/CSV 文件和 SQL 表所在的数据世界与 Scikit-learn 或 Te…

第 十 天 : 添 加 硬 盘 和 分 区 挂 载 等

小Q&#xff1a;狼若回头&#xff0c;必有缘由&#xff0c;不是报恩&#xff0c;就是***&#xff1b; 事不三思必有败&#xff0c;人能百忍则无忧。今天的进度虽然慢了&#xff0c;但是学习状态还是一如往常&#xff0c;只不过今天遇到了不少新的知识点&#xff0c;需要好好想想…

从4个月到7天,Netflix开源Python框架Metaflow有何提升性能的魔法?

作者 | Rupert Thomas译者 | 凯隐编辑 | Jane出品 | AI科技大本营&#xff08;ID&#xff1a;rgznai100&#xff09;【导语】Metaflow 是由 Netflix 开发&#xff0c;用在数据科学领域的 Python框架&#xff0c;于 2019 年 12 月正式对外开源。据介绍&#xff0c;Metaflow 解决…

SOA标准发展混乱 国内业务缺少经验

近年来&#xff0c;SOA已经成为国际及我国信息技术领域的重大热点之一。从2005年至今&#xff0c;SOA逐渐成为影响中国IT系统构建的主导思想。从2006年开始&#xff0c;SOA的建设方法已在我国部分行业信息化项目中开始得以越来越广泛的应用。 但热潮背后&#xff0c; SOA概念在…

跨平台PHP调试器设计及使用方法——界面设计和实现

一个优秀的交互设计往往会影响一个产品的命运。在设计这款调试器时&#xff0c;我一直在构思这款调试器该长什么样子。简单、好用是我设计的原则&#xff0c;于是在《跨平台PHP调试器设计及使用方法——立项》一文中&#xff0c;我给出了一个Demo。之后实现的效果也与之变化并不…

AJAX安全-Session做Token

个人思路&#xff0c;请大神看到了指点 个人理解token是防止扫号机或者恶意注册、恶意发表灌水&#xff0c;有些JS写的token算法&#xff0c;也会被抓出来被利用&#xff0c;个人感觉还是用会过期的Session做token更好&#xff0c;服务器存储&#xff0c;加载到客户端页面&…

跨平台PHP调试器设计及使用方法——使用

经过之前六篇博文的分析和介绍&#xff0c;大家应该对这套调试器有个初步的认识。本文我将讲解它的使用方法。&#xff08;转载请指明出于breaksoftware的csdn博客&#xff09; 上图是该软件界面的布局&#xff0c;我们之后的讲解也将围绕着这些功能展开。 文件夹管理 在查看一…

管理7k+工作流,月运行超10000万次,Lyft开源的Flyte平台意味着什么?

作者 | Allyson Gale译者 | 刘畅编辑 | Jane出品 | AI科技大本营&#xff08;ID&#xff1a;rgznai100&#xff09;【导读】Flyte 平台可以更容易的创建并发&#xff0c;可伸缩和可维护的工作流&#xff0c;从而进行机器学习和数据处理。Flyte 已有三年多的训练模型和数据处理经…

Jmeter组件执行顺序与作用域

一、Jmeter重要组件&#xff1a; 1&#xff09;配置元件---Config Element&#xff1a;  用于初始化默认值和变量&#xff0c;以便后续采样器使用。配置元件大其作用域的初始阶段处理&#xff0c;配置元件仅对其所在的测试树分支有效&#xff0c;如&#xff0c;在同一个作用域…

跨平台PHP调试器设计及使用方法——拾遗

之前七篇博文讲解了跨平台PHP调试器从立项到实现的整个过程&#xff0c;并讲解了其使用方法。但是它们并不能全部涵盖所有重要内容&#xff0c;所以新开一片博文&#xff0c;用来讲述其中一些杂项。&#xff08;转载请指明出于breaksoftware的csdn博客&#xff09; 触发调试的…

召唤超参调优开源新神器:集XGBoost、TensorFlow、PyTorch、MXNet等十大模块于一身...

整理 | 凯隐编辑 | Jane出品 | AI科技大本营&#xff08;ID&#xff1a;rgznai100&#xff09;【导读】Optuna是一款为机器学习任务设计的自动超参数优化软件框架&#xff0c;是一款按运行定义(define-by-run) 原则设计的优化软件&#xff0c;允许用户动态地调整搜索空间&#…

Linux下的Silverlight:Moonlight 1.0 Beta 1发布了

Moonlight是微软Silverlight的一个开源实现&#xff0c;其目标平台是Linux与Unix/X11系统。自从2007年9月开始&#xff0c;Moonlight就在Mono项目下进行了开发&#xff0c;它是由Novell发起并资助的。现在&#xff0c;Moonlight 1.0 Beta 1已经向公众发布了。 Novell和Mono宣布…

在visual studio 2010中调用ffmpeg

转自&#xff1a;http://blog.sina.com.cn/s/blog_4178f4bf01018wqh.html 最近几天一直在折腾ffmpeg&#xff0c;在网上也查了许多资料&#xff0c;费了不少劲&#xff0c;现在在这里和大家分享一下。 一、准备工作本来是想自己在windows下编译ffmpeg生成lib、dll等库文件的&am…

无线路由器与无线AP的区别

摆脱线缆的羁绊&#xff0c;手捧一杯香醇的咖啡在家中的任何角落都可以无拘无束和网友谈天说地──这就是无线的魅力&#xff01;在无线网络迅猛发展的今天&#xff0c;无线局域网&#xff08;Wireless Local-Area Network&#xff0c;简称WLAN&#xff09;已经成为许多SOHO家庭…

Simple Dynamic Strings(SDS)源码解析和使用说明一

SDS是Redis源码中一个独立的字符串管理库。它是由Redis作者Antirez设计和维护的。一开始&#xff0c;SDS只是Antirez为日常开发而实现的一套字符串库&#xff0c;它被使用在Redis、Disque和Hiredis等作者维护的项目中。但是作者觉得这块功能还是比较独立的&#xff0c;应该让其…