博舍

智能问答系统 智能问答模型有哪些

智能问答系统

一、什么是智能问答?

智能问答系统就是基于大量语料数据,通过数学模型,相关编程语言实现的一个能够和人类进行对话,解决问题的一个软件系统。

二、智能问答的分类1、任务型

任务型问答就是指在特定场景下,具有比较稳定流程的问答,机器人通过在多轮对话的过程中逐渐完善自己

想要获取的信息,通过逐渐完成的信息来给予用户回答。简单讲就是对于一个问句的,你需要知道一些其他答案

才能给予准确回复,对于需要的信息设计一个流程,通过这个流程逐渐获取需要的信息,然后给出答案就行了。

任务型问答一般包含3个核心模块。1、自然语言理解模块。2、对话管理模块。3、自然语言生成模块。

 

2、检索式

检索式问答中没有自然语言的生成,有一个特定的回答集,和一个使用问句和问句上下文,合适回答训练出来的模型,

模型训练好后,当一个问句输入,模型会对回答集中的回答做个评分,选出评分最高的那个作为答案输出。

 

3、问答式

这个应该说最简单的又或许是最难的,为什么这么说呢?因为这种问答希望是让机器人达到和正常人沟通的

无障碍情况。最简单是因为很多公司都将这种接口免费公开,最难的原因聊天的语料集难以获取,还有一点是

智能化程度很难提高。

 总结

目前对于工业界最有用的还是任务型问答,所以后面我会发比较大的精力和篇幅来详细的介绍任务型智能问答系统。

三、一个完整的智能问答系统

例子一:中国平安人寿保险 https://blog.csdn.net/PAL_AI/article/details/93232147

例子二:58帮帮商家版 https://mp.weixin.qq.com/s?__biz=MzI1NDc5MzIxMw==&mid=2247485863&idx=1&sn=3dcd636a83045a131df4881d62c2dd29&chksm=ea3e8d35dd490423e24f9c71c48f1e4ddd883cb10176f7fc0cd81548c4847d10631a2f67fd24&mpshare=1&scene=1&srcid=&sharer_sharetime=1581590724047&sharer_shareid=a15a70cd72d8a85938c3892eeb128c8f&key=4c338841a430365b77fe582e243f2b4d60f2244a5589e2b159df95d8b3935ffd350b2e46a537d7853de84a6be98c5521b2a61a1a1ca2c31999630d4908ebc3796a528225c0b285f4444ae803242092ec&ascene=1&uin=MTk2OTUyMDc4MQ%3D%3D&devicetype=Windows+10&version=62070158&lang=zh_CN&exportkey=ARKF7aW3B1sTpmMZ5Qeqf5U%3D&pass_ticket=LMP3lDBj1tuxoOyOAACe6TKRYAhCkF1u7FJT4i7jWLP%2BV7zvS%2BDfQ2JC1rHGKvgw

例子三:百度 https://www.jiqizhixin.com/articles/2018-08-24-17

 

问答分类部分参考:https://blog.csdn.net/Chasel_s/article/details/89316114

智能问答(QA)方法总结

方法总结

可以初步划分为两类,基于词频的方法,通常是一些较为传统的方法,以及基于语义的方法,通常是基于机器学习的方法。

1、基于词频的方法

在机器学习出现之前,传统文本匹配方法通常是根据句子中的词频信息进行检索的,如信息检索中的TF-IDF,BM25,语言模型等方法,主要解决字面相似度问题。这些方法由于计算简单,适用范围广,到现在依旧是很多场景下的优秀基准模型。

1.1TF-IDF介绍

TF-IDF(termfrequency–inversedocumentfrequency是一种用于资讯检索与文本挖掘的常用加权技术。TF-IDF是一种统计方法,用以评估一字词对于一个文档集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。TF:在一份给定的文件里,词频(termfrequency,TF)指的是某一个给定的词语在该文件中出现的次数。对于在某一特定文件里的词语ti来说,它的TF可表示为:

TF=某个词在文档中的出现次数/文档中的总词数

IDF:逆向文件频率(inversedocumentfrequency,IDF)是一个词语普遍重要性的度量。某一特定词语的IDF,可以由总文件数目除以包含该词语之文件的数目,再将得到的商取对数得到:

IDF=log(语料库中的总文档数/语料库中出现该词的文档数)

最终,TF-IDF=TF*IDF

1.2BM25介绍

BM25算法是一种应用广泛的对TF-IDF的改进算法,解决了TF-IDF偏向于长文档的问题。传统的TF值理论上是可以无限大的。而BM25与之不同,它在TF计算方法中增加了一个常量k,用来限制TF值的增长极限。BM25还引入了平均文档长度的概念,单个文档长度对相关性的影响力与它和平均长度的比值有关系引入另外两个参数:L和b。L是文档长度与平均长度的比值。如果文档长度是平均长度的2倍,则L=2。b是一个常数,它的作用是规定L对评分的影响有多大。加了L和b的TF计算公式变为:

TF=((k+1)*tf)/(k*(1.0-b+b*L)+tf)

IDF部分计算方法与TF-IDF中相同。最终,BM25=TF*IDF

1.3统计语言模型

统计语言模型用于计算给定一个问题,另一个问题由其生成的概率。通过引入马尔可夫假设,我们可以认为一句话中每个单词出现的概率只与它前面n个词有关,整句的概率就是各个词出现概率的乘积。该模型被称为ngram语言模型。统计语言模型通常对语料库的大小有着较强的要求,通常来说,随着n-gram模型中n的增加,模型对于概率的估计会更加准确,但是需要的数据量也会成大大增加,所以,常用的统计语言模型通常为2-gram模型或者one-gram模型。

2、基于语义的方法

目前,深度学习模型已经在社区问答领域得到了广泛的应用,由于深度模型考虑了问题与问题之间的语义信息,通常比传统的基于词频的模型能取得更好的效果。

2.1基于表示的方法

基于表示的方法已被用于文本匹配任务,包括语义相似性,重复问题检测,自然语言推理。下图显示了基于表示的方法的一般架构。

输入句子的向量表示由编码器分别构建。两个输入句子对彼此表示的计算没有影响。

计算出句子的向量表示后,使用余弦相似度,逐元素运算或基于神经网络的组合等方法对编码的向量进行比较。

这种体系结构的优势在于,将相同的编码器应用于每个输入语句会使模型更小。另外,句子向量可以用于可视化,句子聚类和许多其他目的。

下面介绍来自《LSTM-BASEDDEEPLEARNINGMODELSFORNONFACTOIDANSWERSELECTION》文章中一种基于表示的方法QA-LSTM。QA-LSTM模型采用双向长期短期记忆(biLSTM)网络和池化层来独立构建输入句子的分布式矢量表示。然后,该模型利用余弦相似度来衡量句子表示的距离。主要可以分为单词表示层,句子表示层,相似度计算层三部分:

1.单词表示层:该层的目标是将原始每个词的one-hot编码转换为d维的词向量编码,通常使用word2vec或者glove词向量

2.句子表示层:模型采用双向长期短期记忆(biLSTM)网络和池化层来独立构建输入句子的向量表示。之后文章尝试了三种不同的方式来得到最终的句子向量表示:(1)最大池化(2)平均池化(3)两个方向上最后一个词的向量表示的拼接。通过试验,文章最终采用了最大池化的方法得到句子的向量表示

3.相似度计算层:利用两个句子向量的cosine相似度来得到最终的相似度得分训练方法:loss的计算公式如下

L=max{0,M−cosine(q,a+)+cosine(q,a−)}其中a+为正确答案,a-为错误答案

2.2基于比较的方法

基于比较的方法通常比较输入句子的较小单位(例如单词),然后将比较结果汇总(例如,通过CNN或RNN),以做出最终决定。与基于表示的方法相比,基于比较的方法可以捕获输入句子之间的更多交互功能,因此在对TrecQA等公共数据集进行评估时,通常具有更好的性能。下图显示了来自《BilateralMulti-PerspectiveMatchingforNaturalLanguageSentences》一个典型的基于比较的方法的模型。该模型包括以下五层。

1.单词表示层(WordRepresentationLayer)

该层的目标是用d维向量表示输入句子中的每个单词。BiMPM构造具有两个分量的d维向量:一个字符组成的嵌入和一个预先用GloVe或word2vec训练的词嵌入。

2.上下文表示层(ContexRepresentationLayer)

该层的目标是为输入句子中的每个位置获取一个新的表示形式,该表示形式除了捕获该位置的单词以外,还捕获一些上下文信息。BiMPM使用biLSTM生成上下文表示。

3.匹配层(MatchingLayer)

该层的目标是将一个句子的每个上下文表示与另一句子的所有上下文表示进行比较。该层的输出是两个匹配向量序列,其中每个匹配向量对应于一个句子的一个位置与另一个句子的所有位置的比较结果。

4.聚合层(AggregationLayer)

该层的目标是汇总来自上一层的比较结果。BiMPM使用另一个BiLSTM将匹配向量的两个序列聚合为固定长度向量。

5.预测层(PredictionLayer)

该层的目标是做出最终预测。BiMPM使用两层前馈神经网络来消耗前一层的固定长度矢量,并应用softmax函数获得最终分数

2.3基于预训练的方法

近年来,随着Bert等预训练模型的出现,由于其在大规模的语料库上进行过训练,所以能捕捉到更多的语义信息。近期社区问答领域效果最好的模型通常都采用了基于预训练的方法。这种方法通常将社区问答任务作为一个二分类任务(相似/不相似)来解决,通过[cls]标记将两个句子拼接作为模型的输入,输出为两者为相似的概率。

下面介绍《BERT:Pre-trainingofDeepBidirectionalTransformersforLanguageUnderstanding》中解决社区问答任务的方法:1.问题的拼接:

首先将查询和每一个候选文档一起作为Bert模型的输入,开始加入[CLS]标记。查询和文档之间加入[SEP]标记。利用BPE算法等进行分词,得到Bert模型的输入特征向量。

2.相似度计算:

将特征向量输入Bert后,经计算将得到BERT的输出(句子中每个词的向量表示),取[CLS]标记的向量表示,通过一个单层或多层的线性神经网络,得到两个文档的相似度得分(相似的概率)。

北航大数据高精尖中心研究张日崇团队对问答系统的总结。传送门https://github.com/BDBC-KG-NLP/QA-Survey

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇