任务型对话系统(一)

任务型对话系统公式建模&&实例说明

#任务型对话的框架图:
在这里插入图片描述
SLU:把自然语言转换成机器可以处理的领域(domain)/意图(intention) 和槽植对(slot-value pairs),他的输入是代表用户输入Utterance的Xn,输出是Un。

Xn就是用户说的话,一般是几个到几十个词。

Un=(In, Zn), In是intention,Zn是槽植对。

In=f(Xn) , 就是意图分类,一般分类方法都行,也可采用DBN、DCN等方法。

Zn=f(Xn),Zn = {?1,?2,?3…},是序列标准问题,传统的CRF、HMM都行,RNN、LSTM、GRU等也可以。

另外为了解决领域数据不足的问题,SLU还有很多迁移学习(Transfer Learning)方面的工作。比如实例迁移、模型适配、参数迁移、领域关系迁移等。

DST:作用是根据领域(domain)/意图(intention) 、曹植对(slot-value pairs)、之前的状态以及之前系统的Action等来追踪当前状态。它的输入是Un、An-1和Sn-1,输出是Sn。

S? = {Gn,Un,Hn},Gn是用户目标、Un同上、Hn是聊天的历史,Hn= {U0, A0, U1, A1, … , U?−1, A?−1},S? =f(S?−1,A?−1,U?)。

DST涉及到两方面内容:状态表示、状态追踪。具体方法和论文后续我会一一放出(其实早就整理好了,还在想用什么形式来出更容易理解,有好的建议的欢迎提出来)。

另外为了解决领域数据不足的问题,DST还有很多迁移学习(Transfer Learning)方面的工作。比如基于特征的迁移学习、基于模型的迁移学习等。

DPL( 也叫DPO)基于当前状态(state)决定系统需要采取action。它的输入是Sn,输出是An。

S? = {Gn,Un,Hn},An是系统的Action,A? ={Dn, {Ai, Vi}},Dn是对话类型,Ai、Vi是第i轮对话的attribute和其value。DST一般会建模成强化学习或深度强化学习(从不同维度区分的话有非常多的变种,后面一一介绍)。

另外为了解决领域数据不足的问题,DPL还有很多迁移学习(Transfer Learning)方面的工作。比如线性模型迁移学习、高斯过程迁移学习、BCM迁移学习等。

NLG:把系统的Action转换成用Yn表示的自然语言形式的系统response。它的输入是An,输出是Yn。NLG方法非常多,比如基于规则的、基于模板的、基于短语的、基于token的、基于句法树的( 变种也不少,不过大同小异,大多是trick层面的)、基于corpus的、基于神经网络的(变种很多,如RNN、RNN+CNN、RNN+LM、LSTM+SC等)、基于神经网络+句法树的等等,后续会一一介绍。

其中A? ={Dn, {Ai, Vi}},Yn = {y1,y2,y3…},yi是第i轮的系统回复(response)。

另外为了解决领域数据不足的问题,NLG还有很多迁移学习(Transfer Learning)方面的工作。比如线在 原始领域预训练然后在目标领域(Target domain)做fine-tuning、基于实例的迁移学习、基于参数的迁移学习等。

为了在抽象的建模的基础上加深理解,看个小例子:

?1:I would like a cup of coffee.

?1:What coffee would you like?

?2:What coffee do you serve?

?2:We serve Espresso, Americano, Latte, Mocha, etc.

?3:I would like a cup of Latte.

?3:Hot Latte or Iced Latte?

?4:Hot Latte.

?4:What cup size do you want?

?5: Tall.

SLU:

输入:??=“I would like a cup of Latte.”,

输出:U?={L3, ?3},其中L3: Intention=Order、?3: {CoffeeType=Latte}

DST:

输入:

S2 ={G2, U2, H2}, 其中 :

G2= {CoffeeType=?, Size=?, Temp=?}

U2={Intention=Ask, {CoffeeType=?}}

H2 ={U1, A1}

A2={Action=Inform, {CoffeeType=Espresso, Americano, Latte, Mocha}}

U3 ={Intention=Order, {CoffeeType=Latte}}

输出:

S3 ={G3, U3, H3}, 其中 :

G3= {CoffeeType=Latte, Size=?, Temp=?}

U3={Intention=Order, {CoffeeType=Latte}}

H3 ={U1, A1, U2, A2}

DPL:

输入是S3,输出A3= {Action=Ask, {CoffeeType=Latte, Temp=?}}

NLG:

输入A3,输出Y3= "Hot Latte or Iced Latte?”。

转自
https://zhuanlan.zhihu.com/p/48268358
https://zhuanlan.zhihu.com/p/50095779
https://zhuanlan.zhihu.com/p/50347509
https://zhuanlan.zhihu.com/p/50704090
https://zhuanlan.zhihu.com/p/51476362

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值