前不久,DeepMind 提出生成查询网络 GQN,具备从 2D 画面到 3D 空间的转换能力。近日。DeepMind 基于 GQN 提出一种新模型。可以捕捉空间关系的语义(如 behind、left of 等),当中包括一个基于从场景文本描写叙述来生成场景图像的新型多模态目标函数。结果表明,内部表征对意义不变的描写叙述变换(释义不变)具备稳健性,而视角不变性是该系统的新兴属性。

论文:Encoding Spatial Relations from Natural Language

论文链接:https://arxiv.org/pdf/1807.01670.pdf

摘要:自然语言处理通过分布式方法在学习词汇语义方面有了重要进展,可是通过这些方法学习到的表征无法捕捉真实世界中隐藏的特定种类的信息。详细来说。空间关系的编码方式与人类的空间推理不一致且缺乏视角变换不变性。我们展示了这样一个系统。它可以捕捉空间关系的语义,如 behind、left of 等。我们的关键贡献是一个基于从场景文本描写叙述来生成场景图像的新型多模态目标,以及一个用于训练的新型数据集。我们证明,内部表征对意义不变的描写叙述变换(释义不变)具备稳健性,而视角不变性是该系统的新兴属性。

1 引言

人类可以通过自然语言唤起彼此脑海里的表征。当人们描写叙述对一个场景的看法时,对话者可以形成该场景的心理模型,并想象所描写叙述的对象从不同的角度看起来是如何的。在最简单的层面上。假设有人站在你面前并描写叙述一个物体位于他们左边,你就知道它在你的右边。嵌入自然语言意义的现有模型无法实现这样的视点集成(viewpoint integration)。其实。如 Gershman 和 Tenenbaum(2015)所言,从单语语料库中提取的自然语言分布式表征无法理解语义对等,比如「A 在 B 前面」等同于「B 在 A 后面」。

我们觉得,朝人类水平的理解场景描写叙述能力发展的重要一步是建立可以捕捉这些不变性的表征。

在本文中,我们介绍了一个能学习此类表征的多模态架构。

为了训练和验证该模型,我们创建了一个 3D 场景的大型数据集,包括场景和不同角度的语言描写叙述。我们对学到的表征进行评估,通过从训练数据中未看到的角度生成图像并检查它们是否符合这样的新角度下对场景的自然语言描写叙述。来确保它们确实可以泛化。我们还发现,我们学习的表征非常符合人类关于场景描写叙述的类似性推断。

众所周知。空间自然语言模糊不清,难以计算处理(Kranjec et al. 2014; Haun et al. 2011)。即使是「behind」这样看似简单的介词也无法明白描写叙述,而须要分级处理(graded treatment)。

此外,空间概念的词汇化在不同语言和文化之间可能存在非常大差异(Haun et al. 2011)。

另外,人类在描写叙述空间体验(Landau and Jackendoff 1993)时以及方位词层次中(Kracht 2002)表达几何属性的方法更加复杂。研究者尽管对人类类别空间关系的处理、感知和语言理解之间的关系进行了大量研究,但对于如何在计算上遍码这样的关系差点儿没有明白的结论(Kosslyn 1987; Johnson 1990; Kosslyn et al. 1998; Haun et al. 2011)。

图 1:具有对应真值图像的演示样例描写叙述。如图所看到的是自然语言(NL)描写叙述和合成语言(SYN)描写叙述。当中保留了标注语言错误。

在自然语言处理领域,空间关系的研究主要集中在从文本中提取空间描写叙述并将其映射到形式符号语言(Kordjamshidi et al. 2012a,b),在这一方面研究者提出了非常多标注体系和方法(Shen et al. 2009; Bateman et al. 2010; Rouhizadeh et al. 2011)。与此同一时候,可视化空间描写叙述方面的研究大量依赖手动创建的表征。不具备分布式表征的通用跨任务优势(Chang et al. 2014; Hassani and Lee 2016)。

2 基于视觉的场景描写叙述数据集

表 1:数据集统计结果。

B.1 数据集演示样例

B.1.1 合成语言。两个对象

B.1.2 合成语言,三个对象

B.1.3 自然语言,两个对象

B.1.4 自然语言,三个对象

3 模型描写叙述

我们提出了一种模型,该模型学习将单个底层输入的多种描写叙述集成到单个表征中,随后在多模态设置中利用该表征生成新数据。

我们将该模型称为空间语言集成模型(Spatial Language Integrating Model,SLIM)。其灵感来自于生成查询网络(Generative Query Network。Eslami et al. 2018),该网络集成了多个视觉输入。可用于生成同样环境的新视图。

为了让表征能编码视点无关的场景描写叙述,设置该模型使之在构建表征之前不知道哪个视点会被解码。在我们的样例里,向模型输入从 n 个不同视点所看到的场景的文本描写叙述。以编码成场景表征向量。然后,利用该向量重建从新视点看到的场景图像。

如图 2 所看到的,我们提出的模型由两部分组成:一个表征网络。它从多视点场景的文本描写叙述中生成聚合表征(aggregated representation);一个以场景表征为条件的生成网络。它将场景渲染为新视点下的图像。我们对这两个网络进行了例如以下描写叙述(详见附录 A)。

图 2:模型图示。表征网络解析多个摄像机坐标拍摄的多视点场景的多个描写叙述和文本描写叙述。

全部视点的表征被聚合成一个场景表征向量 r。然后生成网络使用该向量 r 来重建从新的相机坐标看到的场景的图像。

图 3:从合成语言(顶部)和自然语言(底部)模型生成的样本。

对应的描写叙述是:「There is a pink cone to the left of a red torus. There is a pink cone close to a purple cone. The cone is to the left of the cone. There is a red torus to the right of a purple cone.」。「There are two objects in the image. In the back left corner is a light green cone, about half the height of the wall. On the right side of the image is a bright red capsule. It is about the same height as the cone, but it is more forward in the plane of the image.」

4 场景编码实验

图 4:训练中用于训练/验证/測试切割的模型变体的 ELBO 值。人类对视觉场景样本和对应描写叙述之间一致性的排名。

对于 SLIM†(NL + SYN),仅依据自然语言输入计算。

5 表征分析

图 5:上面的图是用于測试表征类似性的场景变换可视图。左下角是基本表征和将四种变换方法中的一种应用于上下文输入而产生的表征之间的余弦距离。右下角採取同样的分析方法。但其对象是单个编码器步骤生成的表征。黑条代表 95%CI。

为了对照。人类的平均排名是 M> P> A> N(Gershman and Tenenbaum 2015)。

表 2: Gershman and Tenenbaum (2015) 变换。

图 6:a) 单个描写叙述编码的 t-SNE。依据不同摄像机角度着色。

b) 同一场景单个描写叙述表征之间的距离。是视点之间角度的函数。c) 从相对弧绘制的聚合表征之间的距离,是这些弧的大小的函数。蓝色对照同样场景表征。红色对照不同场景表征。d) 在不同的输入条件下,恒定场景和坐标的输出样本。

顶部:单个描写叙述(黑色箭头方向)。底部:来自越来越大的弧的聚合描写叙述。

DeepMind提出空间语言集成模型SLIM,有效编码自然语言的空间关系的更多相关文章

  1. DeepMind提出新型超参数最优化方法:性能超越手动调参和贝叶斯优化

    DeepMind提出新型超参数最优化方法:性能超越手动调参和贝叶斯优化 2017年11月29日 06:40:37 机器之心V 阅读数 2183   版权声明:本文为博主原创文章,遵循CC 4.0 BY ...

  2. cips2016+学习笔记︱简述常见的语言表示模型(词嵌入、句表示、篇章表示)

    在cips2016出来之前,笔者也总结过种类繁多,类似词向量的内容,自然语言处理︱简述四大类文本分析中的"词向量"(文本词特征提取)事实证明,笔者当时所写的基本跟CIPS2016一 ...

  3. R语言︱机器学习模型评价指标+(转)模型出错的四大原因及如何纠错

    笔者寄语:机器学习中交叉验证的方式是主要的模型评价方法,交叉验证中用到了哪些指标呢? 交叉验证将数据分为训练数据集.测试数据集,然后通过训练数据集进行训练,通过测试数据集进行测试,验证集进行验证. 模 ...

  4. C# - LINQ 语言集成查询

    LINQ(Language Integrated Query) LINQ语言集成查询是一组用于C#语言的扩展.它允许编写C#代码对数据集进行查询,比如查询内存中的对象或查询远程数据库的表.利用linq ...

  5. 【Python基础学习一】在OSX系统下搭建Python语言集成开发环境 附激活码

    Python是一门简单易学,功能强大的编程语言.它具有高效的高级数据结构和简单而有效的面向对象编程方法.Python优雅的语法和动态类型以及其解释性的性质,使它在许多领域和大多数平台成为编写脚本和快速 ...

  6. R语言︱机器学习模型评估方案(以随机森林算法为例)

    笔者寄语:本文中大多内容来自<数据挖掘之道>,本文为读书笔记.在刚刚接触机器学习的时候,觉得在监督学习之后,做一个混淆矩阵就已经足够,但是完整的机器学习解决方案并不会如此草率.需要完整的评 ...

  7. (转)Go语言并发模型:使用 context

    转载自:https://segmentfault.com/a/1190000006744213 context golang 简介 在 Go http包的Server中,每一个请求在都有一个对应的 g ...

  8. Python机器学习(基础篇---监督学习(集成模型))

    集成模型 集成分类模型是综合考量多个分类器的预测结果,从而做出决策. 综合考量的方式大体分为两种: 1.利用相同的训练数据同时搭建多个独立的分类模型,然后通过投票的方式,以少数服从多数的原则作出最终的 ...

  9. 『Kaggle』分类任务_决策树&集成模型&DataFrame向量化操作

    决策树这节中涉及到了很多pandas中的新的函数用法等,所以我单拿出来详细的理解一下这些pandas处理过程,进一步理解pandas背后的数据处理的手段原理. 决策树程序 数据载入 pd.read_c ...

随机推荐

  1. iOS 在已有项目添加CoreData

    本文转载至 http://cnbin.github.io/blog/2016/03/11/ios-zai-yi-you-xiang-mu-tian-jia-coredata/ 如果是新项目很好说,新建 ...

  2. JDBC批量加密数据库密码

    package com.lxc.wmb; import java.io.UnsupportedEncodingException; import java.security.MessageDigest ...

  3. PL/SQL Developer的安装以及与64位Oracle Database进行连接

    本文转载自budongs 一.下载 官网安装包(1106版本)下载链接: plsqldev1106.exe 官网中文语言包(110版本) 下载链接: chinese.exe [中文语言包的使用方法为: ...

  4. [sql异常]SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的

    //执行远程数据库表查询 SELECT * FROM OPENDATASOURCE('SQLOLEDB', 'Data Source=数据库地址;User ID=sa;password=sa' ).n ...

  5. 【本周主题】第一期:JavaScript单线程与异步

    相信下边这个图一定都不陌生,本周就围绕这张图深入了解下js代码执行时的来龙去脉. 一.JavaScript是单线程的 2018-11-19 21:21:21 周一 js本质是单线程的.这一特性是jav ...

  6. EGL 1.0 学习笔记

    http://hi.baidu.com/leo_xxx/item/b01b1fc29abff355ac00ef5c 基本概念 EGL是OpenGL ES与本地Window系统之间的桥梁.EGL创建渲染 ...

  7. HTTP协议剖析 (附HttpWatch工具监控网络请求)

    工具:HttpWatch Prov7.2.13破解版(带正版key) HTTP协议概述   思考2个要点: 第一:浏览器和服务器是通过什么连接的 第二:这种连接方式是怎么实现的   通过Interne ...

  8. Android adb录制视频和截屏的dos脚本

    以下是本人写的脚本,用于录制android手机视频.截屏 dos脚本文件名:screenrecord.bat @ECHO OFF CLS color 0a set SCREEN_RECORD_SAVE ...

  9. Makefile eval函数

    https://www.cnblogs.com/gaojian/archive/2012/10/04/2711494.html对 makefile 中 eval 函数的学习体会 http://blog ...

  10. Oracle 学习之 Select 1

    1. select 1 from table           增加临时列,每行的列值是写在select后的数,这条sql语句中是1,若select后为2,则是每行为2的列 2:select cou ...