【综述】对话推荐系统中的进展与未来挑战
背景介绍
推荐系统为工业界带来了巨大的收益。大多数推荐系统都是以静态的方式工作,即从用户历史的交互中来推测用户的兴趣爱好从而做出推荐。然而,这样的方式有缺陷,具体来说,两个较重要的问题无法被解答:(1)用户目前具体喜欢什么?(2)用户为什么喜欢一个商品?对话推荐系统(Conversational Recommender Systems,CRSs)的出现,从根本上解决这个问题。其打破了传统静态的工作方式,动态地和用户进行交互,获得用户的实时反馈,进而向用户做出心仪的推荐。此外,借助自然语言的这一工具,CRSs还可以灵活地实现一系列任务,满足用户的各种需求。本文将总结CRSs中的五个任务梳理其难点。最后本文对CRSs未来的科研方向进行了探讨和展望。
论文标题:Advances and Challenges in Conversational Recommender Systems: A Survey
论文链接:https://arxiv.org/abs/2101.09459
论文作者:高崇铭(中国科学技术大学),雷文强(新加坡国立大学),何向南(中国科学技术大学),Maarten de Rijke(荷兰阿姆斯特丹大学),Tat-Seng Chua(新加坡国立大学)
【注】本文根据tutorial [1]深度扩展。
CRSs的定义与架构
图1. CRSs的架构
目前,CRSs还没有主流、统一的 定义。本文将CRS定义为:能通过实时的多轮对话,探出用户的动态喜好,并采取相应措施的推荐系统(“A recommendation system that can elicit the dynamic preferences of users and take actions based on their current needs through real-time multiturn interactions using natural language.”)
其架构可以用三个模块来组成,其中一个用户接口模块(User Interface)负责直接与用户进行交互;一个推荐引擎(Recommender Engine)负责推荐工作;还有一个最为核心的对话策略模块(Conversation Strategy Module)负责统筹整个系统的任务、决定交互的逻辑。本文总结了五个具有挑战的任务和研究方向,分别对应到这三个模块中。
CRSs的定位与作用
1
CRSs与传统推荐系统的区别:
传统推荐系统是静态的:其从用户的历史交互信息中来估计用户偏好。而CRSs是动态地与用户进行交互,在模型有不确定的地方,可以主动咨询用户。故CRSs能解决传统推荐系统做不到的一些事儿。
一方面,传统推荐系统不能准确的估计用户目前具体喜欢什么东西(What exactly does a user like?)这是由于用户的历史记录通常很稀疏,而且充满噪声。举例来说,用户可能做出错误决策,从而购买过一个不喜欢的东西。且用户的喜好是会随着时间改变的。
另一方面,传统推荐系统不能得知为什么用户喜欢一个东西(Why does a user like an item?)举例来说,用户可能由于好奇购买一个东西,可能由于受朋友影响购买一个东西。不同理由下的购买,其喜好动机和程度都是不一样的。
受益于CRSs的交互能力,CRSs能解决传统推荐系统做不到的以上两点内容。系统在不确定用户具体偏好,以及为什么产生该偏好时,直接向用户询问即可。
2
CRSs与交互式推荐系统(Interactive recommender systems)的区别:
交互式推荐系统可以视为CRSs的一种早期雏形,目前仍然有交互式推荐系统的研究。大多数交互式推荐系统,都遵循两个步骤:(1)推荐一个列表(2)收集用户对于该推荐的反馈。然后往复循环这两个步骤。然而这并不是一种好的交互模式。首先,这种交互太单调了,每轮都在循环推荐和收集反馈,很容易让用户失去耐心;其次,一个好的推荐系统应该只在其置信度比较高、信心比较充足的情况下进行推荐;最后,由于商品的数量巨大,用推荐商品的方式来了解用户的兴趣喜好,是低效的。
而CRSs引入了更多的交互模式。例如,其可以主动问用户问题,例如问关于商品属性的问题:“你喜欢什么样颜色的手机?”“你喜欢关于摇滚类乐曲吗?”丰富的交互模式克服了交互式推荐系统的三个问题,用更高效的方式来进行交互,从而快速获得用户的兴趣爱好,在信心比较充足的情况下,才作出推荐。
3
CRSs与任务型对话系统(Task-oriented dialogue systems)的区别:
两者没有本质上的区别,然而两者在目前的实现方式和侧重点上有差异。目前,大多数任务型的对话系统,主要关注点还是自然语言处理的任务,而非检索、推荐任务。任务型对话系统也有一个对话策略(Dialog Policy)模块作为核心模块来进行任务的统筹和规划,但由于其侧重对话本身,其训练和工作方式还是以从人类的文本(训练集)中拟合特定模式为主,同时加入知识图谱等信息作为辅助,来进行监督学习式训练,最终使得系统能生成流畅合理的自然语言以回复用户以完成某一特定任务。
有学者在实验探究中发现,用基于任务型对话系统实现的对话推荐,存在一些问题 [2]。首先系统“生成”的对话,并不是真正意义上的生成,所有词汇、句子都在之前的训练文本中出现过。而且,这种方式产生的推荐,质量并不令人满意。
相比较任务型对话系统,CRSs关注的重点并不在于语言,而是推荐的质量。CRSs的核心任务,还是利用其交互的能力去想方设法获得用户喜好,做出高质量体检。与此同时,CRSs的输入输出可以用基于规则的文本模版来实现。当然,这并不代表语言不重要。随着技术的的发展迭代以及学者们研究方向的重合,不同领域的差距将越来越小。
重要的研究方向
1
基于问题的用户偏好刺探
Question-based User Preference Elicitation
CRSs的一项重要功能,是实时地向用户进行提问,以获得用户的动态偏好。这其中,各式方法可以分为两个类。一是询问商品,即收集用户对推荐商品本身的喜好;二是询问用户对商品属性的偏好,例如“你喜欢摇滚类的音乐吗?”一个基于路径推理的CRS示意图如下。原文表1总结了各种CRSs的工作原理。更多细节请看原文。
图2. 一个基于路径推理的CRS工作示意图(来源 [3])
2
多轮对话推荐策略
Multi-turn Conversational Recommendation Strategies
CRSs的一个核心任务是关注如何问问题,即什么时候问问题,什么时候做推荐。本文总结了集中模式,包括“问一轮推一轮”、“问X轮推一轮”,“问X轮推Y轮”几种方式。其中X和Y可固定或由模型决定。图3给出了一个“问X轮推Y轮”的CRS模型示意图。
除了提问以外,CRSs也可考虑其他多轮对话策略,如加入闲聊以增加趣味,或者加入说服,协商等多样化的功能以进一步引导对话。原文表2总结了CRSs的多轮对话策略。
图3. CRS中的多轮对话策略示意图 (来源 [4])
3
自然语言理解及生成
Natural Language Understanding and Generation
处理用户多样化的输入以及灵活的输出,也是CRSs中的一大挑战。目前的CRSs多数还是以基于提前标注的输入以及基于模版的输出为主,少数CRSs以对话系统的模式出发来考虑直接处理自然语言和生成自然语言。这是因为CRSs的主要目标还是保证推荐的质量,而非语言处理能力。原文表三总结了两个分类下的部分工作。
4
探索与深究之间的权衡
Trade-offs between Exploration and Exploitation (E&E)
探索与深究是推荐系统中一个重要的研究方向,也是处理冷启动用户的一个有效手段。探索意味着去让用户尝试以往没有选择过的商品,而深究则是利用用户之前的喜好继续推荐。前者冒着用户可能不喜欢的风险,但能探索到用户一些额外的喜好;后者则安全保险,但一直陷入在已知的局部偏好中,不去改变。这就如同经典的多臂老虎机问题(Multi-armed Bandit, MAB),如图4,一个赌徒可以选择多个老虎机的摇杆进行下拉。每个摇杆 下拉后的收益期望 是可以根据多次实验估计出来的,但由于实验次数有限,对收益的估计存在不确定性 。若要追求全局最优点,便需要从尝试新摇杆(Exploration)与选择目前已知的高收益摇杆(Exploitation)这两者中不断交替权衡,从而达到长期的高收益。
由于CRSs和交互式推荐系统一样,都可以实时地获得用户的反馈,于是MAB问题以及一系列解决方法都可以应用在CRSs与交互式推荐中。此外,除了经典的MAB算法,Meta learning的方法也可以应用在CRSs中来解决冷启动或者EE问题。原文表4中列举了一些工作。
图4. 多臂老虎机问题
5
模型评测和用户模拟
Evaluation and User Simulation
算法评测是个很重要的问题,在CRSs中,由于有些算法要求文本数据,有些算法要求实时交互数据,故有工作从众包平台采集实时交互的对话数据。而有些工作则另辟蹊径,从已有的推荐数据集中造出用户模拟器(User simulators)来与CRS模型进行实时的交互。原文表5列举了目前CRSs中常用的数据集。
关于CRSs的评测指标。本文将其分为两个层级,第一个层级是每一轮级别的评测,其中值得评测的量包括推荐的质量,指标用推荐中常用的Rating-based指标,如RMSE或者Ranking-based指标,如MAP,NDCG。另一个值得评测的量是文本生成的质量,指标包括BLEU与ROUGE等。第二个层级是对话级别的评测,主要关心的量是对话的平均轮次(Average Turns, AT),在CRS任务中,越早推中用户喜欢的商品越好,故对话的轮次越短越好。另外一个指标是对话在特定轮次的成功率(Success Rate@t, SR@t),该指标越高越好。
由于用户参与的交互通常很慢且难以获取,CRSs的评测依赖用户模拟器。常用的用户模拟策略包括:(1)从历史交互中直接模拟出用户在线的偏好,然而这种方式存在问题:历史交互通常非常稀疏,模拟出的用户无法回答那些空缺值处的喜好。(2)先补齐用户历史交互中的空缺值,用补齐后的交互来模拟用户在线偏好。这种方式潜在的风险是补齐算法难免引入额外偏差。(3)利用用户对商品的在线评论进行模拟。由于用户对商品的评论中包含很多可以反映用户偏好的属性信息,这种模拟方式将带来更全量的信息。(4)从历史的人类对话文本库中模拟出用户,其适用于让CRS系统来模拟训练数据中的模式及语言的模型。
展望未来的可做方向
1
对CRSs的三个模块进行协同优化
CRSs包含三个模块,用户界面、对话策略模块以及推荐引擎。很多CRSs的工作将它们分开进行优化。然而这三个模块在任务上是有交叉的地方,需要考虑对它们考虑协同优化。
2
关注CRSs中的偏差(biases)并进行去偏差(debiasing)
推荐偏差近年来受到研究者们很大关注,原因是观测到的数据中通常存在各式各样的偏差,例如选择性偏差,即用户倾向于选择自己更喜欢的东西进行交互,这就使得没有观测到的东西与观测到的东西有着不一样的喜好分布。因此不能简单地用观测到的东西的分布来估计空缺值。除此之外,观测数据中其他偏差,可参考另外一篇综述 [5]。虽然CRSs的实时交互可以部分缓解这些偏差问题,然而偏差依然会影响推荐结果。故去除CRSs中的偏差是一个有意义的研究方向。
3
设计更智能的对话策略
CRSs最核心的部件是对话策略模块。目前已有工作考虑的策略还比较基础简单。我们可以考虑更加智能的策略,例如将强化学习的最新研究成果应用到CRSs的对话策略中。例如,逆强化学习可以自动的学习回报项,元强化学习可以考虑交互非常稀疏场景。
4
融入额外信息
让CRSs更加智能的一种直接的方法,便是融入更多信息。这些信息可以是商品知识图谱,也可以是多模态的信息,例如声音信息,视觉信息等。处理这些信息的相应算法已经被研究了多年,例如图卷积网络等方法,也可利用起来造福CRSs。
5
开发更好的评测方式以及模拟用户的方法
仅开发算法还不够,好的评测方法如同好的指导老师,能指引CRSs正确的前进方向。故研究CRSs的评测也意义重大。此外,由于CRSs的训练和评测都很依赖模拟用户,研究更加全面更加靠谱的模拟用户也是亟待解决的问题。
更多详情,请看本综述原文
[1] Wenqiang Lei, Xiangnan He, Maarten de Rijke, Tat-Seng Chua. 2020. Conversational Recommendation: Formulation, Methods, and Evaluation. SIGIR‘20 Tutorial.
[2] Dietmar Jannach and Ahtsham Manzoor. 2020. End-to-End Learning for Conversational Recommendation: A Long Way to Go? Proceedings of the 7th Joint Workshop on Interfaces and Human Decision Making for Recommender Systems co-located with 14th ACM Conference on Recommender Systems (RecSys 2020) (2020).
[3] Wenqiang Lei, Gangyi Zhang, Xiangnan He, Yisong Miao, Xiang Wang, Liang Chen, and Tat-Seng Chua. 2020. Interactive Path Reasoning on Graph for Conversational Recommendation. In Proceedings of the 26th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining (KDD ’20). 2073–2083.
[4] Wenqiang Lei, Xiangnan He, Yisong Miao, Qingyun Wu, Richang Hong, Min-Yen Kan, and Tat-Seng Chua. 2020. Estimation-Action-Reflection: Towards Deep Interaction Between Conversational and Recommender Systems. In Proceedings of the 13th International Conference on Web Search and Data Mining (WSDM’20). ACM, 304–312.
[5] Jiawei Chen, Hande Dong, Xiang Wang, Fuli Feng, Meng Wang, and Xiangnan He. 2020. Bias and Debias in Recommender System: A Survey and Future Directions. arXiv preprint arXiv:2010.03240 (2020).
关于作者
高崇铭,中国科学技术大学博士研究生。本科与硕士毕业于电子科技大学计算机专业,致力于信息检索、数据挖掘以及推荐系统的前沿研究。曾获得DASFAA’19(CCF B)最佳论文奖。
雷文强,新加坡国立大学博士后。博士毕业于新加坡国立大学,本科毕业于华东师大,是华东师大极少数三年半拿到学士学位的毕业生。研究兴趣在于自然语言处理以及信息检索,特别是篇章语义,对话系统以及human-in-the-loop技术。在各大顶级会议和期刊发表20余篇,包括国际顶级会议KDD,ACL,MM,EMNLP,AAAI,IJCAI和顶级期刊TOIS等。其中担任通讯作者的论文获得CCFA类会议ACM MM 2020最佳论文奖。他担任2020届新加坡全国自然语言处理会议SSNLP2020的程序委员会共同主席,并长期担任各大CCFA类会议会议的(高级)程序会员会委员以及CCFA类期刊的审稿人。最近,他与信息检索领域几位活跃的学者一起在SIGIR 2020,CCL 2020,CCIR 2020 作了关于题为Conversational Recommendation: Formulation的tutorial。
何向南,中国科学技术大学教授,大数据学院副院长。博士毕业于新加坡国立大学计算机科学专业,致力于信息检索、数据挖掘和机器学习等人工智能领域前沿研究,取得了丰硕的研究成果。在CCF A类会议和期刊发表论文90余篇,谷歌学术引用近9000次,包括国际顶级会议SIGIR、WWW、KDD和顶级期刊TKDE、TOIS、TNNLS等。长期担任这些会议和期刊的审稿人,以及CCIS 2019(云计算与智能系统IEEE国际会议)的程序委员会主席,AI Open期刊编委。研究成果曾获SIGIR 2016最佳论文提名奖、WWW 2018最佳论文提名奖、WWW 2018最佳海报论文奖等,并在多个商业公司的线上系统获得应用,取得积极效果。
Maarten de Rijke,荷兰皇家艺术与科学院院士、荷兰国家人工智能创新中心主任、荷兰阿姆斯特丹大学教授。发表论文900余篇,h因子77,谷歌学术引用近28000次。主要研究领域包括自然语言处理、信息检索、知识挖掘等。多次担任信息检索领域重要会议的程序委员会主席,包括SIGIR, WSDM, WWW, CIKM, ECIR, ICTIR等,同时担任人工智能领域顶级期刊的主编。并于2017年获得代表国际信息检索领域终身成就的 Tony Kent Strix等奖项。
Tat-Seng Chua,新加坡国立大学计算机学院创始院长,清华大学访问教授,新加坡国立大学与清华大学联合研究中心(NExT)主任。h因子90,谷歌学术引用超过33000次。研究方向包括非结构化数据分析,多媒体信息检索,推荐系统与对话系统等。其担任多个国际顶级会议会议的联合主席,包括MM 2005, CIVR 2005, SIGIR 2008以及WebSci 2015等,同时是多个期刊的编委会成员。
责任编辑:杨成