<>AnyQ

AnyQ(ANswer Your Questions) 开源项目主要包含面向FAQ集合的问答系统框架、文本语义匹配工具SimNet。(检索式回答)

AnyQ系统框架主要由Question
Analysis、Retrieval、Matching、Re-Rank等部分组成,框架中包含的功能均通过插件形式加入,如Analysis中的中文切词,Retrieval中的倒排索引、语义索引,Matching中的Jaccard特征、SimNet语义匹配特征,当前共开放了20+种插件。AnyQ系统的配置化、插件化设计有助于开发者快速构建、快速定制适用于特定业务场景的FAQ问答系统,加速迭代和升级。
AnyQ的框架结构如下图:



https://github.com/baidu/AnyQ <https://github.com/baidu/AnyQ>

<>单轮对话

单轮对话有三种形式:基于分析、基于检索、基于生成。

基于分析是比如一个单轮对话针对一个分类问题,或者是一个结构预测的问题,那么检索就是一个匹配问题,生成就是一个翻译的问题
。这三种不同的方法它背后的区别就是这个有没有显式的语义表达。

* 基于分析的方法它是有显式的内部表达,基于检索和生成,就是部分有或者没有显性的这个内部的表示,这是这三个不同的方法的特点。
* 基于检索的方法在聊天机器人中用的多,而问答系统中也是如此,只是将对话局限在问答中。
*
还有基于生成的方法。在深度学习出来之前,这是有难度的,现在有深度学习基于生成对话的技术,其原理上是把问句,转化成内部表示,再把内部表示为答句。在生成器和分析器中用了大量的训练语料,基于神经网络来训练表示实现。
今日头条AI实验室主任李航:自然语言的现状和发展

<>用户意图领域分类

在人机对话系统的应用过程中,用户可能会有多种意图,相应地会触发人机对话系统中的多个领域(domain)
,其中包括任务型垂直领域(如查询机票、酒店、公交车等)、知识型问答以及闲聊等。因而,人机对话系统的一个关键任务就是正确地将用户的输入分类到相应的领域(domain)中,从而返回正确的回复结果。

SMP2018中文人机对话技术评测(ECDT)

<>阿里小蜜算法体系



意图识别
:识别语言的真实意图,将意图进行分类并进行意图属性抽取。意图决定了后续的领域识别流程,因此意图层是一个结合上下文数据模型与领域数据模型不断对意图进行明确和推理的过程,完成意图的补全、意图分类和意图转移工作。整个意图识别按照模型可组合以及进行单独的算法选型

通过对话管理系统的控制,面向不同的领域场景采用不同的领域技术:

* QA Bot:通过知识图谱、传统IR以及DeepMatch的方法完成知识问答的匹配
* Task Bot:面向多领域技术完成任务型对话构建与问答
* Chat Bot:完成闲聊机器人的问答
* Rec Bot:完成推荐机器人的问答体系构建
* MC Bot:在文档无法结构化的场景下(例如淘宝或者商家的活动场景),通过Machine Reading的方法来完成问答
阿里小蜜这一年,经历了哪些技术变迁?

<>机器阅读理解及问答技术

脱离人工提炼知识的过程,直接让机器在非结构化文本内容中进行阅读理解,并回答用户的问题,是一个里程碑式的进步。

<>基于知识库自动构建的机器阅读

用传统的自然语言处理方式完成基于机器阅读理解的问答,一般需要先在文本中进行实体和属性的解析,构建出结构化的知识图谱,并在知识图谱基础上进行问答。
主要涉及以下几个过程:

* 实体检测:识别文本中提及的实体,对实体进行分类。
* 实体链接:将检测出来的实体与知识库中现有实体进行匹配和链接。
* 属性填充:从文档中检测实体的各类预先定义好的属性,补充到知识库中。
* 知识检索:在知识库中根据实体和属性找到最相关的答案作为回答。

显然,用传统的知识库构建方式来进行机器阅读,虽然其可控性和可解释性较好,但领域垂直特点较强,难以适应多变的领域场景,且技术上需要分别解决多个传统NLP中的难点,如命名实体识别、指代消解、新词发现、同义词归一等,而每个环节都可能引入误差,使得整体误差逐渐扩大。

<>基于End-to-end的机器阅读

Facebook的bAbI推理型问答数据集
Microsoft的MCTest选择题数据集
Facebook的CBT完形填空数据集
讯飞和哈工大的中文完形填空数据集

Stanford的SQuAD可变长答案数据集

* Match-LSTM with Answer Pointer模型是较早登上SQuAD LeaderBoard的模型,作者提出了融合
match-lstm 和 pointer-network 的机器阅读框架,后续也被多篇相关工作所借鉴。其中的Boundary
Model由于只预测答案开始和结束位置,极大地缩小了搜索答案的空间,使得整个预测过程得到了简化。


模型主要包括三部分:

* 用LSTM分别对question和passage进行encoding;
*
用match-LSTM对question和passage进行match。这里将question当做premise,将passage当做hypothesis,用标准的word-by-word
attention得到attention向量,然后对question的隐层输出进行加权,并将其跟passage的隐层输出进行拼接,得到一个新的向量,然后输入到LSTM;
* 利用pointer net从passage中选择tokens作为答案。包括Sequence Model和Boundary
Model。其中Sequence
Model是在passage中选择不连续的word作为answer;BoundaryModel只需要passage的起始位置和中止位置得到连续的words作为answer。
* BiDAF模型
最大的特点是在interaction层引入了双向注意力机制,计算Query2Context和Context2Query两种注意力,并基于注意力计算query-aware的原文表示。


* Character Embedding Layer使用char-CNN将word映射到固定维度的向量空间;
* Word Embedding Layer使用(pre-trained)word embedding将word映射到固定维度的向量空间;
* Contextual Embedding Layer将上面的到的两个word vector拼接,然后输入LSTM中进行context
embedding;
* Attention Flow Layer将passage embedding和question
embedding结合,使用Context-to-query Attention
和Query-to-contextAttention得到word-by-word attention;
* Modeling Layer将上一层的输出作为bi-directional RNN的输入,得到Modeling结果M;
* Output Layer使用M分类得到passage的起始位置,然后使用M输入bi-directional
LSTM得到M2,再使用M2分类得到passage的中止位置作为answer。
* FastQAExt最大的特点在于其较为轻量级的网络结构,在输入的embedding层加入了两个简单的统计特征:
* 文章中的词是否出现在问题中,是一个binary特征。
* 基于“问题中的词如果在原文中很少出现,则对问题的回答影响更大”的原理,设计了一个weighted特征。


2个统计特征的引入相当于给模型提前提供了先验知识,这将加快模型的收敛速度,整体上,FastQAExt由以下三个部分组成:

* Embedding层:word 和char 两种embedding,且拼接上述的2种统计特征作为输入向量。
* Encoding层:汇总原文和问题的总表示。
* Answer层:计算问题对总表示,将query-aware原文表示和问题总表示共同输入两个前馈网络产生答案开始和结束位置概率。
* r-net是目前在SQuAD LeaderBoard上排名领先的模型,r-net的特点是使用了双interaction层架构。


* Encoding层:使用word和char两种Embedding作为输入。
* Question-Passage Matching层:负责捕捉原文和问题之间的交互信息。
* Passage Self-Matching层:负责捕捉原文内部各词之间的交互信息。
* Answer层:借鉴了match-lstm及pointer
network的思路来预测答案的开始和结束位置,并在问题表示上用attention-pooling来生成pointer network的初始状态。
Rajpurkar et al. 2016. SQuAD: 100,000+ Questions for Machine Comprehensionof
Text
Wang et al. 2016. Machine Comprehension Using Match-LSTM and Answer Pointer
Seo et al. 2016. Bidirectional Attention Flow for Machine Comprehension
Weissenborn et al. 2017. Making Neural QA as Simple as Possible but notSimpler
Wang et al. 2017. Gated Self-Matching Networks for Reading Comprehensionand
Question Answering

深度学习要多深,才能读懂人话?|阿里小蜜前沿探索