论文笔记:基于外部知识的会话模型Knowledge Diffusion for Neural Dialogue Generation

论文提出了一种神经知识发散模型,旨在解决对话生成中缺乏外部知识的问题。通过事实匹配和实体发散,模型能够具备收敛和发散思维,从而生成更具信息量和多样性的回答。网络结构包括Encoder、Context RNN、Decoder和Knowledge Retriever,其中Knowledge Retriever通过事实匹配和实体扩散来获取和利用相关知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Knowledge Diffusion for Neural Dialogue Generation

1 出发点

        现有的话语生成模型缺少必要的外部知识,生成的话语都是一般的、短的、信息量较少的

2 贡献

        提出了神经知识发散模型(Neural Knowledge Diffusion model),通过事实匹配和实体发散,使得该模型具有收敛和发散思维能力

3 网络结构

        网络结构如图1所示:在这里插入图片描述

图1

        主要由以下四部分构成:
                1. Encoder:将输入的话语X=(x1...xNx)X=(x_{1}...x_{N_{x}})X=(x1...xNx)编码为向量h
                2. Context RNN:记录对话状态,将h作为输入,输出一个向量,其为回答的生成提供指导
                3. Decoder:生成回答Y=(y1...yNy)Y=(y_{1}...y_{N_{y}})Y=(y1...yNy)
                4. Knowledge Retriever:执行事实匹配和相似实体发散

3.1 Encoder

        为了捕获XXX的不同信息,作者将XXX分别通过两个RNN,然后取两个RNN的最后一个隐藏状态记为:hNxKh^{K}_{N_{x}}hNxKhNxCh^{C}_{N_{x}}hNxC。其中 hNxCh^{C}_{N_{x}}hNxC 输入至 Context RNN 跟踪对话状态,hNxKh^{K}_{N_{x}}hNxK输入至 Knowledge Retriever 视为对X 中实体和关系的编码。

3.2 Knowledge Retriever

       Knowledge Retriever从知识库中抽取一定的相关事实,并给这些事实赋予权重,它通过事实匹配和实体扩散,使模型具有收敛和发散的思维能力。Knowledge Retriever的过程构如图2:

在这里插入图片描述

图2

3.2.1 Facts Matching

        相关事实F={f1...fNf}F=\{f_{1}...f_{N_{f}}\}F={f1...fNf}的抽取依赖于知识库和对话历史,可以通过字符串匹配、实体连接和命名实体识别等技术抽取。如图2右边,实体“Titanic”被识别,与它相关的知识三元组被抽取,然后通关平均知识三元组中的entity embedding和relation embedding得到hf={hf1...hfNf}h_{f}=\{h_{f_{1}}...h_{f_{N_{f}}}\}hf={hf1...hfNf}作为每个事实(三元组)的向量表达。然后通过MLP计算事实和输入的相似度(相似度也就是计算得到的权重),如公式1:
在这里插入图片描述

公式1

        对于多轮对话,实体匹配依赖于对话历史的原因是,当前话语可能并不能抽取有效的实体,例如图2中右边,“Is there any film like it?”。这时就需要对话历史去提供相应的实体例如:“Titanic”和“James Cameron”。最后将这些得到的相关事实概括为Cf,如公式2:
在这里插入图片描述

公式2

3.2.2 Entity Diffusion

        为了检索其他相关的实体,论文通过MLP计算句子中出现的实体与知识库中的所有实体的相似度,并且取最高的NeN_{e}Ne个为相似实体E={e1...eNe}E=\{e_{1}...e_{N_{e}}\}E={e1...eNe}。然后将CsC^{s}Cs作为所有相似实体的表达,如公式3和公式4:
在这里插入图片描述

公式3

在这里插入图片描述

公式4

3.3 Context RNN

        Context RNN记录对话状态并且指导Decoder做出回应,它将htCh^{C}_{t}htCCfC_{f}CfCsC_{s}Cs作为输入,然后如公式5更新隐藏状态:
在这里插入图片描述

公式5

3.4 Decoder

        将[htT;Cf;Cs][h^{T}_{t};C_{f};C_{s}][htT;Cf;Cs]表示为C,将[rf;re][r^{f};r^{e}][rf;re]表示为R。作者提出了两种Decoder如下:

3.4.1 Vanilla Decoder

        会用由RNN依次生成,生成的回应Y=(y1...yNy)Y=(y_{1}...y_{N_{y}})Y=(y1...yNy)的概率如公式6和公式7:
在这里插入图片描述

公式6

在这里插入图片描述

公式7

其中,θ\thetaθ为网络的模型,sts_{t}st为RNN的隐藏状态。

3.4.2 Probabilistic gated decoder

        Probabilistic gated decoder 使用了一个门控变量ztz_{t}zt去指导第t个单词是由单词生成还是由知识实体生成,如公式8:
在这里插入图片描述

公式8

其中,p(zt∣st;θ)p(z_{t}|s_{t};\theta)p(ztst;θ)由逻辑回归计算得到
        在生成回应的时候,如果一个实体被过度使用,也就是出现多次,这将导致多样性下降。因此,一旦一个知识项出现多次则应该减少它的系数,以减少它出现的概率。为了跟踪知识项的覆盖范围,作者在每个时间步更新知识项系数R.作者提出了两种机制:1)Mask coefficient tracker,一旦某个知识项出现后就将它的系数调整为0,使其不能再生成。2)Coefficient attenuation tracker,计算一个衰减得分如公式9和公式10:
在这里插入图片描述

公式9

在这里插入图片描述

公式10

其中,it∈(0,1)i_{t}\in(0,1)it(0,1),每生成一个单词,R都会乘一个衰减系数,使得分数降低。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值