聊天机器人在对话中的知识提取

目 录
1.引言 1
2.相关工作 2
3.知识提取过程 3
1.1研究方法 3
1.2答案聚类 5
4.构建一个神经会话代理 7
4.1模型 7
4.2数据集 7
4.3模型评估 9
5.模型改进的个人想法 9
5.总结和展望 10

【摘要】聊天机器人的知识获取是设计一个聊天机器人的重要一环。
然而,这一环是非常困难的,需要花费太多的时间代价。为了克服这个困难,在Imagineering Institute, Iskandar Puteri, Johor, Malaysia的文章中,他们提出了一个方法,可以从聊天机器人中自动提取知识。提取到的知识,可以当作数据集训练神经网络。本文中提到的实验,证实了他们提出的方法确实可以使用任意聊天机器人从对话中获取知识。本文中的实验有两个部分,在第一部分,他们详述了从对话中提取知识的方法;在第二部分,他们介绍了一种基于深度学习框架设计的聊天机器人。他们提出的方法中最创新的点在于机器-机器交互,以达到自动的知识分享和重利用。这是避开复杂的人工知识获取,得到一个新聊天机器人的重要一步。本文手动逐字句翻译了他们的论文,并加上了本人的理解。
【关键词】
人机交互:知识提取:聊天机器人:神经网络:特殊系统下的聊天机器人:自然语言处理

1.引言
聊天机器人(chatbot)是一个允许人机自然语言对话的程序。人机交互中,每一次交互都伴随着二者对于对话的反应。现在有两种人机交互机器人模型,第一种是基于设定规则的交互模型,也叫做Retriveal 模型。Retriveal 模型只是用了提前设定好的模板,根据得到的文本输入选择反应。Retriveal模型不会产生新的反应,只是根据规则选取合适的反应。Retriveal 模型包含了很多模板来匹配输入,然后根据模型生成输出语句。这里,机器人的知识,是人类程序员编好的。这种模型非常的耗时间,非常的消耗精力。而且这种模型普适性还很低,因为人类语言的多元化。
第二种聊天机器人模型使用了深度学习技术。深度学习是机器学习的一种。深度学习中从数据中学习,例如图像、语音、或文本。深度学习一般会用到人工神经网络,人工神经网络受到生物神经网络的启发,是一种仿生物的电子系统。这种模型不依赖于提前设定好的答案,不是从一些模板中根据输入得到输出,而是通过训练好的模型,推导产生新的反应。
网上已经有很多很多基于设定规则的聊天机器人。数量很多,所以它们是巨大的知识资源。如果这些基于规则的(聊天机器人)chatbot得到的知识可以被整理好,然后通过会话的模式展现,那么主要的工作动机就变成了探索“是否又可能获取网上所有机器人得到的知识,并且利用这些知识来创建一个新的交互代理(neural Conversational_Agent,NCA,可理解为聊天机器人 )”
在Imagineering Institute, Iskandar Puteri, Johor, Malaysia的文章中,他们提出了一个利用机器人提取知识的创新理论,这个理论会利用一个基于规则的chatbot(RBC)来验证。他们的实验包含两个大的部分。第一部分,将展现他们的知识提取模型,以及利用RBC来提取知识。第二部分,他们利用从第一部分得到的知识作为训练数据,创造一个NCA。分析得到的知识,并且比对传统模型个他们的新得到的RBC。
他们的研究的主要贡献在于证实了自动知识提取以及从机器人得到的知识的可行性。实际上这种方法会避开在编写聊天机器人时复杂的知识采集过程。理论上,基于这项研究,每个网络上的聊天机器人都可以自动提取知识。本文余下的部分结构如下:相关工作介绍在第2,第3部分,主要是知识提取部分。第4部分讲了给知识建立模型。第5部分则是综合和展望。

2.相关工作
之前已经有一些文章在研究怎么从特定的文本中提取知识。例如有些研究视图从网页文本中提取相关知识(Banko & Etzioni, 2007). 在 Alani et al. (2003)他们建议使用一个使用本体论的知识提取工具,根据特殊的分类工具在网页文本中检索并提取知识。另外还有一个研究Presutti, Draicchio, and Gangemi (2012) ,证实了语言表达理论的潜力并提出了一个基于框架的设计的强健本体论知识提取模型。作者保证了保证了只要精心设计就会有好的计算表现。然而,这种这些研究都旨在从特殊的场景中提取知识,并应用于依照网页文本来自动产生机器可识别的知识。
顺道提一句,已经有研究尝试利用提取到的知识来编写新的聊天机器人。然而,所有这些研究都局限于特殊的场景和领域,没有从任意文本中提取知识的能力。并且,为了最求最好的效果,他们是第一个从聊天机器人身上提取知识的。他们这项研究的优势在于使得机器之间的交互学习成为可能。
终身学习代理,Alice,相较于他的前身ELIZA,Alice没有使用那么如何学习系统,却 发掘新概念并且独立的组织语言。这种监督学习的过程叫做”targeting”,当机器人不能在库中找到和用户完全输入完全匹配的结果,就会向botmaster发送一个”target”,并由botmaster产生一个响应。在他们的方法中,他们使用这些理论,从网络上的聊天机器人上提取知识,这个过程是完全自动的(无监督的)。
在huang和zhou 的论文中,作者专注于线上交流平台,一般的,包括很多多元化的讨论内容。他们创造了一种独特的模型,能够提取总结出高质量的言语对(主题和反应的对应关系),新的聊天机器人模型将会从中受益匪浅。他们使用了支持向量机来根据知识的中心来生成回应。通过内容等等来排序言语对。排名靠前的言语对被选作机器人的反应知识。作者再次分析了在线交流平台,并使用基于线性模型的分类方法,把问题归类为相应的线程。为了找到相应问题的回答,他们使用了一个基于图形的前向传播算法。然而,这个研究也局限于特定场合,而且只有讨论主题确定的时候,才能运行。并且,模型使用的所有知识都不是提取到的,实验中知识提取量是设定好的。n Cong, Wang, Lin, Song, and Sun (2008)也发表过类似论文。
Watanabe, Nishimura, and Okada (2008)展示了另一种基于网络在线论坛的研究。作者构建了一套基于知识的问题回答系统。用户又可能问到的问题,问题回答系统将会在库中检索相关的知识。然而,这套系统仅仅局限于”how”类型的问题。在 Wu, Wang, Li, and Li (2008)的研究中,在使用了分类方法之后,他们使用到了集成学习理论,帮助系统做出更好的决策。他们构造了一个简单的集分类器,产生的相关反应将会成为聊天机器人得到的知识。
虽然所有这些研究都是从不同的网络平台上提取知识,但是仍然没有研究提出一个可以从机器中提取知识的方法,或者利用深度学习算法重构一个的NCA。他们提出的方法,优势在于使用了一个问题代理服务(QA-service)。QA-service使用了一大堆打乱的数据集作为问题数据库。并把问题传给网络上的机器人,并记录得到的回应。问题应答对(应答对)作为数据集记录好,又可以当作训练集用于创建新的NCA。

3.知识提取过程
实验使用的主体是利用有限N-gram规则构造的RBC,N-gram rules是顺序文本中紧邻的n个有序元素(音节,音位,字母和单词等等)。基于提前设定好的规则,RBC利用N-gram的相关性,产生输出。
3.1.研究方法
他们的机器人知识提取方法基于H1假说:如果向机器人提出的问题是无穷的,那么聊天机器人产生的应答数量将会趋于稳定。
为了验证H1假说, 他们创建了一个问题代理服务(QA-service)。QA-service使用了一大堆打乱的数据集作为问题数据库。并把问题传给网络上的机器人,并记录得到的回应。利用大量的应答对创建数据集。问题数据库来自做个在线数据平台,例如yahoo 应答数据集、微软的wikiQA语料库(数据)、SimpleQuestions数据集、Cornel Movie对话语料库。用到了总共382,961个独特的语句。实验中,QA把问题递交给RBC,并分析规则出发的独特响应。
所有过程由6 batch完成。每个batch完成后,都会分析独特的应答规则,并与先前的应答规则进行比较,来确保模型的饱和度。虽然RBC拥有1500个应答规则,但是他们会在模型得到新的输入但是不产生新应答规则的时候结束对话。在这里,他们提前定义了75%的机器人知识。理论上来说,Fig.2中的知识提取模型将会被一下这个函数逐步优化:
(其中a,b,C为常数)
X是输入给机器人的问题数量。将H1假设运用在这里,将会得到:

基于Eq,给机器人输入的问题趋于无穷大时,提取规则将会趋于一个常数。Tabel 1 展现了对于应答模型的分析。
Table 1
Summary of the input-response analysis.
No. Unique question / answers Increment Extracted rules
1 105,661 0 597
2 184,039 79,338 946
3 262,507 81,434 1033
4 319,519 192,681 1098
5 339,570 27,917 1101
6 382,961 63,210 1101
其中第一列是batch number,第二列是应答对总数,第三列是应答对的增量,第四列是该batch的所有应答规则。
下面这个Fig.1流程图总结阐述了以上的所有过程。

首先初始化每个batch的i和所有应答对的数量。然后选取问题集,利用QA-service读取其中的所有行。j是问题的总数。把问题递交给RBC。QA抓取RBC低于任意一个问题的反应,称作R(j)。当 j = EOF,到达了文档尾,计算应答对的数量(TCR = TCR+CR(i),其中CR(i)是第i次迭代产生的应答规则。)。最后,更新问题数目,并开始下一个batch(i = i + 1)。Fig.2展现了每一个迭代,应答规则数量的变化。即应答规则随着数据集的变化曲线。

从Fig.1可以看出,每一次迭代成功后,累计的应答规则增加趋于停止。Fig.2中图形到达顶峰,趋于一个稳定值。所以整个知识提取过程可以由这个函数(1)(Fitts & Posner, 1967; Taylor & Ivry, 2012)来表示。因此,他们可以推断,在知识提取过程中某一点后,更多的数据输入对于模型改进来说,微不足道。接下来,将展现一个聚类实验,来进一步评估这个实验的结果。
3.2.答案聚类
答案数据集将会使用到聚类方法。这个基于聚类的idae展现了和Fig.2中类似的函数表现。利用这个方法,可以做到独立于机器人类型定义一个知识提取的截止点。有很多监督学习和非监督学习的聚类方法。(Xu & Wunsch, 2005)。他们只需要找到数据集聚类的数量。他们选择了简单的K-means聚类方法(Kanungo et al., 2002; Krishna & Murty, 1999)。k-means是一种根据聚类数量来分类数据集的非监督学习算法。 这个算法会将输入的数据分类集聚,甚至用户定义的聚类数量是错误的,也会执行。所以在使用聚类方法时,用户得想办法定义合适的聚类数量。不幸的是,还没有一套理论来判断聚类数量是否合适。只能简单粗暴的在每一次迭代中,比较不同k时多个运行结果,并选择最好的那一个。为了自动完成这一过程,他们采用了一个著名的验证方法——Elbow method(Kodinariya & Makwana, 2013).这个方法的主要思维是,输入许多的训练数据来跑k-means聚类模型,为k的每一个取值计算误差平方和:sum of squared errors (SSE). 然后,画出SSE随着每个k的变化图,选出SSE最小的那个k作为最优解。
他们已经通过Elbow method方法找到了每个测试数据集的最优的聚类数。图Fig. 3是包含了382,961个独特句子的巨大数据集的Elbow曲线。在本次实验中,他们定义k=500 600 …1500(其中每次迭代k差值为100)跑k-means模型,并计算SSE。他们可以看到,SSe最小的k值大概在1100到1300之间。最优的聚类数量就包含在这些值中。他们修整了中值,所以最后得到:对于大型数据,k取1200是最好的。当输入数据规模在其他情况时,k=1200也可以使得SSE取得很小的值。Fig.4展现了k-means剧烈的结果。

这个聚类数是通过Elbow method得到最有聚类数。如图Fig.4,实验的开始阶段(最初的三个batch),k值是线性增长的Fig.4中出现的线性函数,展现了一个新知识的学习过程。和Fig.2中展示的函数变化很类似,他们可以推测出,聚类数是根据相应数据集的特殊规则的数量来确定的。在Fig.4中,第三次迭代之后,k的值不再显著增加,也就是已经没有更多的知识可以提取了。这实际上就应该是学习模型的学习停止点。在这个案例中,知识提取的这个点实在k值达到1200附近的时候出现的。因此,根据这个特殊点他们能够基本判断这个模型是否已经基本提取完所有知识,他们是否可以停止模型。
4.构建一个神经会话代理(NCA)
Vinyals and Le (2015)的工作中,通过保存,改善,分享和应用可以达到对提取学习到的知识的重利用。这个实验中,第一个阶段提取学习到的知识将会用来设计一个NCA.在此设计过程中会用到许多算法,然而在自然语言处理和深度学习前沿,已经在推广模拟对话中的“生成对话模型”。
4.1模型
为了分析在本实验第二阶段所提取到的知识的质量,他们创造一个NCA.他们使用seq2seq lstm(Sutskever, Vinyals,and Le (2014))来构建NCA。这个模型会基于RNN一点一点分析输入数据,并同时预测模型的输出。RNN是神经网络的一种,每个单元之间会有连接,构成一个有向循环。因此可以构建一个内部的网络状态来展现临时动态行为。

LSTM是一种特殊的RNN,seq2seq是只有一个LSTM的神经网络来读取线性输入(encoder),每一步。,结果是一个vector向量。然后用另一个LSTM从这个vector中提取输出(decoder)(Sutskever et al., 2014)。使用LSTM来预测条件概率,p(y1, …, yT|x1, …, xT ),其中(x1…xT)是输入序列,(y1…yT)是相应输出,长度T’不同于T。LSTM通过第一次固定尺寸v的输入计算条件概率,而他们又是由LSTM的最后一层隐藏层输出的。之后再利用标准的LSTM 模型。计算y1…yT的概率,这种LSTM模型的初始隐藏状态设置为x1,…,xT的表示形式v:

在这个等式中,每一个p配置了使用sofmax函数修饰的所有单词来描述。z总体流程在Fig.5中展现。LSTM计算A,B,C(序列输入数据),并使用这个该过程计算W,X,Y,Z(序列输出数据)的可能性。
4.2数据集
在这个实验中,使用QA在知识提取过程中创造的应答对作为数据集。数据集的70%是训练集,30%是测试集,训练的方法来自(Vinyals & Le, 2015)的实验。训练数据集是268073个应答对,测试集是114,888个应答对。在他们的实验中,LSTM有3层。1024个记忆单元。每次迭代的数据batch为32,学习率为0.5。词汇量为100,000。使用了250,000个内部步骤。使用以上这些参数,他们创造出了NCA model。
4.3模型评估
他们使用对比评估的方法,他们给RBC和NCA相同的问题,比较二者的回答。因为在Vinyals and Le (2015)陈述的,缺乏一个衡量NCA知识质量好坏的好方法。他们使用方法BLUE(Papineni, Roukos, Ward, & Zhu, 2002)score 设计了一个分析的两个机器人应答质量的模型。该模型比较了二者的N-grams并记下匹配数量。相似性是一个匹配数量的函数(Corley & Mihalcea, 2005)。Table展现了质量分析结果。

Table2中,BLEU scors 表现了RBC和NCA产生的结果的相似性。75%的情况下,BLEU 分数都大于0.5(BLEU的值在0,1之间)。只要大于0.3就证明相似性还不错,而如果大于0.5,相似性就非常高了。这也就强有力的证明了,从RBC中提取的知识已经完全移植到了NCA中。NCA不只是简单的找一个匹配的结果。实际上,上面图中的很多回答知识都没在训练集中出现过。Tabel2中的结果可以说明NCA提取的对话知识超过了75%,提取了RBC中的大量知识。
5.模型改进的个人想法
现在我们已经有方法可以通过RBC的知识提取,自动创建一个NCA。那么NCA已经易于创建构造了,为了优化模型,我觉得可以使用GAN(Generative Adversarial Networks
)博弈论思想和遗传算法的思想。Imagineering Institute, Iskandar Puteri, Johor, Malaysia的文章中使用了BLEU scores来为NCA的回复和RBC回复的相似度打分。在我的方法中,可以利用爬虫技术,从网络社交平台中爬取的一定量应答对数据。将BLEU scores定义在NCA中,这里的BLEU scores改稍许,此处的BLEU scores用来判断NCA回答和爬取数据中回答的相似性。让所有NCA之间进行机器间的自然对话。每对话一次,提出问题的一方判断对方应答的是否为人类的自然回答,设计一个记录判断正确与否的指标为R,某个NCA是否通过对方检测的指标为P。先构造一定量的NCA(数量比较大),每次迭代完后,通过NCA的P和R进行综合排序。按照一定的方法提取其中10%的模型(F = PRrandom_NUM(随机数用来模拟随机性)),这10%的模型的DNA(权值等参数)交叉得到10倍数量的子女。再重复进行上述过程。迭代许多次后,模型达到了超强的模仿自然语言以及判断对方的回答是否是自然语言的能力。这充分使用了博弈论的思想和遗传算法的思维。如果模型设计的好,那么到时模型的好坏仅仅取决于爬取数据的数据量。

6.总结和展望
这篇文章中,他们为从RBC提取对话知识提出了一种建设性的方法。为机器人获取知识是非常重要的,但同时也是非常耗时的。因此,非常有必要提出一个方法从可利用的资源中自动收集知识。他们的研究说明了自动知识提取是完全可能的,并且可以利用得到的知识构建一个新的会话代理。所以他们的研究主要包括这两步,自动网络知识提取/数据集的准备和利用seq2seq LSTM构建NCA.实验结果证明了用用他们提出的这个方法从RBC中提取对话知识是可能的。换言之,只要利用有限的数据,重复利用和分享,这些数据只要多于机器人总知识的75%,就可以达到。他们推知这个方法可以使用大量数据集,对于网络上任意一种利用QA技术的机器人,都可以进行知识提取。并且,简单的k-means聚类算法可以用来得到知识提取的stopping point。就像在文章的模型评估部分。新设计的NCA继承了老的RBC的人设和语言风格。
本文的主要贡献是,提出了一个自动知识提取的新方法,并允许网络上所有机器人重利用提取出的知识。这个方法有希望使得一个机器间进行知识交流。因此,未来的机器人知识提取不再会是一个耗时的过程。人机交互仍然是光明的。因此,在未来的研究中,他们意愿使用这些研究结论来研究从人际对话中提取知识。于是将会从人际交往中提取知识并提示聊天机器人的性能。

参考文献
Imagineering Institute, Iskandar Puteri, Johor, Malaysia Automatic knowledge extraction of any Chatbot from conversation (2019)
Ian Goodfllow GAN(Generative Adversarial Networks) (2016)
YufeiYuanHuijunZhuang A genetic algorithm for generating fuzzy classification rules(2019)
Mikolov, T., Karafifiat, M., Burget, L., Cernock, J., & Khudanpur, S… Recurrent
neural network based language model. Eleventh annual conference of the inter
national speech communication association. (2010)
T. Kanungo ; D.M. Mount ; N.S. Netanyahu ; C.D. Piatko ; R. Silverman ; A.Y. Wu
An efficient k-means clustering algorithm: analysis and implementation(2010)
Valentina Presutti,Francesco Draicchio,Aldo Gangemi Knowledge Extraction Based on Discourse Representation Theory and Linguistic Frames
Michele BankoUniversity of Washington, Seattle, WAOren EtzioniUniversity of Washington, Seattle, WA Strategies for lifelong knowledge extraction from the web(2007)
Papineni, K., Roukos, S., Ward, T., & Zhu, W.-J. Bleu: a Method for Automatic Evaluation of Machine Translation
Fatemeh Ahmadi-Abkenari AliSelamat An architecture for a focused trend parallel Web crawler with the application of clickstream analysis(2011)
PatrickFève,AlbanMoura,OlivierPierrard Predetermined interest rates in an analytical RBC model(2018)
Yu Wu ; Gongxiao Wang ; Weisheng Li ; Zhijun Li Automatic Chatbot Knowledge Acquisition from Online Forum via Rough Set and Ensemble Learning(2018)

聊天机器人在对话中的知识提取相关推荐

  1. python对话机器人软件_如何用Python为聊天机器人创建对话?

    我想写一个快速简单的聊天机器人,可以携带与用户的对话.我想知道如何创建对话,允许无限量的输入和响应.现在我使用的代码不允许用户定义输入.这就是我现在正在使用的代码.在# Import the rand ...

  2. 使聊天机器人的对话更有营养

    本文结构: 模型效果 模型 模块细节 今天的论文是 <Topic Aware Neural Response Generation> https://arxiv.org/pdf/1606. ...

  3. 傲娇的性格、逗比的语气,和聊天机器人谈情说爱可行吗?

    与傲娇萝莉.知心姐姐谈心?奈何情商还是不够. 上周五,微软召开第四代微软小冰发布会.据介绍,第四代微软小冰以全新解锁的情感计算框架为核心,实现了人工智能与人类的无缝流畅对话,甚至根据聊天内容与走向相互 ...

  4. 独家 | 聊天机器人开发中的机器学习(附链接)

    作者:Omkar Prabhune 翻译:方星轩校对:王雨桐本文约2800字,建议阅读5分钟 本文作者从聊天机器人的种类.用途以及架构等角度介绍目前的聊天机器人技术,并在文末分享了一些聊天机器人行业的 ...

  5. 入选最受关注AI公司的Kitt.AI:多轮对话聊天机器人开发也可以很简单

    移动互联网发展之初,很多习惯了开放.自由的PC网民是充满绝望的,他们把手机上各个App之间无法跳转.内容封闭的情况称为"信息孤岛".这可能是聊天机器人,即chatbot随着人工智能 ...

  6. python 机器人聊天_使用python构建您的第一个聊天机器人并将其集成到电报中

    python 机器人聊天 Did you know? 你知道吗? "Chatbots can cut operational costs by up to 30%. eCommerce ch ...

  7. 对话式服务思考,如何在 Messenger 用聊天机器人做好客户服务

    目录 有没有这样的经历 设计聊天机器人的定位和画像 聊天机器人的对话结构 新手引导和帮助 添加对话能力 添加产品介绍 添加业务联系 添加体验技能 处理错误 示例程序 接下来 有没有这样的经历 作为一位 ...

  8. 我其实一直都懂你|闲鱼聊天机器人

    项目背景 闲鱼是一个闲置共享交易社区,为了增加交易乐趣,闲鱼在产品设计中有意识的通过买卖双方的互动交流推动商品的成交.无论是商品下单需要先聊一聊,还是鱼塘话题等通过群组互动分享交流商品,都是这一设计思 ...

  9. Facebook 开源聊天机器人Blender,经94 亿个参数强化训练,更具“人情味”

    来源:AI前线 作者 | Kyle Wiggers 编译 | Sambodhi 策划 & 编辑 | 刘燕 不久前,Facebook 开源了号称是全球最强大的聊天机器人 Blender,它标志着 ...

最新文章

  1. SoC(System on chip)与NoC(network-on-chip)
  2. 零售行业O2O盛行 或成黑客窃取数据目标
  3. 域名解析对网站SEO优化有何影响?
  4. 和菜鸟一起学证券投资之股市常见概念公式1
  5. 易语言利用服务器更新,易语言使用FTP服务器更新软件案例
  6. iOS ARC环境下dealloc的使用
  7. windows 8   远程桌面(RemoteFX )
  8. gradle引入子module配置_原创 | 看完此文,你对Gradle的理解又升级了
  9. 解读文献里的那些图——流式细胞术
  10. 从零开始发布web项目(七)
  11. 在线免费下载音乐网站源码,支持在线播放
  12. 高等代数——大学高等代数课程创新教材(丘维声)——第0章 笔记+习题
  13. U盘数据恢复软件EasyRecovery的使用教程
  14. 【渝粤教育】电大中专跨境电子商务理论与实务答案作业 题库
  15. 计算机考研专业课靠什么意思,计算机考研专业课831什么意思???
  16. 华为服务器如何修改ip地址,华为路由器IP地址设置问题-192.168.1.1进不去
  17. jquery mobile外部js无法载入问题
  18. “胡”说IC——菜鸟工程师完美进阶
  19. J0ker的CISSP之路:复习-Access Control(4)
  20. 9.10 安卓常用工具类之一 权限 ---- PermissionUtil

热门文章

  1. PhotoShop 插件开发之选区(Selection)
  2. openwrt使用apache配置httpd文件服务器
  3. word大纲级别混乱的解决办法
  4. 全景丨0基础学习VR全景制作,平台篇第15章:热点功能-音图文
  5. 励志语句,简短有道理
  6. 手机qq的“兴趣部落”如何关闭提示(小圆点)
  7. oracle 18c数据库安装时的奇怪问题
  8. Google Earth Engine(GEE)——Landsat 7条带色差修补
  9. 【已解决】Matlab和SpectreRF联合仿真(cds_srr)的证书问题
  10. google pinyin 如何打出顿号