夺冠 or 姜子牙?ChatBot帮你搞定:基于话题引导的对话推荐系统( 二 )
此外 , 为了使得对话与用户偏好相一致 , 我们采用关键词+模板的方式构造了user profile(用户偏好的话题) 。 如果当前话题出现在user profile中 , 就采用这一话题;如果不在 , 有1/2的概率不采用这一话题 , 使得对话更加丰富多样 。
生成对话每段对话从闲聊开始 , 根据话题转移序列逐步转移到最终向用户推荐电影 。 受到MultiWOZ[3]的启发 , 我们采用候选驱动的方法 , 基于开源的豆瓣语料[2]和爬取的电影评论来生成对话 。
- 对于目标之前的话题 , 我们首先从豆瓣语料中随机检索出20个包含该话题的语句 , 然后使用一个基于RNN的匹配模型[4]计算相似度 , 选出和最后一句对话相关性最强的 , 加以人工润色 , 作为回复 。
- 对于目标话题 , 我们需要给出电影的推荐理由 。 因此我们基于extreme embedding similarity[5]检索出三个最相关的电影评论 , 人工挑选出一个进行润色 , 作为回复 。
3 新任务:基于话题引导的对话推荐
基于TG-ReDial这个数据集 , 本文提出了一个新任务:基于话题引导的对话推荐
给定user profile, 用户交互序列 , 历史对话和对应的话题序列 , 要求:
- 预测下一个话题或者要推荐的电影;
- 生成关于话题或者是电影推荐理由的正确回复 。
推荐这里的关键是得到一个有效的用户表示用于推荐 。 本文分别使用BERT[8]和SASRec[9]来编码历史对话和用户交互序列 , 将得到的嵌入进行拼接送入MLP , 得到用户的表示:
文章插图由此计算出用户和物品的相似度 , 得到物品被推荐的概率:
文章插图其中 , 是物品的嵌入 。
文章插图与其他基线模型相比 , 本文提出的模型使用了文本和交互序列这两方面的信息 , 性能显著优于其他模型 。
话题预测本文分别使用三个BERT[8]来对对话 , 话题和profile进行编码 。 对于每个BERT , 将对应的文本和候选话题进行拼接 , 来突出话题的语义 。 和推荐类似 , 我们通过计算相似度预测出下一个话题:
文章插图其中 , 是话题的嵌入 。
文章插图可以看出 , 历史对话和话题序列在话题预测中更为重要 。
去掉候选话题后 , 性能显著下降 , 验证了加入候选话题的必要性 。
回复生成本文使用了预训练模型GPT-2[10]生成回复:
- 对于非推荐的情况 , 我们将下一个话题和历史对话拼接在一起作为输入;
- 对于推荐的情况 , 我们将要推荐的电影和历史对话拼接在一起作为输入 。
文章插图实验中 , 在PPL , BLEU , Distinct三个自动评测指标的基础上加入了人工评价指标Relevance ,Fluency , Informativeness 。 大多数情况下本文提出的模型是最优的 。
4 总结
本文提出了CRS领域的数据集TG-ReDial , 基于该数据集 , 提出了基于话题引导的对话推荐这样一个新任务并给出了解决方法 。 实验表明 , 该方法在三个子任务上的效果优于其他基线方法 。
- 小米联合京东及爱回收推全新换机服务 帮你快速换新机
- 海信5G阅读手机A7体验:帮你找回阅读最初的“小美好”
- 双旦OLED电视怎么选?这篇文章帮你解惑
- 功率|充电器太多让你心烦?倍思帮你解决这些烦恼
- 720元东芝1TB固态硬盘夺冠!大幅度领先三星970500G
- pick哪种日历一起迎接2021?小布提前帮你列好选择清单啦!
- 石家庄千万元补贴新能源汽车消费,动心了吗?这份攻略帮你做决定
- 西洋参、三七怎么用药?省药监局“音频小课堂”来帮你
- 如何统计文本中的中英文字符数?Python帮你解决
- 装上“千里眼”开通“云服务”,电信室内云台机帮你“看家”
