范德萨发而为
全部博文(392)
分类: 大数据
2016-05-20 17:50:30
(State_of_the_art)
The task of answer sentence selection is designed for the open-domain question answering setting. Given a question and a set of candidate sentences, the task is to choose the correct sentence that contains the exact answer and can sufficiently support the answer choice.
Algorithm | Reference | MAP | MRR |
---|---|---|---|
Punyakanok (2004) | Wang et al. (2007) | 0.419 | 0.494 |
Cui (2005) | Wang et al. (2007) | 0.427 | 0.526 |
Wang (2007) | Wang et al. (2007) | 0.603 | 0.685 |
H&S (2010) | Heilman and Smith (2010) | 0.609 | 0.692 |
W&M (2010) | Wang and Manning (2010) | 0.595 | 0.695 |
Yao (2013) | Yao et al. (2013) | 0.631 | 0.748 |
S&M (2013) | Severyn and Moschitti (2013) | 0.678 | 0.736 |
Shnarch (2013) - Backward | Shnarch (2013) | 0.686 | 0.754 |
Yih (2013) - LCLR | Yih et al. (2013) | 0.709 | 0.770 |
Yu (2014) - TRAIN-ALL bigram+count | Yu et al. (2014) | 0.711 | 0.785 |
W&N (2015) - Three-Layer BLSTM+BM25 | Wang and Nyberg (2015) | 0.713 | 0.791 |
Feng (2015) - Architecture-II | Tan et al. (2015) | 0.711 | 0.800 |
S&M (2015) | Severyn and Moschitti (2015) | 0.746 | 0.808 |
W&I (2015) | Wang and Ittycheriah (2015) | 0.746 | 0.820 |
Tan (2015) - QA-LSTM/CNN+attention | Tan et al. (2015) | 0.728 | 0.832 |
dos Santos (2016) - Attentive Pooling CNN | dos Santos et al. (2016) | 0.753 | 0.851 |
Wang et al. (2016) - Lexical Decomposition and Composition | Wang et al. (2016) | 0.771 | 0.845 |
许多公司都希望开发出有人类水准能够进行自然对话的机器人,并且许多公司都声称使用自然语言处理和深度学习技术来实现。但是随着AI被大肆炒作,很难将事实与虚幻区分开来。
在本系列中,我会介绍用于构建会话代理所用到的一些深度学习技术,首先我将阐述我们目前所处的阶段,哪些可能实现,以及又有哪些,至少在短期内几乎不可能实现。这篇文章将作为一个介绍,我们会在接下来的文章中深入讲解实现细节。
基于检索的模型(更容易)使用一套预定义的响应和一些启发式方法,根据输入和上下文来选择适当响应。启发式方法可以和基于规则表达式匹配一样简单,也可以和组合机器学习分类器一样复杂。这些系统不产生任何新的文本,它们只是从固定的数据集中选择响应。
生成模型(更困难)不依赖于预定义的响应。它们从头开始生成新的响应。生成模型通常基于机器翻译技术,只不过不是将一门语言翻译成另一门语言,而是将一个输入“翻译”成一个输出(响应)。
这两种方法都有一些明显的优点和缺点。由于有一套人工响应,基于检索的方法不会犯语法错误。然而,它们可能无法处理未知情况下的数据,因为没有合适的预定义的响应。出于同样的原因,这些模型不能引用回上下文中实体的信息,比如前面会话中提到的人名。生成模型就“更聪明”了。它们可以引用到输入中的实体,并让你觉得你在与一个人在交谈。然而,这些模型很难训练,很容易犯语法错误(特别是语句比较长的时候),这些模型通常也需要大量的训练数据。
深度学习技术可以同时用于基于检索模型和生成模型,但是研究者似乎往生成模型方面研究。类似于 (Sequence to Sequence )的深度学习架构唯一适用于生成文本,研究人员希望在这一领域取得突破。但是,我们仍处于构建合理工作的生成模型的初级阶段。目前来说生产系统更多的是使用基于检索的模型。
对话越长,越难以自动化。短文本对话(更容易)的目标是创建一个针对一个输入的响应。比如你收到一个用户的提问然后回复一个合适的答案。长对话(更困难)需要转多个弯,而且还要跟上对话的节奏。客户支持对话通常是有很多提问的长对话。
在开域(更困难)中设定了用户可以随时随地通话。不一定要有一个明确的目标或意图。在诸如Twitter和Reddit这样的社交媒体网站上的对话是开域的——它们可以是任何方面的。无限的主题和一定数量关于世界知识的必要性使得创造合理的响应比较困难。
在闭域(更容易)中设定了可能的输入和输出的有限空间,因为系统是为了实现某一特定目标。客户技术支持和购物助手就是闭域的例子。这些系统不需要能够谈论政治,它们只需要尽可能高效地完成它们特定的任务。当然,用户仍然可以在任何地方发起对话,但是系统并不要求能够处理所有的情况——用户也不指望它能这么做。
构建对话代理的时候有一些明显和不那么明显的挑战,其中大部分属于活跃的研究领域。
要产生有意义的响应系统可能需要结合语境和物理环境。在长对话中,人们会记住说了什么以及交换了什么信息。这是语境的一个例子。最常见的方法是将对话 一个向量中,但是在长对话中这么做是具有挑战性的。 和 中的实验都属于这方面。可能还需要加入其它上下文数据,比如日期/时间,地点,或者用户信息。
代理在产生响应时,应当对语义相同的输入产生一致的答案。比如,当你问“你多大了?”和“你年龄多少?”时,你想得到相同的答案。这听起来很简单,但是将这种固定的知识或“个性化”与模型结合还属于研究课题。许多系统学习产生语义似乎合理的响应,但它们没有被训练来产生语义一致的响应。通常这是因为它们在来自于很多不同用户数据上训练而成。 中的模型在明确建模个性化方向迈出了第一步。
评估一个会话代理的理想方法是测试它是否履行了其任务,例如在一个给定的对话中解决客户支持问题。但是这样的标签很难获得,因为这需要人工判断和评估。有时候没有明确定义的目标,比如在开域模型的情况下。机器翻译中常见的指标,比如,基于文本匹配的方法在这里并不合适,因为合理的响应可以包含完全不同的词或短语。事实上,在 中,研究人员发现没有一个常用的指标与人类判断相符。
生成系统的一个常见问题是它们往往会产生适用于许多输入样例的通用响应,比如“那太棒了!”或者“我不知道”。谷歌Smart Reply的早期版本 往往会对任何事情回复“我爱你” 。这可能是这些系统的训练方式导致的,无论是在数据方面还是实际训练的目标/算法上。 。然而,人类通常产生针对特定输入以及带有意图的响应。因为生成系统(尤其是开域系统)并没有被训练有特定意图,所以它们缺少这种多样性。
鉴于目前所有的尖端研究,我们处在哪个阶段以及这些系统实际工作效果如何?让我们再次考虑我们所说的分类。一个基于检索的开域系统很明显不可能实现,因为你不可能指定对于所有情况下足够的响应。一个生成模型的开域系统几乎就是强人工智能(AGI)了,因为它需要处理所有可能出现的情况。这同样遥不可及(但是有大量的研究正在朝这方面努力)。
这就给我们带来了这样一个问题,生成模型和基于检索的方法在闭域中都适用。对话越长,上下文越重要,那么问题也变的越复杂。
在最近的 中,百度首席科学家吴恩达这么说:
如今深度学习大多数的价值是在狭窄领域,你可以从中获取大量数据。而下面这个例子是它做不到的:进行一场有意义的对话。如果你择优挑选对话,你会觉得它看起来有意义,但是如果你自己进行这么一场对话的话,你就会发现不同了。
许多公司将他们的对话外包给其他人,并且承诺一旦他们收集到足够的数据他们可以将对话“自动化”。这只可能在狭窄领域的情况下实现——比如Uber聊天接口。任何开放一点的领域(比如销售电子邮件)都超出了我们的能力范围。但是,我们可以使用这些系统进行提议和修正响应来帮助人类。这就更加可行了。
生产系统中的语法错误代价是非常昂贵的,它可能会造成用户流失。这就是为什么大多数系统还是选择使用基于检索的方法,这样可以避免语法错误和无礼的响应。如果公司能够得到海量的数据,那么生成模型的方式是可行的——但是它们需要 那样使用其他技术来防止偏离主题。
在接下来的文章中,我们将讲述使用深度学习实现基于检索和生成会话模型的技术细节,如果你对一些研究感兴趣,你可以阅读下面这些论文来作为铺垫:
声明:本文转载自
RAM并非Random-Access Memory,而是DL领域时下热门的Reasoning, Attention, Memory。NIPS2015将于12月5日组织一个RAM (Reasoning, Attention, Memory) workshop,组织方则是Facebook AI Research的Jason Weston (Memory Networks作者) ,Reference列表中的文章都挺不错,近日查阅了几篇QA相关的文章及资源整理如下。整理粗糙,望谅解。文章列表从近日最新的工作往前开始追溯:
(如下文章中引用率出自Google scholar-2015/11/02)
[1]. 《Empirical Study on Deep Learning Models for QA》
时间:2015/10/26,单位:US IBM Watson,作者:Yang Yu
数据集:Facebook’s bAbI (问答系统)
动机:深入探究Memory组件和Attention机制在解决QA问题中的应用。虽然之前的文章中有提及很相关的工作神经图灵机(NTM,Neural Turing Machine)和神经机器翻译(NMT,Neural Machine Translation)模型,且很多工作已经采用机器翻译模型解决QA任务,但并没有论文采用NMT和NTM解决QA问题。因而本文在Facebook的人工构造QA数据集上融合并对比了当下热门三种DL方法:Neural Machine Translation,Neural Turing Machine及Memory Networks。
结论:融合Memory组件和Attention机制在解决QA问题上具有巨大潜力。
[2]. 《Ask Me Anything: Dynamic Memory Networks for Natural Language Processing》
时间:2015/06/24,单位:MetaMind-Socher,作者:引用:2
数据集:Facebook’s bAbI (问答系统)、WSJ-PTB (词性标注)、SST (情感分类)
方法:输入序列化文本的向量化表示采用GRU,比LSTM复杂度低。模型全部采用向量化表示而无需字符串匹配及人工特征构造。
贡献:将NLP的大多数问题都看成QA问题,采用统一的NN模型解决问答问题、词性标注和情感分类问题。
[3]. 《Large-scale Simple Question Answering with Memory Networks》
时间:2015/06/05,单位:Facebook AI Research,作者:Antoine Bordes,引用:3
数据集:The SimpleQuestions dataset
方法:结合Freebase和Memory Network
[4]. 《End-To-End Memory Networks》
时间:2015/03/31,单位:NYU&Facebook AI Research,作者:Sainbayar Sukhbaatar,引用:6
数据集:Facebook’s bAbI、Penn TreeBank、Text8
实现: (官方Matlab+lua)
python
动机:类似于《Memory Networks》的工作,采用Recurrent attention model + large external memory,然而本工作采用一种End-to-end模式进行训练,无需知道背景信息中哪些是支撑事实[1]。更适用于实际场景。采用一种神经机器翻译策略的扩展方法。该模型可灵活地解决QA问题(对比Memory Networks)及语言建模问题(对比RNN和LSTM)。
[5]. 《Towards AI-Complete Question Answering: A Set of Prerequisite Toy Tasks》
时间:2015/02/19,单位:Facebook AI Research,作者:Jason Weston,引用:17
数据集:发布Facebook’s bAbI (问答系统) 人工构造数据 v1.2版11.1M,解压后112M
工程: lua
动机:
认为QA系统应该先在人造数据集上取得突破性进展才能比较好的应用于开放域非人造数据集中。当现实数据不够大时,研究方法通常会设计较为复杂的方法并陷入局部收敛问题中,而设计一种人造数据是避免此问题一种比较好的途径。
传统的对话是很难评估的,这是AI的长远问题,而问答系统中对问题的响应是比较容易评估的。
传统的QA方法是基于大规模知识库,并采用人工构造模版及特征。
对之前的MemNNs的一些问题进行改进。
内容:发布的数据包含20类QA任务:
1). 1条相关事实;2). 2条相关事实;3). 3条相关事实;4). 2条主宾关系;5). 3条主宾关系;6). 是否问题;7). 计数问题;8). 清单问题;9). 简单否定;10). 不确定知识;11). 基本指代;12). 联合事件;13). 复合指代;14). 时间处理;15). 基本演绎;16). 基本归纳;17). 空间位置;18). 尺寸大小;19). 寻找路径;20). 行为动机
如上20类人工构造的QA任务比较简单,每个任务只有150 个词、4个执行者、6个位置、3个物体。因而目前仍无法取代真实数据,只能做为一种补充数据。
数据介绍:
数据集有两种,其中一种每个任务有1,000条训练数据,1,000条测试数据,而另外一种则每条任务有10,000条训练/测试,论文中采用前者。同时,数据语言分为英语、北印度语和随机组合词。切勿将数据按照任务类型分开训练模型,AI的目的正是要致力于训练统一的模型应用于多种不同任务。
[6]. 《Neural Turing Machine》
时间:2014/10/20,单位:Google DeepMind,作者:Alex Graves,引用:45
实现:
动机:如同《Memory Networks》所述,传统的RNN方法记忆能力有限,通过外置记忆组件执行一些图灵机基本操作,如Copy和Recall等,意义非凡。
[7]. 《Memory Networks》
时间:2014/10/15-ICLR,单位:Facebook AI Research,作者:Jason Weston,引用:28
数据集:
(Fader et al., 2013) – 14M三元组
构造的问答数据,也就是后来使用bAbI数据的雏版
工程: (Theano)
背景:早期的QA系统是存储很多文档作为M,后期通过构建知识库作为M,而近期更多地采用NN和Embedding方法。
动机:传统RNN的问题是隐层状态和权重太少,而记忆能力比较差。融入long-term Memory如同动态知识库记忆更长内容并进行Reason。
难点:如何对神经记忆组件进行无缝地读和写操作。
方法:记忆组件M,输入特征层I(将输入文本映射成向量化表示),泛化单元G(更新记忆单元M中的陈旧知识),输出层O(根据当前记忆状态M和输入文本I生成输出向量),响应单元R(将输出向量O转化成可交互内容,如文本或动作)。
故事:如文章最后提到,此工作仅仅比DeepMind的神经图灵机(Neural Turing Machine)的工作早一点点在arXiv上发布,两份工作在Memory上的研究较为相近。而Memory Network宣称的不同之处在于1). 自己的工作可以存储14M的句子;2). 实验设置不同,图灵机在模拟计算机的基本操作,如copy和recall,而本工作在于知识推理。不过从引用数上可以看出,神经图灵机问题能引起更广泛的关注度。
[8]. 《Neural Machine Translation by Jointly Learning to Align and Translate》
时间:2014/09/01,单位:不来梅雅各布&蒙特利尔大学,作者:Dzmitry Bahdanau,引用:132
工程:
动机:不同于传统的统计机器翻译系统,神经机器翻译完全采用大规模的神经网络模型。而大多数神经机器翻译方法均采用encoder-decoder模式,将源文本编码成固定长度的向量化表示。问题是随着句子长度增长,基于此模式的翻译性能大幅度恶化。为避免此问题,本方法在encoder-decoder模式中融入一种自动对齐策略。