对话式推荐综述阅读(Conversational Recomme
前言
- 本文简要记录阅读何向南老师关于CRS的综述文章:Advances and Challenges in Conversational Recommender Systems: A Survey
- SIGIR2020-CRS-turorial
- 承接上篇,介绍CRS的具体任务内容。
Question-based User Preference Elicitation
当用户要找具有特定属性的物品可以通过主动搜索来获得相关信息。 例如,用户可以搜索“ iphone12 red 256gb”,其中关键字“ red”和“ 256gb”是物品iPhone12的属性。 在这种情况下,用户自己构建查询,而性能取决于搜索引擎和用户在构建查询方面的专业知识。
- 即使通过根据输入的内容建议可能的查询选项来努力帮助用户完成查询,用户仍然需要找出合适的查询候选。
- 此外,以这种方式进行搜索还要求用户熟悉他们想要的每个物品,实际上这是不正确的。 推荐系统向用户介绍他们可能喜欢的潜在物品。 但是,传统的推荐系统只能使用静态历史记录作为输入,存在限制。
CRS可以在搜索和推荐系统之间建立关联。 通过实时交互,CRS可以通过提问来主动咨询用户。借助用户返回的反馈,CRS可以直接理解用户对某些属性的需求和态度,从而提出适当的推荐。 即使用户对推荐的项目不满意,CRS也有机会在交互过程中调整其推荐。 问题驱动的方法着重于在对话中问什么问题。 常见有两种方法:
(1)询问物品
(2)询问物品的属性/主题/类别
asking items
早期研究直接向用户询问有关某项商品本身的意见。 与传统的推荐系统需要提前建模用户的偏好不同,CRS可以在交互过程中构造和调整用户画像。
因此,不仅需要在线更新模型的参数,还需要一些明确的规则或机制。 我们介绍了三种方法,它们可以了解用户对物品的态度并可以快速调整推荐。 这些方法大多数都不在其用户界面中使用自然语言,但是可以轻松地集成基于自然语言的界面来制作CRS。
-
choice-based methods
主要思想是让用户从当前给定的选项中反复选择其偏好的商品或商品集。 常见策略包括
(1)从两个给定选项中选择一个物品;
(2)从给定物品列表中选择一个项目;
(3)从两个给定选项中选择一组物品。
用户选择偏好的项目后,这些方法会根据用户的选择更改建议。例如: 2014年的一篇工作 使用矩阵分解(MF)来初始化用户和商品的嵌入,然后从商品嵌入空间中选择两组商品作为候选集,然后让用户选择这两组商品之一 。 重要的是要确保两个候选集尽可能不同或可区分。作者采用了MF算法,并按解释的方差递减的顺序逐一获得了嵌入向量。因此,这些因素,即嵌入向量的不同维数,是按独特性排序的。然后,作者迭代选择只有一个因子值变化的两个项目集。例如,如果两个因素分别代表电影的幽默度和动作度,则两个候选集是具有较高幽默度的电影集和具有较低幽默度的另一组电影,而具有较高幽默度的电影集两套固定在平均水平。当用户选择一个商品集时,用户的偏好嵌入向量将设置为所选商品的嵌入向量的平均值。随着交互过程的继续,选择变得更加困难。用户可以选择忽略该问题,这意味着用户无法区分两个物品集之间的区别,或者他们不在乎。 -
Bayesian Preference Elicitation.
用户偏好通过概率分布建模:用户向量从用户先验分布中生成: 给定用户针对问题的反馈计算用户偏好的后验概率:
基于贝叶斯思想的偏好建模,定义用户对物品对的偏好函数: -
Interactive Recommendation
交互式推荐主要基于强化学习,往往采用多臂赌博机(MAB)算法。 首先,MAB算法是有效的,自然支持对话场景。 其次,MAB算法可以利用用户之前喜欢的物品,并探索用户可能喜欢但从未尝试过的物品。 也有研究人员将交互式推荐表述为可以快速适应新任务的元学习问题。 这里的任务是根据几种对话历史提出建议。 元学习方法和基于MAB的方法具有平衡探索和开发(E&E)的能力。
由于候选物品集很大,因此直接询问物品对于构建用户偏好特征效率低下。 在现实世界中的CRS应用程序中,随着对话次数的增加,用户会感到无聊。 提出以属性为中心的问题,即询问用户是否喜欢某个属性(或某些作品中的主题/类别),然后根据这些属性提出推荐,这种做法更为实用。
asking item attributes
询问属性更为有效,因为用户喜欢还是不喜欢某个属性会大大减少推荐候选。 挑战在于确定要询问的属性序列,以最大程度地减少当前用户需求的不确定性。 前述基于批判的方法属于这一类。 此外,还有其他方法,下面介绍一些主流分支。
-
Fitting Patterns from Historical Interaction 从历史交互中拟合模式
对话可以看作是一系列包括消耗的物品和提及的属性的实体,目的是学习预测要询问的下一个属性或要推荐的下一个物品。因此,可以用RNN来处理序列。
典型的工作是google的Q&R网络(https://dl.acm.org/doi/10.1145/3219819.3219894)系统与用户之间的交互被实现为一个选择系统。在每轮交互中,系统都会要求用户从给定列表中选择一个或多个不同的主题(例如NBA,漫画或烹饪),然后向用户推荐这些主题中的物品。它包含一个触发模块,用于决定是询问有关属性的问题还是提出推荐。
触发机制可以像随机机制一样简单,也可以更复杂,即使用捕获用户状态的标准,甚至由用户启动。
系统产生的话语(即问题)是使用预定义的语言模式或模板构建的,这意味着系统需要注意的只是方面和价值。 这是最新的CRS研究中的常见设置,因为核心任务是推荐而不是语言生成 -
Reducing Uncertainty 减少不确定性
上面的方法没有基于明确的策略来处理各种用户反馈,一些研究试图建立一种直接的逻辑来缩小候选对象的范围。
-
Critiquing-based Methods
前述的评论模型通常配备启发式策略以引起用户对属性的偏好[23、187、107、106]。 在传统的批判模型中,对属性的批判值(例如,颜色为“非红色”或价格为“较便宜”)用于通过删除属性不满意的商品来重构候选集。 - Reinforcement Learning-driven Methods
-
Graph-constrained Candidates
基于图结构来表示不同实体间的关系,利用不同物品属性来筛选物品。每次选择与用户偏好最不确定的属性进行询问。
小结
在大部分交互推荐或者基于critiquing的方法中,系统不停询问问题,并每个问题跟着推荐。只有当用户因为满意或者不耐烦而退出才会停止询问,这种设置会影响用户交互体验,询问过多会让交互变成讯问。而且在交互的早期,用户偏好还不清晰,这时的推荐结果往往不可信。
换言之,应该有一个多轮对话的机制来动态地切换ask和推荐。
END
本人简书所有文章均为原创,欢迎转载,请注明文章出处 。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问本人简书主页查看最新信息https://www.jianshu.com/u/40d14973d97c