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


询问属性
该方法的基本假设是,如果用户喜欢一个物品,那么他也喜欢用户的属性。
询问属性的方法更有效,因为用户是否喜欢某个属性能够很大程度上减少推荐的候选物品数。该方法的关键在于如何选择一系列属性对用户进行询问,来最小化当前用户的需求的不确定性。另外,每次都询问用户,具有最大不确定程度喜欢的属性,而不会询问已经喜欢或不喜欢的属性。
从历史交互中拟合模式

  • 一个经典工作,Christakopoulou等人在2018年提出的question & recommendation模型。每轮系统让用户选择一个或多个不同的话题,如NBA,美食等,然后从这些话题中选择物品推荐给用户。模型包含了trigger模块,来决定是否询问属性,或者做推荐。这个算法已经在YouTube部署,用来解决用户冷启动问题。类似的模型都使用预先设定好的对话末班,因为核心人物是推荐,而非NLG。另外这些模型只是从历史信息学习用户偏好,没有考虑当用户拒绝推荐结果后的回应。
  • 减小不确定性
基于评价的方法:
  1. 传统的方法通过删除不满足的属性,来缩小候选物品范围。基于神经网络向量的方法,将评价编码为隐向量,用来表示物品可解释的属性。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的方法
  1. 借助deep policy network,系统不仅选择属性并且控制什么时候转移话题。
图限制的候选实体(Graph-constrained Candidates)
  1. 图经常用来表示不同实体之间的关系。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 \neq g_{t-1}),若概率值大于0.5,则转移。否则,保持不变。针对特定任务的数据集非常重要。Liu等人在2020年发布了一个多类型交互的数据集DuRecDial。zhou等人在2020年发布了一个话题引导的数据集。