对话推荐系统的进展与五个关键挑战( 二 )


询问属性
该方法的基本假设是 , 如果用户喜欢一个物品 , 那么他也喜欢用户的属性 。
询问属性的方法更有效 , 因为用户是否喜欢某个属性能够很大程度上减少推荐的候选物品数 。该方法的关键在于如何选择一系列属性对用户进行询问 , 来最小化当前用户的需求的不确定性 。另外 , 每次都询问用户 , 具有最大不确定程度喜欢的属性 , 而不会询问已经喜欢或不喜欢的属性 。
从历史交互中拟合模式
一个经典工作 , Christakopoulou等人在2018年提出的question & recommendation模型 。每轮系统让用户选择一个或多个不同的话题 , 如NBA , 美食等 , 然后从这些话题中选择物品推荐给用户 。模型包含了trigger模块 , 来决定是否询问属性 , 或者做推荐 。这个算法已经在YouTube部署 , 用来解决用户冷启动问题 。类似的模型都使用预先设定好的对话末班 , 因为核心人物是推荐 , 而非NLG 。另外这些模型只是从历史信息学习用户偏好 , 没有考虑当用户拒绝推荐结果后的回应 。
减小不确定性
基于评价的方法:
传统的方法通过删除不满足的属性 , 来缩小候选物品范围 。基于神经网络向量的方法 , 将评价编码为隐向量 , 用来表示物品可解释的属性 。Wu等人在2019年提出了一种针对平阿基的可解释的CF方法 。他们使用NFC模型将用户i对物品j的偏好编码成隐向量\hat z_{i,j} , 然后使用\hat z_{i,j}计算出打分\hat r_{i,j}和可解释的属性向量\hat s_{i,j}.当用户不喜欢某个属性时 , 系统将对应的属性向量\hat s_{i,j}对应的维度设置为0 。然后更新隐向量 。
基于RL的方法
借助deep policy network , 系统不仅选择属性并且控制什么时候转移话题 。
图限制的候选实体(Graph-constrained Candidates)
图经常用来表示不同实体之间的关系 。Lei等人在2020年提出一种在异构图进行交互的路径推理算法 。用户和物品表示为节点 , 关系表示为节点之间的边 。对话可以转化为图上的路径 。作者比较不同属性之间的偏好 , 选择最不确定的属性进行询问 。用户对某个物品的偏好建模为用户对属性偏好的均值 。利用图信息能充分减小搜索空间 。其他一些方法使用GNN类似的方法 。
多轮对话的技巧
问题驱动的方法关注“问什么” , 而多轮对话主要关注“什么时候问”或者“怎么维持对话” 。
何时问、何时推荐
在交互中使用好的策略 , 对提升用户体验很关键 。Zhang等人在2018年提出SAUR模型 。当对用户需求置信度较高时 , trigger会激活推荐模块 。在这里 , trigger是在所有候选实体打分上的sigmoid值 。但是 , 这种控制策略过于简单 。Sun等人在2018年提出CRM模型 , 模型使用belief tracker对用户输出进行追踪 , 然后输出表示目前会话状态的隐向量 。然后将其输入到deep policy网络中决定什么时候进行推荐 。DPN使用policy gradient方法做决策 。
更广泛的对话技巧
之前的技巧仍缺乏智能 。原因之一是 , 大多数CRS模型假设用户总是知道他们想要什么 , 然后模型学习到用户的偏好 。但用户有时候都不清楚他们想要什么 , 所以CRS还需要指引话题 , 并且影响用户的心理 。一些研究尝试让CRS能够让话题更具吸引力 , 让用户有参与感 。
多话题学习(Multi-topic learning in conversations)
Liu等人在2020年提出了多类型对话的任务 。他们提出的模型能够在不同类型对话切换 , 如从闲聊式对话切换到推荐式对话 。他们提出了multi-goal driven conversation generation (MGCG) 框架 , 包含了一个goal planning module和a goal-guided responding module 。前者将推荐作为主要目标 , 将话题转移作为短期目标 。给定上下文X , 和最后一轮的目标g_{t-1} , 模型转移到目标g_t的概率为P_{CG}(g_t eq g_{t-1}) , 若概率值大于0.5 , 则转移 。否则 , 保持不变 。针对特定任务的数据集非常重要 。Liu等人在2020年发布了一个多类型交互的数据集DuRecDial 。zhou等人在2020年发布了一个话题引导的数据集 。