AAAI2020 A pre-training based personalized dialogue generation model with persona-sparse data
文章目录
- 论文背景
- 论文想要解决的问题
- 论文贡献
- 模型
- 变量解释
- 框架
- Encoding
- Attention
- 自动计算persona比重
- language model
- 最终的目标函数
A pre-training based personalized dialogue generation model with persona-sparse data
基于预训练和个性化稀疏数据的个性化对话生成模型
论文背景
AAAI2020 解读
部分内容引用 https://blog.csdn.net/LZJ209/article/details/104303844
原文链接:https://arxiv.org/abs/1911.04700
1.为了让对话模型生成出更加human-like的回复,给模型以特定的性格背景等作为参考信息是必要的。
2.大型预训练模型比如GPT2和BERT由于使用了大量的语句做训练,它们的语言能力非常的强大,生成出的语句非常的流畅。虽然大型预训练模型并没有针对某一个领域进行训练,但是人们通过在预训练的基础上再在目标数据集上进行二次训练,得到的结果大多好过只用目标数据集训练的结果。
3.数据集PERSONA-CHAT是一个为了应对该任务而提出的一个数据集,数据集采用人工收集,在构造数据集时人们被要求按照给定的性格信息来进行模拟对话,由此造成参与者在短短的几句对话中包含了相当多的个人信息,论文称这种现象为"persona-dense"。 [复制]
论文想要解决的问题
1.真实的对话中,只有很少的对话会涉及到个人信息,我们称现实生活中的对话是“persona-sparse”的,上述persona-dense的数据集并不符合真实情况。
2.如果直接用大型预训练模型在PERSONA-CHAT类似的数据集上进行训练,那么模型很有可能过分的注重个人信息,从而造成句句都离不开个人信息,这在上述数据集上可能会得到很好的结果,但是却并不真实。
3.由于真实的对话中,涉及到个人信息的语句非常的少,所以直接在persona-sparse的数据集上训练很有可能模型更注重那些不包含个人信息的语句,个人信息在训练的过程中成了噪音。
(总结:用persona-dense数据集不行,用普通数据集也不行)
论文贡献
提出了一个可以在persona-sparse的数据集上训练的预训练模型。
提出了一种通过模型自动计算persona比重的方法。
模型
变量解释
目标:根据 dialogue context C和responder的target persona T,生成流畅的response Y
Y=argmaxY′P(Y′∣C,T)Y = \mathop{\arg\max}_{Y'}P(Y'|C,T) Y=argmaxY′P(Y′∣C,T)
其中,persona T 视为一些属性的集合(例如 性别、地点、个人兴趣)T={t1,t2,...,tN}T=\{t_1, t_2, ..., t_N \}T={t1,t2,...,tN},且每个属性可以用键值对ti=<ki,vi>t_i=<k_i,v_i>ti=<ki,vi>表示。
dialogue context C={(U1,T1),...,(UM,TM)}C=\{ (U_1,T_1),...,(U_M,T_M)\}C={(U1,T1),...,(UM,TM)}包含了对话中的多轮(turns)【也就是话语UiU_iUi】和 persona TiT_iTi。
框架
个性化对话生成模型框架:编码器和解码器共享同一组参数。dialogue context和target persona使用编码器独立编码,并且它们的编码进入每个解码器块中的注意路由模块。训练一个动态权重预测器来衡量每条路线的贡献。
Encoding
Encoding with Personas
Attention
Attention Routing:
target persona ETE_TET , the dialogue context ECE_CEC , previously decoded tokens EprevE_{prev}Eprev
EprevE_{prev}Eprev作为query。ETE_TET ,ECE_CEC,EprevE_{prev}Eprev采用3个multi-head attention 分别作为key与value。
OT=MultiHead(Eprev,ET,ET)O_T = MultiHead(E_{prev},E_T,E_T)OT=MultiHead(Eprev,ET,ET)
OC=MultiHead(Eprev,EC,EC)O_C = MultiHead(E_{prev},E_C,E_C)OC=MultiHead(Eprev,EC,EC)
Oprev=MultiHead(Eprev,Eprev,Eprev)O_{prev} = MultiHead(E_{prev},E_{prev},E_{prev})Oprev=MultiHead(Eprev,Eprev,Eprev)
前两个公式采用unmasked 双向 self-attention 来获取更多有效的交互信息。最后一个公式采用masked self-attention来避免看到“golden truth” token.
然后进行融合,persona 权重α∈[0,1]\alpha \in [0,1]α∈[0,1] :
Omerge=αOT+(1−α)OC+OC+OprevO_{merge} = \alpha O_T +(1-\alpha)O_C +O_C+ O_{prev}Omerge=αOT+(1−α)OC+OC+Oprev
α\alphaα越大,包含的个性化信息越多。
自动计算persona比重
α\alphaα怎么得到:
设计一个二分类器Pθ(r∣EC)P_{\theta}(r|E_C)Pθ(r∣EC)。输入dialogue context ECE_CEC ,判断这个training dialogue是否为persona related ,相关则r=1,不相关r=0。
那么这个二分类器的confidence就可以当作权重:
α=Pθ(r=1∣EC)\alpha = P_{\theta}(r=1|E_C)α=Pθ(r=1∣EC)
我们可以通过一个heuristic script产生标签,该脚本通过一些规则(如单词匹配)来判断是否persona related。
二分类器的目标函数:
LW(θ)=−∑irilogPθ(ri∣EC)+(1−ri)log[1−Pθ(ri∣EC)]L_W(\theta) = -\sum_{i}r_i log P_{\theta}(r_i|E_C) + (1-r_i) log [1-P_{\theta}(r_i|E_C)]LW(θ)=−i∑rilogPθ(ri∣EC)+(1−ri)log[1−Pθ(ri∣EC)]
language model
Pre-training and Fine-tuning
原始的LM,和gpt2相同
LLM(ϕ)=−∑ilogPϕ(ui∣ui−k,...,ui−1)L_{LM}(\phi) = -\sum_{i} log P_{\phi} (u_i |u_{i-k}, ..., u_{i-1})LLM(ϕ)=−i∑logPϕ(ui∣ui−k,...,ui−1)
考虑到dialogue context encoding ECE_CEC和target persona encoding ETE_TET的:
LD(ϕ)=−∑ilogPϕ(ui∣ui−k,...,ui−1,EC,ET)L_{D}(\phi) = -\sum_{i} log P_{\phi} (u_i |u_{i-k}, ..., u_{i-1}, E_C, E_T)LD(ϕ)=−i∑logPϕ(ui∣ui−k,...,ui−1,EC,ET)
最终的目标函数
L(ϕ,θ)=LD(ϕ)+λ1LLM(ϕ)+λ2LW(θ)L(\phi,\theta) = L_D(\phi) + \lambda_1 L_{LM}(\phi) + \lambda_2 L_W(\theta)L(ϕ,θ)=LD(ϕ)+λ1LLM(ϕ)+λ2LW(θ)
END
(公式还是挺难敲的。。)
AAAI2020 A pre-training based personalized dialogue generation model with persona-sparse data相关推荐
- 《论文阅读》PLATO: Pre-trained Dialogue Generation Model with Discrete Latent Variable
<论文阅读>PLATO: Pre-trained Dialogue Generation Model with Discrete Latent Variable 简介 论文试图解决什么问题 ...
- (一)You Impress Me: Dialogue Generation via Mutual Persona Perception
摘要 尽管人们一直在努力提高闲谈对话系统的参与度和一致性,但当前的大部分工作只是专注于模仿类人的反应,而未对对话者之间的理解理解进行建模方面的研究.基于此,我们提出了一种P2BOT,这是一个基于收发器 ...
- 【论文学习】《Parallel WaveGAN: A fast waveform generation model based on generative adversarial networks》
<Parallel WaveGAN : A fast waveform generation model based on generative adversarial networks wit ...
- 论文总结之对话生成《Improving Knowledge-aware Dialogue Generation via Knowledge Base Question Answering》
11.Improving Knowledge-aware Dialogue Generation via Knowledge Base Question Answering 本篇论文是ACL最新的20 ...
- GCN-LSTM预测道路交通车辆速度 英文 Vehicle Speed Forecasting Based On GCN-LSTM Combined Model
GCN-LSTM模型预测道路交通车辆速度 GCN:又称GNN,图神经网络 LSTM:长短时记忆网络 Vehicle Speed Forecasting Based On GCN-LSTM Com ...
- 2018_IJCAI_DELF: a dual-embedding based deep latent factor model for recommendation
[论文阅读笔记]2018_IJCAI_a dual-embedding based deep latent factor model for recommendation-(IJCAI, 2018.0 ...
- 【多标签文本分类】SGM: Sequence Generation Model for Multi-Label Classification
·阅读摘要: 本文提出基于SGM模型,在Seq2Seq的基础上提出SGM模型应用于多标签文本分类.论文还提出了很多提升模型表现的细节,这是在Seq2Seq中没有的. ·参考文献: [1] SG ...
- 语音合成论文优选:Unified Mandarin TTS Front-end Based on Distilled BERT Model
声明:语音合成论文优选系列主要分享论文,分享论文不做直接翻译,所写的内容主要是我对论文内容的概括和个人看法.如有转载,请标注来源. 欢迎关注微信公众号:低调奋进 Unified Mandarin TT ...
- python能熔断吗_今天大盘熔断大跌,后市如何—— based on LPPL anti-bubble model
# 今天大盘熔断大跌,后市如何-- based on LPPL anti-bubble model > 来源:https://uqer.io/community/share/568a65e022 ...
最新文章
- ssm过滤器可以只过滤html吗,SSM登陆验证之过滤器实现
- 鼠标放在图片连接上面,预览图片
- Linux Kernel TCP/IP Stack — L2 Layer — Traffic Control(流量控制)的基本操作
- UVa 1636 决斗
- 有没有测试人心里的软件,心理测评,认识自己的有效工具:(二)你做的可能是假的心理测试...
- DevOps之发布系统
- 环网工业交换机ERPS技术解析
- jQuery下如何使用Json传递数据
- c语言课设报告时钟vc环境,C语言课程设计报告模拟时钟转动程序.doc
- 【GPU编程】基于GPU的光线投射体绘制(GPU-Based Ray-Casting Volume Rendering)入门学习
- HLSL bytecode to GLSL编译器的第一步
- Asp.Net Core简单整理
- 安装Hyper-v Server 2016
- python lazy_pinyin模块 isalpha函数
- python鱼眼图像识别_图像变换之矫正---鱼眼图像的矫正简介
- 凌恩客户文章:多组学揭示肥胖多囊卵巢综合征(PCOS)患者发病机制
- leetcode 递增的三元子序列
- 百度凤巢助纣为虐 网游盗号百度难逃罪责
- 关于Foreach是如何实现的问题
- 代码review,瑞出事来了