作者|周维
编辑|陈思
AI 圈有这样一句话:解决了自然语言处理问题,就解决了人工智能的大部分问题。如何提高机器的自然语言处理能力一直是 AI 工程师们不断努力想要解决的难题。本文作者将分享在自然语言处理的研究和学习的过程中自己的收获。
如何让自然语言理解更加智能?

2016 年底,Yann LeCun 在 NIPS 大会中曾说到:“Predicting any part of the past, present or future percepts from whatever information is available.”,并提出预测学习(predictive learning)的概念。其实预测学习指的就是无监督学习,那为什么要强调预测呢?

现在市面上大部分的人工智能技术还是以有监督学习居多,如:目标识别、文本分类等,在大量数据驱动下,有监督学习能够达到非常可观的效果,但并不适用于所有情况,如图 1.1 中的情况。

图 1.1 取自 Yann LeCun PPT

当人看到这样的图片的时候,看到的是一个人拿着包裹,准备出门,如果用有监督的方法想要获得这个信息大概又需要重新标记图片训练模型了,而这样大量标记和训练工作却是无意义的。人之所以能够获得“出门”的信息,是因为我们看到过并且切身经历过,是因为我们从现实生活中获得了经验,这些经验逐渐的成为了我们的常识,这使得我们在看到事物的时候不自觉的就会知道后面可能发生的事,使得我们在看小说时头脑中能够想象出小说中的情景,使得我们在读书后能够学到知识,并应用于现实生活中。这,就是人的预测能力。

由此可以看出,智能的本质是预测能力,而预测能力是需要足够的先验知识作为前提的,也就是“常识”。于人类相比,AI 最大局限是没有人类的“常识”,在没有任何常识的情况下 AI 只能够完成人们让他完成的事,并且适应性较差。从古至今,最准确高效的存储知识的方式就是文字,如今,通过文字来存储大量的知识已经不构成问题,问题是,有了先验知识(不论是否结构化),如何准确地查询和运用,才是决定预测效果好坏的关键。这个过程就是记忆与推理。

记忆网络

神经网络的投入使用使得提取复杂的特征不再成为难题,其中最为精妙的设计之一是门结构的循环神经网络(Gated Recurrent Neural Network,Gated RNN)使用,典型的实现是 LSTM 和 GRU。门结构的循环神经网络要求输入序列化的数据,使用多种门结构的组合实现对序列上的内容的选择性记忆,并体现在特征向量中,也就是 RNN 的隐含层状态。但这只限于“近期”输入的序列中的内容,面对存储着大量信息的文本,现有的 RNN 技术不仅不能存储大量的历史信息,而且不能够对知识产生区分度,为此,记忆网络被提出。

2015 年,facebook 的 Jason Weston 等人提出了记忆网络(Memory Network)1 的概念,并构造了基于故事推理的 bAbI 问答任务,其 20 个推理任务内容如图 2.1 所示,任务中包涵三个部分:Story,Question 和 Answer。目标是让智能体(Agent)能够利用 Story 中的“常识”,经过多层的推理获得问题的答案。其思想是使用记忆网络“阅读”任务中给定的故事,并将故事的各个部分分别存储在记忆模块的不同区域,根据给定的问题,选中合适记忆来完成对问题的回答。

图 2.1 bAbI 20 Tasks

记忆网络的结构如图 2.2 所示,其中包含四个核心模块,分别为 I、G、O、R。

I 为输入模块。包括对输入的预处理(如句法解析、共指消解等使输入更佳规范的处理)和特征表示(一种在连续空间上的映射)。

G 为更新模块。用于更新记忆模块(Memory Slots),其功能包括 slot 的选择、记忆分组、记忆更新和遗忘。

O 为输出模块。用于对已存在记忆 slots 选择性调用,并根据当前的请求推理得到响应特征表示的模块。

R 为响应模块。用于“组织语言”把 O 得到的响应特征表示表达出来。

图 2.2 记忆网络结构

运行时,G 会根据输入即使更新 Memory 中存储的内容,随后经过 O 的多层推理,精准的为问题找到答案。

Jason Weston 等人的记忆网络结构只是提出了一种基于长期的结构化记忆和推理的机制,其中的 I/G/O/R 可以为任何的模型,并没有给出构造这些模型效果最优方法。基于记忆网络的思想,很多的“外挂”存储结构的神经网络结构和机制被提出,其思想可以分为两种,一种以 Multiple-hops 为核心的 End-to-End 的机制;另一种则是利用了现有的 RNN 的记忆功能,来实现对“记忆”模块的更新和查询。

2015 年,Sainbayar Sukhbaatar 等人提出了一种 Multiple-hops 记忆网络 2,其结构如图 2.3 所示,它将记忆网络的 I/G/O/R 融合在了一起组成了一个端到端(End-to-End)的网络。该结构中的每一层采用了两个不同的 Embedding 矩阵来表示 Memory 中的 slots,如图 3(a)所示,其中蓝色的 Embedding 起到了 Attention 的作用,生成了每个 slots 上面的概率分布,黄色的 Embedding 用于输入对 Memory slots 的选择,最后通过 Softmax 实现通过所选中的“记忆”对给定问题的答案预测功能。参考 RNN 的机制,将多个这样的结构串联起来,并保持每层的 Embedding 是不同的,就构成了 Multiple-hops 的端到端记忆网络。这种结构的优势在于能够充分的实现 Memory 的特征表示,使得记忆网络更佳容易通过 BP(反向传播)训练。该方案(Hop3)通过了 bAbI 20 项任务中的 14 项(accuracy>95% 记为通过测试)。

图 2.3 End-to-End Memory Networks

另一种思想是利用 RNN 的循环机制和门结构,实现对“记忆”模块的控制。在 RNN 基础上改进的方案较多,例如 2015 年 Armand Joulin 等人提出的 Stack-Augmented RNN3,文中使用外挂的栈式的记忆模块帮助 RNN 实现更稳定的长期记忆。2016 年 Ankit Kumar 等人利用 Attention+RNN 组成的动态记忆网络(DMN)实现对 Memory slots 的更新和使用 4,改方案通过了 bAbI 任务中的 18 项(accuracy>95% 记为通过测试)。

到目前唯一一个通过全部的 bAbI 20 项测试是 2017 年 Jason Weston、Yann LeCun 等人提出的 EntNet5,与 Ankit Kumar 等人的思想类似,文中利用了 RNN 实现了动态的记忆模块,即将 RNN 部分用于对不同实体的记忆存储,不同之处在于,该方案调整了 RNN 中的门结构,以实现通过对“事件”的充分的观察、记忆和推理来不断地改变智能体对“世界状态”(文中叫法)的认知和预测。

EntNet 的结构如图 2.4 所示,其结构的目的是实现对概念或实体的多层关系的记忆。如,当我们看到“小明打开了家里的门,走进了自己的卧室”,智能体就知道了小明当前的位置,如果同时得知“小明一直背着书包”,则智能体就知道了书包的位置。并且,随着智能体对“文档”的阅读,其记忆也在不断的更新。通过这种学习方式,智能体能够获得一些常识性的信息。如,当一个人走进了屋子,它会知道屋子里的人数增加了;它可能还会知道老虎和羊不能够放在一个笼子里等。

图 2.4 Tacking the World State with Recurrent Entity Networks

EntNet 模型包括三个部分,Input Encoder、Dynamic Memory 以及 Output Layer,三个结构分别如图 2.5 所示。图(a)为输入层,其中 xt 为 story 的输入,经过 embedding 后,乘以 mask f,得到当前的 story 编码 st。图(b)为动态记忆层,该层的结构与 LSTM Cell 的结构相似,包含 gate、update 和 forget 三个部分,动态记忆层为 key-value 的结构,w 表示 key,表示实体词,h 为 value,表示对该实体相关内容的记忆,实际操作时,动态记忆会根据实体的数量将记忆分片,每一个实体(w)对应一个记忆(h)。图(c)为输出层,为利用训练好的动态记忆网络

(a)Input Encoder

(b)Dynamic Memory

(c)Output Layer

图 2.5 EntNet 结构

对所给问题生成合适的答案,其中 q 表示输入问题的嵌入表示,h 为对应不同实体的记忆特征向量,图(c)所示的操作构成了一个 one-hop 结构,与图 2.3 中左侧的思路类似,输出层分为两个部分,首先 h 会根据输入的问题 q 生成一个在动态记忆上的分布 p,然后根据这个分布生成最后的答案。

关系网络

对于知识的存储,除了直接存储文本外,通常会半自动地提取文本中的实体或概念,将其间的关系结构化地存储为三元组的表达方式,也就是知识图谱。通过构造一些规则,可以实现一些复杂的推理过程。但是使用知识图谱构造和维护的成本是巨大的,况且知识图谱无法穷尽所有的逻辑关系。为了解决这一问题,DeepMind 于 2017 年 7 月发表了关系网络(Relation Networks)的文章 6,用来发现实体(Entity)或概念(concept)之间的相互关系,并用之来解决逻辑推理的问题。这一问题称为关系推理(Relational Reasoning),用来解决这类问题的模型称为关系网络(Relation Networks,RNs)。

关系网络将由 CNN 或 LSTM 所提取的非结构化的特征统一视为“对象”(object),将这些对象进行“排列组合”,通过 RN 分辨出哪些对象时当前任务下最需要的,并利用选中的对象,为给定的问题提供答案。对于图像来说,其 object 代表图片中的像素结构,对于文本来说,object 指代的是“资料”中的一句话,或者实体词。这种设计方式使得 RN 具有“即插即用”的功能。

RN 的测试场景可以设置在 CLEVR(VQA)和 bAbI(Reasoning)上。如图 3.1 所示,为关系网络应用在 VQA 场景下的网络结构,与 bAbI 相似,在 VQA 任务中给定一张图片,以及根据图片的内容提出的一个问题,要求智能体给出这个问题的答案。这里使用 CNN 提取图片中不同位置的像素结构特征,使用 LSTM 的最后一次隐藏层输出用作问题的特征表示,进入 RN 结构。RN 包括 -MLP 网络和 -MLP 网络,其中和分别为两个网络中的参数,以下简称为 g 网络和 f 网络。经过 CNN 和 LSTM 提取的特征进行排列组合后传入 g 网络,g 网络负责筛选以上的组合中哪些组合是与问题中的内容相匹配的,并将这些组合重新编码,编码后传入 f 网络,f 网络根据 g 筛选出来的信息生成与问题对应的答案。

图 3.1 关系网络处理 VQA 的网络结构

RN 在 bAbI 任务中也有相当不错的表现,RN 对 story 的编码方案实际上是把 story 中的每个句子作为一个 object,并用 LSTM 对 story 中的每个句子分别编码,编码后与问题的编码排列组合后进入 RN。经测试,RN 能够处理 18/20 的 bAbI 任务。如果说记忆网络强调的是对“常识”的高效存储和提取,那么关系网络强调的则是对“常识”内容的准确解析,进而提取其中“对象”的关系。

展望

随着人工智能的应用日益增加,其不足也越来越多地暴露给用户和开发者,让 AI 具备记忆和推理的能力是 AI 领域的全新的方向,同时也伴随着巨大的挑战。记忆网络和关系网络的出现只是个开始,对于实际场景中的推理过程要比 bAbI 和 VQA 测试数据中的情况复杂许多,未来还会有怎样的精妙结构被设计出来,让我们共同期待吧!

作者简介

周维,菱歌科技高级算法工程师,致力于社交网络数据挖掘和自然语言处理。负责社交媒体推荐、文本分类和文本挖掘等业务。此前从事过智能聊天机器人的研发,对深度学习和文本挖掘有着较为全面且独到的认识。

 参考文献
  1. Weston, J., Chopra, S., & Bordes, A. (2014). Memory networks. arXiv preprint arXiv:1410.3916.

  2. Sukhbaatar, S., Weston, J., & Fergus, R. (2015). End-to-end memory networks. Paper presented at the Advances in neural information processing systems.

  3. Joulin, A., & Mikolov, T. (2015). Inferring algorithmic patterns with stack-augmented recurrent nets. Paper presented at the Advances in neural information processing systems.

  4. Kumar, A. (2016-05-05). Ask Me Anything: Dynamic Memory Networks for Natural Language Processing.

  5. Mikael Henaff1, Jason Weston1, Arthur Szlam1, Antoine Bordes1 and Yann LeCun1,2. (2017). TRACKING THE WORLD STATE WITH RECURRENT ENTITY NETWORKS. ICLR.

  6. Santoro, A. (2017). A simple neural network module for relational reasoning.


AI 前线微信社群
 入群方法

关注 AI 前线公众账号(直接识别下图二维码),点击自动回复中的链接,按照提示进行就可以啦!还可以在公众号主页点击下方菜单“加入社群”获得入群方法~AI 前线,期待你的加入!



活动推荐

更多关于精彩技术专题请关注 QCon 全球软件开发大会,QCon 上海站 9 折优惠报名最后一周,2017 年 09 月 17 日前,立减 680 元,团购报名更多优惠~点击【阅读原文】跟技术大咖零距离。欲购票或咨询问题可联系购票经理 Hanna ,电话:15110019061,微信:qcon-0410。

如何让自然语言处理更加智能? 2017-09-19
Tagged on: