使聊天机器人具有个性

本文结构:

  • 模型效果
  • 模型的三个模块
  • 模块细节

今天的论文是 《Assigning Personality/Identity to a Chatting Machine for Coherent Conversation Generation》

https://arxiv.org/pdf/1706.02861.pdf

当我们在和聊天机器人互动时,最开始往往很好奇的就是对方到底是人还是机器人呢,所以会问到一些关于对方身份的问题,这对于机器人能否通过图灵测试还是很重要的问题之一。

这篇论文提前预设好机器人的身份档案,并且做到在相关的问答中做到与设置的一致,就可以让机器人在回答时能够有一定的身份特征。和其他的区别是不用从对话中慢慢学习出个性。

模型效果:

假设机器人的预设档案为:

本论文的模型与普通的 seq2seq 效果比较为:


模型由三个模块组成:

  1. 一个档案检测器 Profile Detector,一是来决定是否要根据档案来回答,二是根据哪个关键字答复。
  2. 一个双向解码器 Bidirectional Decoder,用于从选定的档案值出发向前和向后生成答复。
  3. 一个位置检测器 position detector,用于预测选定的档案值后要从哪个位置开始解码,把位置传递给 decoder。

整体:

  1. 给定一个提问后,先看是否需要用档案内容回答,不需要的话,就用通常的 seq2seq 来生成回复; 需要的话,先用 Profile Detector 选择合适的 key-value。
  2. 然后用 Bidirectional Decoder 以这个 value 为起点向前向后生成答复。
  3. position detector 用来改善 training,test 集的差异问题,只在模型训练时用。

模型细节:

提问:x = x1x2···xn, 被 Encoder 将 post 转化后的向量 x = x1x2 · · · xn。x 的隐藏层状态由 GRU 获得 h = (h1, h2, · · ·, hn)档案:{< ki, vi > |i = 1, 2, · · · , K} 回答:y=y1y2···ym

问题建模:

1. Profile Detector

1. 其中 P(z|x) 是根据提问 x,看需要用档案来回答的概率,由 Profile Detector 计算出。

由训练的二分类器得到 P (z|x) = P (z| h~) = σ(Wp h~),h~ 是所有 hj 的和,Wp 是分类器的参数。

βi = MLP([ h~, ki, vi]) =f(W ·[ h~;ki;vi]),用来决定根据哪个关键字答复,其中 f 为 softmax 激活函数,选择概率最大的那一组 key-value。

2. Bidirectional Decoder:

2. Pfr(y|x) 是根据 x 生成 y,由通常的 forward decoder 生成。

3. Pbi(y|x, {< ki, vi >}) 是根据 x 和档案生成 y,由 Bidirectional Decoder 生成:

y = (yb, v~, yf ) 为生成的回复,v~ 是选中的 value:

先由 x,v~ 得到 yb,再由 x,v~,yb 得到 yf。

Pb,Pf 通过下式计算:

其中 sj 是 decoder 的相应状态,cj 是语境的向量:

P frP bi 的参数不是共享的。

3. position detector:

因为用于训练的问答句是从社交网站上获得的,前面识别出来的 value 可能并不会出现在答复中,这样 bidirectional decoder 就会不知道从哪个位置开始,所以在这一步会做相关的处理。

例如,

post x =“你-1 有-2 什么-3 特长-4 ?-5 
response y =“我-1 非常-2 擅长-3 小提琴- 4
a profile key value pair “<特长, 钢琴>

那么 “小 提 琴-4 ” 的位置会传递给 decoder,然后替换成“钢 琴”。

P (j|y1y2 · · · ym, < k, v > )), 1 ≤ j ≤ m 来表示 yj 可以被 v 替换的概率。

计算方法用两个单词的距离:

P(j|y,< k,v >)) ∝ cos(yj,v)


损失函数:

由两部分组成:

L = L1 + αL2

1. L1 是生成答复的,根据最开始的问题模型可以得到:

D( c) 是只有 post-response 对的,D(pr) 是 post,value-response 的。

2. L2 是 profile detector 预测是否用档案及用哪个关键词的,根据前面定义过的 P(z|x)βi

z=0 不用,z=1 用, k^ 是锁定的 key。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据小魔方

如何处理地图投影转换

最近学习地理信息可视化总是遇到投影的麻烦,包括前段时间输出两篇关于simple features的分享中,其中没有特别处理投影的问题,老司机一看就能看出其中存在...

18030
来自专栏Java与Android技术栈

App基于手机壳颜色换肤?先尝试一下用 KMeans 来提取图像中的主色

上周,某公司的产品经理提了一个需求:根据用户手机壳颜色来改变 App 主题颜色。可能是由于这天马行空的需求激怒了程序员,导致程序员和产品经理打了起来,最后双双被...

10620
来自专栏机器之心

学界 | MIT与微软联合论文提出深度API编程器:可通过API调用合成新程序

选自arXiv.org 机器之心编译 参与:吴攀 让机器学会自动编程一直以来都是人工智能研究界所追求的一个重要目标,甚至被一些人认为是实现真正通用的人工智能...

30650
来自专栏微信模式识别中心技术分享

“变形金刚”为何强大:从模型到代码全面解析Google Tensor2Tensor系统

      Tensor2Tensor(T2T)是Google Brain Team在Github上开源出来的一套基于TensorFlow的深度学习系统。该系统...

3.1K90
来自专栏Echo is learning

machine learning 之 Anomaly detection

13710
来自专栏AI研习社

阿里将 TVM 融入 TensorFlow,在 GPU 上实现全面提速

AI 研习社按,日前,阿里机器翻译团队和 PAI 团队发表博文,阐述将 TVM 引入 TensorFlow,可以带来至少 13 倍的 batch 矩阵相乘(ma...

20420
来自专栏AI科技大本营的专栏

没练过这个项目,怎么做AI工程师?

从年初起,几家国际大厂的开发者大会,无论是微软Build、Facebook F8还是稍后的Google I/O,莫不把“AI优先”的大旗扯上云霄。

10210
来自专栏华章科技

R语言数据可视化之五种数据分布图制作

网址:http://www.cnblogs.com/muchen/p/5430536.html

22310
来自专栏北京马哥教育

Numpy 隐含的四大陷阱,千万别掉进去了!

看起来效果不错。假设我们要对数据进行筛选,取第 1 列的第 1 行和第 3 行数据构成一个 2 x 1 的列向量。先看对 array 的做法:

26920
来自专栏mathor

第四届蓝桥杯决赛B组C/C++——格子刷油漆

10530

扫码关注云+社区

领取腾讯云代金券