题目:OpenDialKG: Explainable Conversational Reasoning with Attention-based Walks over Knowledge Graphs
介绍
这是一篇ACL-2019的paper,论文提出了一种模型,把对话中涉及到的实体等相关信息转换成在知识图谱中通过路径寻找的问题,同时还提供了一个标注好的对话和知识图谱相对应的数据集。
why
开放式对话系统要生成好的对话回复需要两个步骤:对话推理和对话生成。
- 对话推理可以理解成找到与该轮对话相关的实体和属性,使用这些实体和属性去构造出回复的主体。
- 对话生成是利用这些实体和属性去完成整个回复内容的生成。
本文的关注点主要是在对话推理方面,作者主要的出发点:
- 大规模的知识图谱中包含了丰富的知识,以及实体之间的关系,所以可以利用上知识图谱的信息,把对话推理转换为知识推理
- 完全将对话建立在大规模的KG中,因为知识图谱中的实体与实体之间是通过一定关系连接起来的,而对话推理的目标是找到与该轮对话相关的一些实体,所以我们可以把它们联系到一起,即把对话推理这个任务转换成在知识图谱中的行走问题,进行可解释性探索。
what
- 1.作者收集了一个人-人多轮对话数据集,这个数据集是第一个对话和知识图谱相对应的平行数据集,其中每个KG实体及其在开放式对话中的事实联系都有完整的注释。
- 2.提出了一种新的图形解码器,它关注可行的KG路径,通过将这些路径与给定的输入上下文(对话、句子和上一轮中提到的一组起始KG实体)相关联来预测KG中最相关的实体。
- 3.然后,构建了一个Zeroshot Learning model,该模型预测KG嵌入空间中的实体,并基于解码的图路径输出对候选实体进行排名。
how
DialKG Walker的整个模型架构,整个模型可以看做是一个encoder-decoder架构。
首先,给定对话历史信息,当前对话信息和起始节点集合,通过Input Encoder生成整个context
然后,graph decoder利用context信息和节点信息去生成walk path
最后,使用zero-shot KG embeddings对候选实体进行排序
- Input Encoder
(1)实体表示:编码当前轮对话涉及到的实体,通过KG Embedding(TransE)编码为实体向量作为输入,KG Embedding模型可表示为:
即最大似然学习法: 使得有效三元组的概率最大。
(2) 句子表示:编码当前轮的对话,采用attention-based Bi-LSTM进行编码。
(3) 对话表示:编码以前所有的对话日志,采用hierarchical Bi-LSTM进行编码。
(4) 融合表示: 最后以上三个表示分别得到一个向量,在这里再使用一个Attention,以得到最终的表示向量x
- Graph Decoder
得到上述最终的表示向量之后,作者提出了一个网络结构去预测相关的KG entity,使用以下的目标函数:
分别是L(f)生成下一轮正确entity的loss,L(walk)选择最佳路径的loss-
Zeroshot Relevance Score
对于 L(f),一种实现方式是使用hinge rank loss,可以定义成
其中函数f代表一个把entity映射到KG embedding space的转换函数,第一个y是负采样的目标实体,第二个y是目标实体
这个loss代表我们希望预测的embedding与真实实体的embedding的相似度要比与negative label的相似度大。其中,margin设置为ground truth和negative sample的相似度
-
KG Path Walker
目前生成的KG实体候选集,计算量会特别大。作者定义了一个基于attention的DialKG graph decoder,又增加了一个模块(其本质上是一个使用LSTM生成Path的生成过程),这样就可以对无关的path进行剪枝,极大地减小搜索空间。损失函数定义为entity paths的loss+relation paths的loss:
当模型训练好之后,在decoding step,我们基于zero-shot relevance和attention-based path scores来对潜在的path进行排序:
-
Result
在In-domain,Cross-domain,Human evaluation这三个方面进行了评估,该文提出的模型都有比较好的结果
Conclusion
把对话过程建模在知识图谱上使其具有可解释性,是个很不错的Idea,但是只介绍了推理方面,而之后如何生成回复没有详细介绍
论文: link