神经网络对话模型

对话模型就是你一句我一句,上下文相关,句子长度还不一样,也就是由一个序列转化成另一序列,经典的seq2seq模型可以相应用上去,较为成熟的应用有神经机器翻译,不仅得益于其丰富且较为正规的语料,还有其中的损失评价函数也较为适合翻译问题,其结果往往不错,而对话往往表达更为多样,不同人的回答往往相差九千九百里,语料质量往往比较差,且损失函数也没有很好地选择,Vinyals 在它的文章 A Neural  Conversational Model 中提到在与其他模型比较时,用了人的感觉标准去判断句子的好坏进而比较模型的优劣。相对于一些简单且在一定领域的对话其训练效果是可以的,比如简单的问答,哲学问题,讨论工作等。

基本的 seq2seq 序列模型是组合编码层(两三层LSTM)和解码层(两三层LSTM)

encoder 将输入(说话)编码成一个语义向量 c (其中LSTM模型是多对一的)

decoder 将 c 解码成输出(回答) (其中LSTM模型是多对一的)

考虑句子前后关联性,还可以加入双向Bi-LSTM

考虑句子中(说话)某个成分在当前解码(回答)节点的重要性,引入注意力机制

现在最为标准的一套seq2seq, 就是带有注意力机制的。

输入序列每次一个token输入, 输出序列每次一个token输出, 基于贪婪算法,每次选取最高概率的token输出,并与该token 预测下一个回答token,另一种不那么贪婪的算法称为beam search, beam size 为k,  也就是每次选取概率最高的前k个token输入,对每个token 都进行预测,再产生前k个token 输出, 现在就有 k*k 个token,类似树的查找,计算出概率最大前k个 token

序列(两个token),最后就是得到概率最大的前k个token序列{回答长度},最后选取第一个token序列?

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值