Learning to Ask Appropriate Questions in Conversational Recommendation

以下内容纯属个人见解,欢迎大家交流。
发布于2021 SIGIR

1 motivation

1.1 问题

通过采用对话代理来动态捕获细粒度用户偏好,会话推荐系统彻底改变了传统的推荐模式。在典型的会话推荐场景中,CRS首先生成问题,让用户明确自己的需求,然后再提出合适的建议。因此,产生合适的澄清问题的能力是及时追踪用户动态偏好和实现成功建议的关键。然而,现有的CRSs在提出高质量的问题方面存在不足,原因如下:
(1)系统生成的回答在很大程度上依赖于对话政策agent的表现,需要用大量的对话语料库来训练对话政策agent以覆盖所有情况;
(2)当前的CRSs不能充分利用学习到的潜在用户配置文件来生成适当的个性化响应。

近年来,越来越多的人提出了发展电子商务CRSs的尝试,其中大部分可以分为两类:(1)基于政策的方法;(2)基于知识图的方法。

基于策略的方法起源于面向任务的对话系统,在该系统中,策略代理被设计为在会话推荐过程中自动作出反应(例如,做出推荐或查询用户对特定属性类型的偏好)。这些方法可以模拟训练语料库中涵盖的对话行为,生成类人的响应,完成推荐。然而,在准备全面的培训数据集时,他们的表现严重依赖于劳动和知识密集型过程(即获取和注释)。由于缺乏足够的标注良好的训练语料库,大多数基于政策的CRSs无法学习到针对多样化对话状态的准确对话行动分布,因此在对话生成方面表现不佳。

另一方面,基于kg的方法在知识图的帮助下将会话推荐简化为“系统询问,用户回答”的方式。这些方法通过在会话过程中引入基于路径的推理,可以有效地消除对大量训练语料的依赖。生成路径上的每个属性节点将被用于制定一个是/否问题(例如,“你喜欢流行/摇滚/乡村音乐吗?”),以确认用户当前的兴趣,并探索下一个要连接的节点。最后,KG中的显式路径将导致合适的推荐项目。但是,对KG的这种探索只涉及节点之间的连接,而忽略了用户响应背后的语义。显然,它们的效率较低,因为一个节点可以链接到多个节点,而且用户可能需要回答许多问题才能找到正确的项目。

主要的挑战如下:
(1)问什么个性化问题?不同的用户在消费物品时关注的方面可能不同。当产生明确问题时,CRS应该优先考虑最能影响用户决策的关键项目属性类型。这可以使CRS定位用户的需求,避免不必要的问题,大大减少了交谈次数。在KBQG中,我们设计了一个基于KG的推荐组件,从历史交互记录中推断每个用户对不同项目属性(通过KG中的关系表示)的喜好。更重要的关系意味着关联的属性对用户来说更重要,应该在早期对话阶段澄清这一点,以帮助推荐。

(2)应该执行哪个系统操作?尽管策略代理的性能与推荐质量直接相关,但考虑到潜在的巨大行动空间,训练一个准确的策略代理并非易事。在这方面,我们将我们的政策代理简化为一个基于问题的范式,其中的行动要么生成一个建议,要么进一步提出一个明确的问题。在推荐模块获得足够的信心之前,CRS应该不断询问用户对不同类型的物品属性的偏好。一旦认为这些信息足以做出准确的推荐,CRS就应该执行推荐操作。

(3)如何应对用户的反应?用户将在每一轮对话后给出他们的回答。因此,充分利用用户响应中的上下文对进一步提高推荐性能至关重要。在KBQG中,我们描述了两种用户响应。首先,如果用户对系统生成的澄清问题提供了明确的确认,KBQG可以有效地识别用户的需求,并将其存储起来以备将来提出建议。其次,一旦用户拒绝了该模型生成的推荐,KBQG能够生成更精细的问题,以便进一步调整其推荐。

1.2 解决方法

为了解决这些问题,我们提出了基于知识的问题生成系统(Knowledge-Based Question Generation System, KBQG),这是一种新的会话推荐框架。与以前的会话式推荐系统不同,KBQG通过从结构化知识图(KG)中识别最相关的关系,以更细的粒度对用户的偏好进行建模。根据不同关系的不同重要性,产生的澄清问题可以更好地促使用户提供更多关于他们偏好的细节。最后,准确的推荐可以在更少的对话回合中产生。


feature 1

与以往的基于KG的CRSs不同,我们提出了充分考虑KG路径推理时的异质关系,以便更好地理解用户决策过程背后的基本原理。如图1所示,用户最近已经看过几个电影。具体来说,我们将属性类型(例如,genre)定义为将不同属性值(例如,浪漫)的项目连接起来的关系。在KG的帮助下,他观看的电影的主要类型可以分为三种:传奇、浪漫和恐怖。我们提出的KBQG可以推断“类型”在帮助用户找到想要的电影方面扮演着重要的角色,而不是其他属性类型,如“演员”和“导演”。交互项目之间的关系高度指示了用户的内在偏好,因此有助于理解细粒度的用户兴趣。因此,我们的KBQG直接生成澄清问题,以确认用户对主要属性类型的偏好,从而做出有效且可解释的推荐。基于此,我们提出了一种新的基于知识的问题生成系统(KBQG)作为解决方案。

2 相关介绍

我们将我们的模型纳入多轮会话推荐(MCR)范式,但做了一些调整以提高其在现实世界中的适用性。MCR指的是将一次推荐尝试作为一轮,而CRS可以通过属性相关的问题或推荐多次与用户交互,直到任务完成。本文指出,与查询显式属性相比,询问通用问题能更好地促使用户描述自己的特定需求。例如,问“你对电影类型的偏好是什么?”总是比盲目地问“你喜欢浪漫的/恐怖的/艺术的/…吗?”更有效率、更自然。捕捉用户首选项。因此,我们绕过了现有MCR范式的试错交互风格,从而显著缩小了候选问题池(即行动空间),并使其更适用于通常涉及大量属性的电子商务应用程序

3 模型介绍

feature 2

如图2所示,我们提出的KBQG是通过一个由会话策略决策、偏好挖掘和反应决策组成的三阶段过程来执行的。在开始阶段,该过程由用户的推荐请求启动。根据当前对话上下文,政策代理负责决定当前对话回合𝑡中的响应行动𝑎𝑡,即是提出澄清性问题还是提出建议。动作𝑎𝑡将被传递到首选项挖掘阶段。如果策略代理决定提出一个明确的问题,模型将根据用户的交互记录推断KG中的哪个关系对用户更重要,然后利用已确定的关系来指导问题的生成。如果策略代理决定提供推荐,则首选项挖掘模块作为推荐者,根据当前对话信念状态b𝑡来确定被推荐的项目,存储用户在对话过程中表示的当前兴趣。在用户向系统生成的响应提供反馈之后,KBQG将决定它应该如何对用户作出反应。如果用户为一个澄清问题提供了显式表达式,KBQG将继续提取用户需求并更新对话信念状态,用于对话策略决策。一旦用户接受推荐,或会话达到最大会话转数时,会话将终止;否则,如果用户在没有达到最大会话回合的情况下拒绝了推荐,我们的KBQG应该返回到提问阶段,生成进一步澄清的问题,以修改推荐结果。

3.1 Conversational Policy Decision

政策决策组件决定在当前对话轮中应执行哪些对话行动。如前所述,现有的以kg为基础的CRSs在培训一名老练的政策代理人以应付各种对话情况方面普遍面临困难。主要原因是,每个对话行动都被定义为一个关于特定属性值的是/否问题(例如,“你喜欢蓝色吗?”),这会导致不必要的决策行动空间。需要训练一个估计模块来估计每个属性值的信息熵,推断出应该选择哪个属性值作为下一个对话动作。然而,当数据集包含大量稀疏属性时,这种估计模块往往不能获得满意的性能,影响了预测的准确性和模型的泛化。此外,它不像在属性类型级别直接询问用户那样有效和自然(例如,“您喜欢哪种颜色?”)。

我们从一开始就通过简化对话行动来解决这个问题。具体来说,KBQG只有两个行动,即询问澄清问题或为用户生成建议。KBQG提出的问题完全基于用户对不同属性类别的关注程度进行定制,这由随后的偏好挖掘组件来实现,这样策略代理就可以专注于在每个会话回合的两个操作之间进行选择。因此,我们设计了一个具有多层感知的政策代理𝜋(·),其表述为:


s_𝑡是对话系统的内部对话状态,它表示𝑡对话的当前上下文,它被定义为

b_𝑡对话信念状态这是一个潜在的用户话语的编码(由4.3节),q_t是一个multi-hot向量表示用户属性类型已经澄清,和c_𝑡向量表示候选项与用户评分符合一个预定义的阈值M的比率。候选项越少,说明推荐系统对推荐结果越有信心。

在RL中对策略代理进行训练,以搜索最优会话策略决策。我们采用[13]中建议的深度Q-learning,以便更容易更快地收敛。相应地,在每次对话回合后,根据用户反馈给予强化奖励。凭直觉,策略代理需要在以下情况下不断查询用户:(1)捕获的用户首选项很少(即q𝑡包含太多零);或者(2)候选条目太多(即c𝑡占比较大),需要缩小候选条目的范围以保证推荐的准确性。自然地,当收集到足够的首选项信号并且候选项目池很小但专用于所提供的信息时,策略代理将执行推荐操作。回想一下,我们在KG中将每个属性类型定义为一个关系,并且我们在KBQG中设计如下的奖励:(1)r_{𝑡,𝑝},如果用户对查询的关系提供了显式的需求;(2)r_{𝑡,𝑛},如果用户目前不提供查询关系的任何细节;(3)r_{𝑡,𝑎},如果用户接受推荐;(4)r_{𝑡,𝑚},如果用户拒绝推荐或会话达到最大回合没有成功的推荐。RL代理选择其中一个RL奖励作为当前行动的评价奖励𝑟_𝑡。政策代理被训练为在对话期间最大化累积奖励。最后,采用政策梯度法对政策网络进行优化

3.2 KG-based Preference Mining

KBQG中的首选项挖掘模块有两个主要功能。首先,在指导澄清问题的生成时,它推断出KG中对用户最重要的关系,这些关系用于构成问题。其次,在执行推荐时,它负责根据用户偏好生成个性化推荐。不同的用户在网上购物时倾向于关注不同的属性类型,例如有些人更关注价格,而有些人则偏爱特定的品牌。这些用户首选项可以从用户的历史交互中获取。为了更好地解释每个关系对用户决策过程的影响,我们在KBQG中提出了一种偏好挖掘方法。

常规翻译方法用户偏好模型通过学习额外的翻译矢量p从一组潜在的因素对于每一对user-item来说,这样的表示用户u和项i,我们有u + p≈i,如果𝑢喜欢𝑖。翻译向量p作为用户和产品之间的唯一关系,可以解释为用户特定于产品的偏好表示。优化目标是最小化所有正向用户-物品对的𝐿1距离||u + p−i||。然而,这种方法没有考虑交互时用户对属性类型的细粒度偏好,因此不太适合我们为问题生成选择最重要的属性类型的目标。

相应地,我们设计了基于TransH的偏好挖掘模块,该模块假设每个关系都有自己的超平面,用户到商品的偏好驱动转换只有投射到同一个超平面上才有效。因此,在KBQG中,我们提出了基于超平面的偏好平移函数如下:



其中\hat{u}是被对话信念状态b增强的用户嵌入,从而编码了用户在对话中当前的偏好。值得注意的是,为了使这种偏好翻译更适合会话推荐,我们通过增加对话信仰状态的用户嵌入来进一步合并会话上下文。W_𝑢为投影权值。具体来说,它们是从用户以前交互的项目中学习的,在这些项目中,关系(即属性类型)被彻底建模,以扩展它们的语义表达。这也为用户与物品的潜在交互提供了一个明确的解释。\hat{p}_u 是用户的偏好驱动的翻译向量



更高的关注分数意味着用户𝑢在𝑟上搜索下一个要交互的项目时表现出更高的兴趣。所有关系均由高到低排列,并有相应的关注权值。KBQG在每个对话回合中依次选择一个未使用的属性类型来生成澄清性问题。因此,我们从KG中的关系中引入丰富的语义来推断用户最关心的属性类型,从而为会话推荐生成适当的问题。训练采用BPR:

为了有效地保持KG内实体之间的关系,我们用KG中的关系建模损失共同优化推荐损失。根据翻译的假设头实体𝑒_ℎ和尾实体𝑒_𝑡之间的转换距离定义为


最终的训练目标函数为


3.3 Reaction Decision

当用户对系统生成的行动(即澄清问题或建议)给出相应的反馈后,KBQG应该根据用户反馈所携带的信息做出相应的反应。当KBQG没有收集到足够的关于用户兴趣的信息时,用户将对生成的问题作出响应,以澄清她/他对特定属性类型的需求。在这种情况下,我们引入了提出的实体链接算法来准确识别用户回复中出现的描述性短语。这些标识的实体(即详细的属性值)𝑧_1𝑧_2,…,𝑧_t被识别为用户当前对所询问属性类型的显式兴趣,其嵌入用于构成对话信仰状态b_t:


当政策代理决定推荐,KBQG将与推荐搜索数据库中的得分𝑓(𝑢,𝑖|𝑝_𝑢)和输出前𝐾物品(例如,𝐾项目与最低𝑓(𝑢,𝑖,𝑝_𝑢)分数)的建议。用户可以通过接受或拒绝来响应推荐列表。如果用户接受了这个推荐,那么这个对话就被认为是成功的;否则,我们的系统需要进一步收集用户兴趣,并缩小推荐候选对象,直到会话达到最大值𝑇。

3.4 training

整个训练过程包括两部分:(1)基于偏好挖掘的离线训练;(2)对话决策的在线培训。第一部分的训练目标是最小化嵌入用户和她/他的首选项之间的距离。𝑓(𝑢,𝑖|𝑝)得分越低,表示用户对该商品的兴趣越高。对于每个用户,我们将与其交互项目相关的所有实体视为用户的确认偏好,并将其存储在𝑏_𝑡中,以训练推荐者。采用多任务训练方法优化推荐和KG建模损失。

对于在线培训,我们引入一个用户模拟器来与KBQG交互,以培训策略代理。用户模拟器是中使用的模拟器的简化版本。在我们的例子中,用户模拟器基于用户的历史交互提供用户侧信息。对于每个会话,用户的当前首选项是由与KG中用户的交互项相关联的属性类型和值预定义的。KBQG和用户模拟器之间的对话包括两个部分。首先,KBQG在谈话中依次询问如何澄清问题。如果查询的关系与用户对属性类型的偏好相匹配,用户模拟器将使用详细的属性值进行响应。其次,当KBQG向用户提供推荐列表时,如果ground-truth item 𝑖存在,用户模拟器将接受结果。否则,建议将被拒绝。

4 实验

4.1 数据集


对于这两个数据集,我们遵循将用户的显式评分转换为隐式反馈,其中符合预定义阈值的评分被视为积极交互。MovieLens-1M的评级阈值是4,而DBbook2014的评级阈值是1,因为数据稀疏性。对于每个用户,我们也抽样了等量的消极项目来匹配积极的互动

4.2 对比实验


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容