智能机器人chatbot论文集合

机器不学习 jqbxx.com-专注机器学习,深度学习,自然语言处理,大数据,个性化推荐,搜索算法,知识图谱

今年开始接触chatbot,跟着各种专栏学习了一段时间,也读了一些论文,在这里汇总一下。感觉是存在一些内在的趋势的。只是要找到一个当下切实可行又省时省力的方案好像不太容易。

论文摘要

《Information Extraction over Structured Data: Question Answering with Freebase》

本文利用查询KB替代查询数据库,可以更好的理解问题,找到对应的答案,尤其的对于查询类的问题。通过预设的问题词,对问句进行解析,并抛弃子节点词,得到依赖树,根据依赖树查找KB。

基于知识库的问答系统,有两个处理点:对问题的解析,辨别出实体,以及包含的关系;对KB的查询。其中难点在于建立问句和知识库关系的映射模型,尤其是对于open domain的问答,不能依赖与手动标注实现。问题解析有两种手段,从语义分析出发,利用句法分析,词性标注等,“理解”问句,获得实体以及实体之间的关系,但是不得不建立大量词典,然后对问句的语义进行计算求解,以期最后可以获得一个满意的答案;另一种是信息提取,不分析具体的句法,而是对句子中出现的词(实体)进行分析求解,复杂点在于利用贝叶斯等分类器对问句进行分类找出要求解的答案节点。需要大量的训练数据

《Question Answering with Subgraph Embeddings》

本文跳出传统语义分析的范畴,从构造低维向量空间的角度进行问题求解,基于词向量的启发,将问句和答句根据每个词的向量计算得出句子对应的向量,应该存在一个函数可以使得问题答案对q,a的匹配值达到最大:S(q,a)

分两步进行问答求解:

1、使用大量样本数据训练模型,确定S(q,a)

2、根据问句中的实体,获取实体相关的subgraph,并组装出候选答案,求argmax S(问句,候选答案)

训练模型上可以使用神经网络训练,该方法的前提是答案向量与问题向量经过某种映射以后,在一个多维空间内是十分靠近的

《Question Answering over Freebase with Multi-Column Convolutional Neural Networks》

本文应用卷积神经网络生成问题向量q,如上图所示,使用卷积神经网络的多层代表问题的不同信息,并与答案集合求解,最终的得出问题答案的匹配值。

《Semantic Parsing via Staged Query Graph Generation:Question Answering with Knowledge Base》

1.考虑到传统语义解析与KB结合不够紧密,作者提出了查询图的概念

2.查询图的构造由实体链接系统确定主题词,核心推导链,增加约束和聚合这几种操作构成

3.对于查询图的每一个状态,我们都用一个奖励函数对它进行评价,使用优先队列进行启发式搜索构建查询图

4.通过查询图的实体链接得分、核心推导链三个特征、约束聚合手工特征以及全局特征作为输入向量,训练单层神经网络作为排名器得到奖励函数

5.核心推导链使用卷积神经网络(letter-trigram作为输入)进行训练,并且ensemble了三个不同数据训练的模型

(以上内容为摘抄)本文基本思想是结合了传统语义分析和神经网络的方法,语义分析为主导,在获取相应答案pattern的步骤中使用CNN选定推导链,并使用诸如限定词、约束聚合对答案进行规范,获得了比较显著的成果。

《DYNAMIC COATTENTION NETWORKS FOR QUESTION ANSWERING》

这篇文章使用了注意力机制,在斯坦福的问答测试集上取得了80.1%的好成绩(人工准确率86%)。不过因为斯坦福数据集提供了问题和答案的候选段落,与要做的知识库貌似没有很好的连接。论文方法主要有两点,一是将问题和答案段落配对,经过向量变换以后,通过注意力机制对答案和问题都配置权重,根据权重和问题答案的向量计算结果,输入LSTM网络得出最佳答案段落。另一个是在LSTM中使用提出的HMN方法从段落中选取答案字段,予以输出。论文所提方法可以作为参考,主要问题在于训练样本并不具有通用性,答案一定要在候选答案中存在才可以,如果可以替换为知识网络并准确选取就更好了。

这里插一个内容,记忆网络框架(摘抄):

输入模块I(Input):将外部输入转化为内部表达。我们可以把输入模块想象成人类的感知器官,接受外部的原始输入并将其转化为能够被大脑处理的生物信号。具体来说,输入模块用于将外部的输入(如自然语言句子、图片等)转化为内在的分布式表达。输入模块可以根据应用的需要选用不同的模型,诸如CNN、LSTM、bag-of-words等等。

记忆模块M(Memory):用于存储记忆。每一条记忆都是一个分布式表达向量,每一个记忆有一个索引地址号,所有记忆组成了我们的记忆模块。我们的记忆模块就像是计算机中的硬盘一样,存储着一条条的信息,每一个信息都有一个物理地址。我们可以记忆模块进行记忆的读取,修改,删除,也可以插入新的记忆信息。

泛化模块G(Generalization):根据外部输入的内在表达去更新记忆。我们可以根据新的输入对记忆模块中的每一个记忆都进行更新并增加新的记忆,也可以仅对部分相关记忆作针对性更新。最简单的方式是,直接将输入存储在记忆模块中而不对其他的记忆进行修改,即。这里是一个为输入选择记忆槽(为输入确定记忆的索引地址)的函数,在记忆存储满的时候,也可根据函数对记忆进行替换。更复杂一点,我们也可以引入一些遗忘机制等等。

输出模块O(Output):根据外部输入的内在表达去选择记忆模块中与之最相关的记忆。该记忆也称为支撑记忆(Support Memory),即。这个选择的方式有很多,最简单的方法就是将和记忆向量投影到同一个向量空间中,通过比较相似度得分(cosine,点乘等)来选择最相似度得分最高的记忆作为输出。当然我们也可以根据应用的需要,选择多个记忆作为输出。选择多个记忆的方式也有很多种,最简单的方法就是选择相似度得分最高的k个记忆作为输出,论文中作者提出了另一种方法,先选择得分最高的作为第一个输出,再选择与得分加上与得分 最高的记忆作为第二个输出,以此类推(这种方法更像是在进行推理,先将输入作为推理的支点,选择与输入最相关的记忆作为第一条线索,再根据输入和第一条线索去确定下一条线索)。

回答模块R(Response):根据输入的内在表达和输出模块提供的记忆,输出满足应用需要格式的结果。它就相当于encoder-decoder模型中的decoder部分,将和作为输入,根据应用的需要使用不同的模型输出最终的结果(分类器、语言模型、RNN、CNN等)。

《End-To-End Memory Networks》

论文提出了一种带有注意力的改进的memery network,然而只是提出了一种思想,从实验结果看,并没有提高业内的state of art。提出的思想比较适合KB_QA,并没有神经网络中的那么多结构,只有两部分组成:记忆部分和RNN神经网络。先将知识进行向量化存入memory中,这些知识可以来自于一段话,也可以是一段对话,然后将问题和对应知识进行计算,并加入注意力权重,结果通过softmax函数进行排序,得到隐层输出,再将T2时间的输出和T1时间的输出进行相加输入RNN的下一个环节中,以此循环计算,最后通过矩阵W变化得出真正的输出。直观的理解可以是对问题答案组合进行多次注意力解析,并且在每次解析期间都从记忆库中读取知识加入其中。

《A Knowledge-Grounded Neural Conversation Model》

论文提出了一种将seq2seq模型与事实相结合的方法,先使用seq2seq中的encoder计算出问句以及对话历史S(没有使用LSTM,而是使用了GNU,好像业内都喜欢用GNU),然后将事实通过关键词检索或者命令词提取技术,获取出相关的事实f1,f2......然后通过计算S和f1的结合概率,输入decoder中,输出对应回答,理论上可以计算出跟概率最大事实相关的回应。 论文进行了两种模型的训练,一种不带事实的模型训练,一种带有事实模型的训练;奇妙的是,确定最终模型以后,可以通过修改事实库,以达到动态扩展模型的作用。想法比较新颖,但是回应的准确率相比于seq2seq并没有显著的提升,事实相关性有所提升。若要应用与我们自己的系统,可以再思考思考如何将问句和知识结合起来。 还有一个思想是:通过大量的微博(twitter)语料获取回答句式,然后通过事实获取回答信息,这一点比较好。有了构建生成式机器人的可能。

《Sequence to Backward and Forward Sequences: A Content-IntroducingApproach to Generative Short-Text Conversation》

一种根据问题和语料库,预测答案关键词的方法,使用了朴素贝叶斯模型,预测一个关键名词

《Deep Reinforcement Learning for Dialogue Generation》

本篇论文提出了使用RL来指导SEQ2SEQ模型的输出,以防止输出的无信息性和重复,不连贯。主要思想可以说是利用seq2seq的pre-train作为reward函数,对候选答案进行重新奖励排列,得出更好的结果。其中生成r2的时候又使用了一种RL模型来确定后验概率,从而指导奖励函数的生成。可以说这是一种将增强学习与SEQ2SEQ相结合的思路,具体代码地址:

https://github.com/jiweil/Neural-Dialogue-Generation

https://github.com/Marsan-Ma/tf_chatbot_seq2seq_antilm

《Personalizing a Dialogue System with TransferReinforcement Learning》

从该图中,可以看出给予POMDP的强化学习聊天系统是基于状态机的一种策略学习,首先系统中有很多基本状态,根据回答或者制定的策略选择状态迁移,从而推导进行对话。

本文是对基于POMDP对话框架的一种扩展,以前都是基于通用知识进行训练,缺乏提供个性化的服务。本文通过将通用知识训练的模型迁移到个性数据上训练,得出具有个性服务的对话系统。从实验例子看,有效减少了互动对话的轮数,比一般任务型对话有更好的效果。算法上使用M;w;wp作为共享变量,从通用数据训练得出,pu根据少量具体用户数据训练得出,最后带入公式中求出整体的Q_learning函数。Wp应该是根据数据得出的具体用户的Q函数参数,相对于通用知识的W,只是文中没有给出。所以这个系统主要还是针对有记录的用户存在的个性化策略。

《Latent Intention Dialogue Models》

文章运用双向LSTM和RNN,CNN对对话历史进行处理,计算得出对话的潜在意图,根据搜索KB取出知识,利用增强学习策略生成回复内容,并使用生成模块最终生成回复,涉及较多内容,从实验结果看比较理想,在任务驱动型对话中有显著效果。

《End-to-End Task-Completion Neural Dialogue Systems》

《A User Simulator for Task-Completion Dialogues》

https://github.com/MiuLab/TC-Bot

与《End-to-End Task-Completion Neural Dialogue Systems》叙述的是相同的内容,源程序相同,这篇更偏向于代码实现。代码提供了一个simulator user框架,定义好任务相关的几个状态以后,根据状态进行模拟对话,用于强化学习训练。通过NLU理解输入语句,转化为槽位表示的形式,进行策略学习,输出槽位显示的系统回复,然后通过NLG生成回答。这里面 NLU和NLG都可以使用深度学习的方法,策略学习本文中使用的是强化学习。这样的好处是可以避免编写规则,根据定义的状态和模拟策略定制化对话系统,完成既定任务。缺点是功能可能单一,不具备易于扩展功能的条件。但是相比于广域seq2seq的训练,似乎更接近于可实现,效果可控。

《End-to-End Memory Networks with Knowledge Carryover for Multi-Turn Spoken Language Understanding》

(code:https://github.com/yvchen/ContextualSLU.git) 论文中部分内容摘抄:

A key component of the understanding system is an spoken language understanding (SLU) module-it parses user utterances into semantic frames that capture the core meaning, where three main tasks of SLU are domain classification, intent determination, and slot filling

Then slot filling is framed as a sequence tagging task, where the IOB (in-out- begin) format is applied for representing slot tags as illustrated in Figure 1, and hidden Markov models (HMM) or conditional random fields (CRF) have been employed for tagging [6, 7, 8].

To the best of our knowledge, this is the first attempt of employing an end-to-end neural network model to model long-term knowl- edge carryover for multi-turn SLU.

本文提出了一种将RNN和记忆网络应用于SLU模块的方法,专注于传统diag system中的意图理解和序列标注,如图所示,将历史对话作为记忆通过RNN和输入对话进行计算,并引入注意力机制得出encoding表示,作为知识o,然后使用知识o通过RNN tagger输出intent和slot信息,注意intent和slot应该是作为输出y一起处理的,形式相似于:query_slot:{name,age}, info_slot:{gentel:male,address:***}.

《SeqGAN: Sequence Generative Adversarial Nets with Policy Gradient》

将GAN与RL相结合,在数学上有严格的推理,确实也获得了很好的结果,不过技术还不成熟,从思路上来讲是很有前途的思想。可以作为是RL在对话上应用的发展,有可能达到新的高度。继续保持关注。

更多精彩内容,机器不学习官方网站 jqbxx.com

原文地址:https://www.cnblogs.com/shendujuhe/p/8400437.html

时间: 2024-08-29 22:02:49

智能机器人chatbot论文集合的相关文章

数据挖掘方面重要会议的最佳paper集合

数据挖掘方面重要会议的最佳paper集合,后续将陆续分析一下内容: 主要有KDD.SIGMOD.VLDB.ICML.SIGIR KDD (Data Mining) 2013 Simple and Deterministic Matrix Sketching Edo Liberty, Yahoo! Research 2012 Searching and Mining Trillions of Time Series Subsequences under Dynamic Time Warping T

自然语言处理一些读书笔记和自己的思考。

在知乎上搜索相关问题,有人推荐<数学之美>,之前粗略看过一次,这次想重新看一下并且做个读书笔记.下面是关于自然语言理解方面的一些读书笔记和自己的思考. 一. 自然语言处理历史: 自然语言处理最初发展的20多年里,相关科学家都极力通过电脑模拟人脑,试图用这种方式来处理人类语言,但是这种方式被证明是行不通的,成功几乎为零.NLP发展的第二阶段是70年代之后,科学家们终于找到了基于数学模型和统计的方法. 第一阶段的时候,学术界对人工智能和自然语言理解的普遍认识是:要让机器完成翻译或者语音识别等等,必

城市化与中国经济增长——兼谈李克强经济思想

现任中共中央常委,国务院总理李克强是经济学家厉以宁先生的高足,拥有北京大学经济学博士学位.研究生期间,我的研究课题是关注中国城市化方面的金融策略研究,期间也不可避免的涉略了大量这部分的著述.期间,李克强总理的经济理论令我尤为印象深刻.尽管我们都知道李总理是经济学博士,但是一来很多人对他的学术思想不甚了解.另一方面,在很多人看来领导干部去混个文凭在中国时下的并不十分纯净的学术环境里难免有沽名钓誉之嫌.而且大部分官员的学历学位都是"盛名之下,其实难副".然而,进过仔细的研究,不禁令人感叹李

初学者如何查阅自然语言处理(NLP)领域学术资料

原文地址 http://blog.sina.com.cn/s/blog_574a437f01019poo.html 昨天实验室一位刚进组的同学发邮件来问我如何查找学术论文,这让我想起自己刚读研究生时茫然四顾的情形:看着学长们高谈阔论领域动态,却不知如何入门.经过研究生几年的耳濡目染,现在终于能自信地知道去哪儿了解最新科研动态了.我想这可能是初学者们共通的困惑,与其只告诉一个人知道,不如将这些Folk Knowledge写下来,来减少更多人的麻烦吧.当然,这个总结不过是一家之谈,只盼有人能从中获得

深度学习帮你“认”人—人脸模型 by wilson

一.前言: 在6月底来到鹅厂实习,在这一个多月的时间内,主要将我之前研究的目标跟踪和人脸模型结合起来,完成一些人脸跟踪的应用.其中将之前研究的单目标跟踪(SOT, single object tracking)拓展到多目标跟踪(MOT, multi object tracking),针对人脸的应用引入人脸模型,形成针对人脸的多目标跟踪. 在这里还是学习到不少东西的:面向业务应用的算法开发:关注预研的过程:跨任务地思考:把控时间点. 整体和在实验室的感觉是差不多的,但是要比在实验室严肃一些,需要在

[转]计算机视觉、机器学习相关领域论文和源代码大集合

计算机视觉.机器学习相关领域论文和源代码大集合--持续更新…… [email protected] http://blog.csdn.net/zouxy09 注:下面有project网站的大部分都有paper和相应的code.Code一般是C/C++或者Matlab代码. 最近一次更新:2013-3-17 一.特征提取Feature Extraction: ·         SIFT [1] [Demo program][SIFT Library] [VLFeat] ·         PCA

计算机视觉、机器学习相关领域论文和源代码大集合[转]

注:下面有project网站的大部分都有paper和相应的code.Code一般是C/C++或者Matlab代码. 最近一次更新:2013-3-17 一.特征提取Feature Extraction: ·         SIFT [1] [Demo program][SIFT Library] [VLFeat] ·         PCA-SIFT [2] [Project] ·         Affine-SIFT [3] [Project] ·         SURF [4] [Ope

[转载][资料].计算机视觉、机器学习相关领域论文和源代码大集合

注:下面有project网站的大部分都有paper和相应的code.Code一般是C/C++或者Matlab代码. 最近一次更新:2013-3-17 目录(注:未添加索引,仅用于方便浏览) 一.特征提取Feature Extraction 二.图像分割Image Segmentation 三.目标检测Object Detection 四.显著性检测Saliency Detection 五.图像分类.聚类Image Classification, Clustering 六.抠图Image Matt

计算机视觉、机器学习相关领域论文和源代码小集合

一.特征提取Feature Extraction: ·         SIFT [1] [Demo program][SIFT Library] [VLFeat] ·         PCA-SIFT [2] [Project] ·         Affine-SIFT [3] [Project] ·         SURF [4] [OpenSURF] [Matlab Wrapper] ·         Affine Covariant Features [5] [Oxford pro