基于条件知识库(CKB)的对话问答系统--论文阅读笔记
2017-05-28 20:22
429 查看
本文是‘’Learning to Extract Conditional Knowledge for Question Answering using Dialogue‘’论文的阅读笔记。最近开始看QA方面的一些论文,刚入门,很多东西都不太懂,感觉很吃力,慢慢坚持吧==
传统的基于知识库(KB)的问答系统,有三元组 (Subject, predicate, Object)组成,缺点在于当前面两者相同但是条件不同是,其会给出相同的答案。不能灵活地根据问题给出正确的答案。比如下图,虽然两个问题都是要升级win10,但win xp 和win 8是作为两个不同的条件,严重的影响着最终的答案:
所以本文提出了一种基于条件的知识库的问答系统,表示为(Subject,Predict, Object|Condition),就是在元十三元祖的基础上加了条件的限定。这样一来,我们就可以更灵活的做出回答。但是本文的模型仍有很大的限制,当用户的提问不满足回答条件时,对话系统会提示用户补全问题方可进行回答。如下图所示:
接下来看一下算法流程图,主要包括下面6步:
pattern mining
pattern aggregation
condition and pattern representation learning
conditions and patterns clustering
CKB construction
dialogue model construction
如下图所示:
接下来我们分步介绍其各个模块的功能和原理:
上面所提到的种子库是通过下面这种方法构建的,首先去除问题中的无用词,比如“how to,how do i”等。揭晓来使用词性标注的方法,对问题进行切分,然后剩下来的部分则被添加到种子库中。最后学习到pattern之后,就使用‘SLOT0’将条件词进行替换,这样就可以继续学习别的条件词。
最终的聚类结果如下图所示:
1,condition embedding model:
在原始skip-gram模型的基础上加上condition-pair信息,用如下计算公式表示,Ck和Cm是模型学习的condition的词向量,
2,pattern embedding model:
这一部分是给pattern建模,将其映射到一个向量空间,Vk和Vm是pattern的词向量表示,这里我们单纯的对pattern建模,不结合skip-gram模型。如下所示:
3,alignment model
前面学习到了condition和pattern的embedding向量,但是由于是分开学习的,所以会被映射到两个空间当中,并没有什么联系。这里引入alignment模型,用于将二者联系在一起。思路和上面的方法一样,也是求condition和pattern的共现次数。 如下图所示:
这样我们的模型最终可以表示为上面三个模型的合集,将目标函数定义为:
最终学习到的向量空间使用t-SNE工具可视化之后效果如下,可见最终意思相近的condition和pattern在向量空间中的距离也十分接近。
这里需要注意的是,作者提出了“MISSING PERCENTAGE OF SLOT”的概念,就是pattern中的SLOT会丢失,或者不重要。作者提出了三种,第一种是只在一个cluster中包含的直接去除,第二种是十分重要以至于大部分人都不会遗忘的,第三种是对答案不会造成很大影响且基本上没有用户会提到的。
寻找问题中的pattern,如果发现问题中丢失了pattern中关键的condition,则跳到第二步
提示用户输入condition,并提供一个候选集
至此,就将论文的主要算法部分介绍完毕。其实也就是一个很浅显的理解和笔记而已,因为第一次接触QA,所以很多地方理解不深而且也不知道真正的问题是什么==可能新手就这样吧、
传统的基于知识库(KB)的问答系统,有三元组 (Subject, predicate, Object)组成,缺点在于当前面两者相同但是条件不同是,其会给出相同的答案。不能灵活地根据问题给出正确的答案。比如下图,虽然两个问题都是要升级win10,但win xp 和win 8是作为两个不同的条件,严重的影响着最终的答案:
所以本文提出了一种基于条件的知识库的问答系统,表示为(Subject,Predict, Object|Condition),就是在元十三元祖的基础上加了条件的限定。这样一来,我们就可以更灵活的做出回答。但是本文的模型仍有很大的限制,当用户的提问不满足回答条件时,对话系统会提示用户补全问题方可进行回答。如下图所示:
接下来看一下算法流程图,主要包括下面6步:
pattern mining
pattern aggregation
condition and pattern representation learning
conditions and patterns clustering
CKB construction
dialogue model construction
如下图所示:
接下来我们分步介绍其各个模块的功能和原理:
1 pattern mining
这一步主要是挖掘出训练集中的pattern,并提取条件。这部分的原理没搞太明白,大概意思是使用一种自举模式学习的方法(bootstrapped pattern-learning),用的是SPIED-Learn系统框架==。使用种子字典从未标记的文本中学习条件,种子字典由先前的主语和当前主语共同构成。然后pattern从标记的条件中学习。举例说明,假设当前主语为windows_10,windows_xp为条件,然后我们就可以学习到一个pattern,接下来再使用这个pattern去学习别的条件词:上面所提到的种子库是通过下面这种方法构建的,首先去除问题中的无用词,比如“how to,how do i”等。揭晓来使用词性标注的方法,对问题进行切分,然后剩下来的部分则被添加到种子库中。最后学习到pattern之后,就使用‘SLOT0’将条件词进行替换,这样就可以继续学习别的条件词。
2 pattern aggregation
这部分比较简单,就是进行pattern得聚合。将相同pattern和不同condition的聚合为一类。比如:最终的聚类结果如下图所示:
3 condition and pattern representation learning
这一部分是比较核心的算法,通过word2vec的方法,将condition和pattern表示为词向量的形式。这里分为下面三个部分:1,condition embedding model:
在原始skip-gram模型的基础上加上condition-pair信息,用如下计算公式表示,Ck和Cm是模型学习的condition的词向量,
2,pattern embedding model:
这一部分是给pattern建模,将其映射到一个向量空间,Vk和Vm是pattern的词向量表示,这里我们单纯的对pattern建模,不结合skip-gram模型。如下所示:
3,alignment model
前面学习到了condition和pattern的embedding向量,但是由于是分开学习的,所以会被映射到两个空间当中,并没有什么联系。这里引入alignment模型,用于将二者联系在一起。思路和上面的方法一样,也是求condition和pattern的共现次数。 如下图所示:
这样我们的模型最终可以表示为上面三个模型的合集,将目标函数定义为:
J = Jc + Jp + Ja
最终学习到的向量空间使用t-SNE工具可视化之后效果如下,可见最终意思相近的condition和pattern在向量空间中的距离也十分接近。
4 condition and pattern clustering
这里做聚类的目的是将意图相近的pattern和有相同答案的condition聚合在一起,文中提出了一种基于embedding词向量的协同聚类算法。使用X-sim的分层聚类算法作为算法的主要框架。伪代码如下所示:5 Conditional Knowledge Base Construction
这部分就是使用前面所有的工作进行条件知识库的构建(CKB)。上面的一步完成之后我们就获得了pattern和condition的聚类,然后就可以遍历所有的类别构成CKB,如下图所示:这里需要注意的是,作者提出了“MISSING PERCENTAGE OF SLOT”的概念,就是pattern中的SLOT会丢失,或者不重要。作者提出了三种,第一种是只在一个cluster中包含的直接去除,第二种是十分重要以至于大部分人都不会遗忘的,第三种是对答案不会造成很大影响且基本上没有用户会提到的。
6 Dialogue Model Construction
上面我们已经构建好了条件知识库CKB,接下来就是用到实际的对话系统中。包含下面两个步骤:寻找问题中的pattern,如果发现问题中丢失了pattern中关键的condition,则跳到第二步
提示用户输入condition,并提供一个候选集
至此,就将论文的主要算法部分介绍完毕。其实也就是一个很浅显的理解和笔记而已,因为第一次接触QA,所以很多地方理解不深而且也不知道真正的问题是什么==可能新手就这样吧、
相关文章推荐
- 论文笔记] Amazon推荐系统——基于item的协同过滤
- Ch2r_ood_understanding 本文档为论文限定领域口语对话系统中超出领域话语的对话行为识别的部分实验代码。代码基于Python,需要用到的外部库有: Keras(搭建神经网络) S
- Linux根文件系统裁剪 论文阅读笔记
- 计算机视觉-论文阅读笔记-基于高性能检测器与表观特征的多目标跟踪
- QA问答系统,QA匹配论文学习笔记
- 论文_阅读笔记_基于机器视觉的水稻秧苗图像分割
- 论文阅读笔记之ICML2012::The Landmark Selection Method for Multiple Output Prediction 基于代表性特征选取的多维度回归方法
- 论文阅读笔记之ICML2012::The Landmark Selection Method for Multiple Output Prediction 基于代表性特征选取的多维度回归方法
- 机器阅读理解 / 知识库 / 深度学习 / 对话系统 / 神经机器翻译 | 本周值得读
- 论文阅读笔记之ICML2012::The Landmark Selection Method for Multiple Output Prediction 基于代表性特征选取的多维度回归方法
- 对话系统 问答系统 论文
- 论文阅读笔记(一)
- 深蓝海域创新性推出基于知识库的在线客服系统
- 笔记- 基于流媒体交换网的流媒体网络文件系统(杨景2006)
- (笔记)构建基于aemb的sopc系统(一)--硬件相关
- 基于usb的数据采集系统设计 学习笔记一
- [学习笔记]UML小结以及基于领域模型的系统设计初步
- [论文阅读]两篇CEC/EEE上基于Integer Programming的服务组合方面的论文
- 论文阅读笔记(六)
- 基于Linux的视频传输系统(上大学时参加的一个大赛的论文)