赞
踩
源自:软件学报 作者:赵梦媛 黄晓雯 桑基韬 于剑
推荐系统是一种通过理解用户的兴趣和偏好帮助用户过滤大量无效信息并获取感兴趣的信息或者物品的信息过滤系统. 目前主流的推荐系统主要基于离线的、历史的用户数据, 不断训练和优化线下模型, 继而为在线的用户推荐物品, 这类训练方式主要存在3个问题: 基于稀疏且具有噪声的历史数据估计用户偏好的不可靠估计、对影响用户行为的在线上下文环境因素的忽略和默认用户清楚自身偏好的不可靠假设. 由于对话系统关注于用户的实时反馈数据, 获取用户当前交互的意图, 因此“对话推荐”通过结合对话形式与推荐任务成为解决传统推荐问题的有效手段. 对话推荐将对话系统实时交互的数据获取方式应用到推荐系统中, 采用了与传统推荐系统不同的推荐思路, 通过利用在线交互信息, 引导和捕捉用户当前的偏好兴趣, 并及时进行反馈和更新. 在过去的几年里, 越来越多的研究者开始关注对话推荐系统, 这一方面归功于自然语言处理领域中语音助手以及聊天机器人技术的广泛使用, 另一方面受益于强化学习、知识图谱等技术在推荐策略中的成熟应用. 将对话推荐系统的整体框架进行梳理, 将对话推荐算法研究所使用的数据集进行分类, 同时对评价对话推荐效果的相关指标进行讨论, 重点关注于对话推荐系统中的后台对话策略与推荐逻辑, 对近年来的对话推荐算法进行综述, 最后对对话推荐领域的未来发展方向进行展望.
对话推荐系统 用户建模 人机交互 推荐系统
推荐系统是人工智能的一个重要应用领域, 能够帮助用户在没有明确需求或者环境信息过载时, 在庞大量级的数据中找到契合其偏好的信息. 一直以来, 推荐系统都是工业界和学术界的研究热点, 在各类应用场景下被广泛地讨论和研究. 推荐系统力求为用户提供精确且高效的业务信息(包括但不限于如商品、音乐、电影、新闻、景点等). 从用户角度来看, 用户要得到推荐系统精确且高效的推荐, 就要求推荐系统能够理解用户的兴趣和偏好, 建模完整的用户画像; 从开发者角度来看, 开发者要通过推荐系统实现业务收益, 就要求推荐系统能够引导用户不断发现新的兴趣点, 以实现其用户的长期留存.
目前主流的推荐系统都是基于离线的、历史的用户数据, 不断优化线下的表现, 训练好模型后再为在线用户推荐物品. 这种离线更新的方式使得推荐系统具有内在的弱点, 即难以拟合用户线上的行为, 且用户的实时反馈无法被及时接收, 因此系统难以获取用户在使用推荐系统时当前的意图与兴趣点. 这样的推荐系统具有两个特点: 一是单向, 即系统依靠用户历史数据, 评估用户的兴趣点, 单向地向用户输出推荐物品; 二是静态, 即系统在线上使用时, 推荐模型在与用户建立的会话周期中不会及时更新和学习. 从这两个特点出发, 拓展分析, 可总结出传统单向、静态的推荐系统中存在的3个主要问题.
首先, 推荐系统无法可靠地从历史交互数据中估计出用户的偏好[1, 2]. 历史数据通常具有噪声大、稀疏性等问题, 例如, 当前用户习惯性好评, 历史数据中该用户对所有物品均为五星好评, 推荐系统无法估计出该用户真实兴趣. 并且, 对于只有少量历史数据的新用户, 数据驱动的静态推荐系统更难以建模其偏好[3].
其次, 用户的行为是上下文敏感的, 用户的决策受各种上下文因素影响[4, 5]. 当前系统推荐的目标物品, 不仅与用户的历史数据相关, 很大程度上还取决于当前推荐的上下文环境信息, 例如时间因素: 历史数据显示用户曾经对手机感兴趣, 不代表用户会一直对手机感兴趣, 随着时间迁移和上下文环境变化, 用户兴趣会随之发生变化[6].
再者, 传统推荐系统具有内在假设, 假设用户在开始使用系统时就已经清楚自己的偏好, 推荐系统只需要根据用户历史数据猜测用户的兴趣点. 但这一假设不完全可靠, 用户可能是在决策过程中才产生自己的偏好[7], 即当推荐系统给用户展示了一些他未知的物品选项空间, 用户才意识到自己的偏好[8], 例如电商场景下, 用户看到华为手机出新款, 突然产生购买新款华为手机的兴趣.
即使是现在已有的面向实时推荐的在线推荐系统, 可基于用户当前的行为数据进行实时更新, 其本质上仍是传统推荐的推荐方式, 即系统被动地接受用户侧产生的数据. 随着对话系统(dialogue system)的发展, 对话技术(dialogue technology)为解决传统推荐中存在的问题提供了新的解决思路和方法, 即对话推荐(conversational recommendation)方式. “对话推荐”通过丰富的交互行为, 打破了静态推荐系统中系统与用户之间信息不对称的壁垒, 允许推荐系统在与用户的交互会话中动态捕捉用户偏好. 对话推荐, 一方面, 探索用户当前的兴趣偏好, 引导用户发现自己新的兴趣点, 实现用户的长期留存; 另一方面, 在交互中实时接受用户的反馈, 更新推荐模型的策略, 实现动态更新与学习. 基于对话推荐思想实现的推荐系统被称为对话推荐系统(conversational recommendation system, CRS), CRS是一种以推荐任务为导向去进行多轮用户交互的推荐系统. 近年有大量的研究者关注CRS, 通过研究对话推荐, 致力于提高用户兴趣建模的效率, 用以提升在线推荐的满意度和系统中的用户长期留存率.
CRS由于起源于对话系统, 其与用户的交互形式狭义上为自然语言类型的语音与文字, 但跳出NLP领域, 在更广泛的应用场景(例如电商: 淘宝、Amazon、eBay、Airbnb等; 多媒体平台: MovieLens、LastFM、Tiktok、YouTube等)下考虑, 其交互形式可以是用户在推荐系统中的一切行为, 如在电商场景下, 用户加购、关注物品等行为; 在音乐和视频内容提供商的场景下, 用户播放、快进等行为, 这些用户行为都可被定义为CRS与用户的交互形式. 对话推荐领域的研究工作面向不同的交互形式时, 关注点有所不同, 总体可分为两个方向, 一是关注于对用户交互形式的理解, 包括语音识别、自然语言语义理解等, 该方向与自然语言处理领域的经典研究课题紧密联系; 二是关注于对话策略的设计, 这方向的研究则涉及了更广泛的机器学习与深度学习研究领域, 包括强化学习、知识图谱、图神经网络等. 本文主要侧重于后者, 聚焦对话推荐策略方向的相关工作, 总结国内外对话推荐研究工作中对话推荐算法的特点, 为未来对话推荐实现更智能的推荐和更高效的交互提供研究思路与方向.
本文整体组织结构如下: (1)概述对话推荐的发展历史, 介绍对话推荐的概念和特点(第1节); (2)归纳梳理对话推荐任务的通用数据集和评估标准(第2节); (3)介绍对话推荐系统框架中的3大基本功能模块(第3节); (4)对比分析对话推荐算法的设计思路与实现模型, 基于不同实现技术手段对现有工作进行归纳, 并介绍对话推荐算法的训练方式(第4节); (5)总结对话推荐算法的研究工作中存在的4大问题与挑战(第5节); (6)最后, 对对话推荐的未来研究方向进行展望(第6节).
用户使用推荐系统的过程, 从用户的角度来看, 是一个用户进行决策的过程. 传统推荐系统从用户离线数据中估计用户偏好进行推荐的实现机制, 并不直接支持用户进行在线决策, 且推荐系统处于被动地位. 对此, 对话推荐展现了不同于传统推荐的优越性, CRS以对话交互的形式为用户提供了及时反馈的渠道, 通过对话交互去主动引导用户的决策和捕捉用户的动态偏好.
CRS的雏形早在20世纪70年代晚期就已出现, Rich[9]实现了一个有交互界面的图书管理系统, 该系统通过询问用户问题给用户阅读建议. 后来又有基于接口[10]、基于表单[11, 12]的方式, 用户通过勾选目标物品属性项, 限制物品的推荐结果. 对话推荐的交互推荐形式, 使其天然具有实现用户个性化推荐的优势. 但早期的研究受限于技术水平, 没有太多的技术突破与创新. 近年以来, 一方面, 机器学习方法和深度学习方法的技术突破, 使得对话推荐策略不再依靠启发式的人工规则, 研究者从使用上下文老虎机到尝试使用简单的机器学习模型, 再到设计端到端的深度学习模型, 逐渐实现更智能的CRS. 总之, 技术的成熟应用极大地促进了CRS的性能提升. 另一方面, 自然语言处理技术、语音识别技术以及图像处理技术的日渐成熟, 使得对话推荐可以适应各类应用场景下的各种交互形式, 因此, 具有灵活交互形式的CRS可被广泛应用到各类推荐场景中[13-15], 极强的实用性吸引了越来越多的研究工作关注对话推荐领域的发展与革新. 本节从CRS的定义出发, 介绍对话推荐的特点, 为后文对话推荐算法的梳理奠定基础.
对话推荐系统的交互推荐思路是将传统静态推荐系统与对话系统结合, 在与用户的交互中通过询问用户相关问题动态地更新用户的兴趣偏好, 这种方式可以总结为“system ask user respond (SAUR)”[16]. 因此, 对话推荐系统有如下两种定义.
定义1. 对话推荐系统是以推荐为目标导向的对话系统. 系统通过与用户的在线对话达到捕捉用户兴趣从而推荐物品的目的[17].
定义2. 对话推荐系统是具有多轮交互形式的推荐系统. 交互的形式狭义上为自然语言形式或语音形式, 广义上还包括推荐系统中用户的任何行为数据的形式(如: 点击、浏览、加购、购买、评论等).
在诸多相关文献的论述中, CRS极易与对话系统(dialogue system, DS)及交互推荐系统(interactive recommender systems, IRS)两个研究名词混淆. DS、IRS二者与CRS的概念对比如表1所示. 以下两小节将通过说明CRS与其他两个概念(DS, IRS)的区别和联系, 进一步明确CRS的概念定义和研究内容, 并突出CRS的特点, 明确本文所要综述的对象内容是对话推荐系统, 从而避免读者产生概念上的困惑.
表 1 DS、IRS与CRS的概念对比
对话系统大致可被分为两类: 任务导向型(task-oriented)对话系统和非任务导向型(non-task-oriented)对话系统, 后者也被称为聊天机器人. 任务导向的对话系统旨在帮助用户完成具体的任务, 例如帮助用户找寻商品, 预订酒店餐厅等, 其中一种面向推荐任务的任务导向型对话系统可被看作是以自然语言文字、语音为交互形式的CRS, 该种系统由于在推荐任务中具有很高的商业应用价值, 在近年常被作为单独的研究方向, 并被扩展到更通用的交互形式上. 在早期的诸多研究工作[16, 18, 19]中, 研究者对推荐任务导向的对话系统(recommendation-task-oriented DS)与CRS的区分并不明确, 二者的研究工作常常互有交融.
IRS不同于传统推荐系统将推荐看作一步预测任务(one-step predication task)的思路, 而是将推荐看作一个多步序列决策过程(multi-step decision-making process)[20-23]. 在交互过程的每一步, IRS输出给用户一个交互物品对象, 并接收用户对于该物品的反馈, 接着继续推荐下一个物品, 直到当前用户的序列会话结束. IRS的目标在于优化会话结束前的整个推荐序列的结果, 而CRS的目标有两阶段, 第1阶段是探索会话交互中的用户兴趣, 第2阶段是利用学习到的动态兴趣去提高推荐准确率[24, 25].
可以看出CRS与IRS的研究内容非常相似, 重点都在于交互过程中向用户推荐用户感兴趣的物品, 因此在很多研究者的研究工作中并不对二者进行明确区分, 常常混为一谈. 但二者其实并不完全是同一研究问题, 相比较于DS与CRS的关系, IRS与CRS的关系更为复杂, 所以这里将对二者的区别与联系分别进行说明.
IRS与CRS的区别: 首先, IRS的动作空间仅包含物品, 其通过物品列表与用户进行交互; 而CRS的动作空间有两类, 一类是物品空间, 用于直接推荐, 达到收益的目的, 另一类是物品属性空间, 用于获取用户信息, 达到探索的目的. 可以看出, IRS的动作空间能够更契合一般的推荐应用, 即用户的偏好数据都隐含在交互过的物品列表上, 但推荐系统早期的相关研究已表明, 直接使用物品列表来表示用户偏好的效果欠佳, 原因有两方面: 一是, 询问物品属性的效率更高, 因为用户喜欢或不喜欢一个物品属性可以更显著地减少推荐候选集物品; 二是, 相较于物品属性, 用户对某个物品的正反馈更大程度上是受到当时的环境影响, 某一特定环境下产生的交互物品无法体现用户本身的偏好. 所以, CRS通过物品属性列表来表示用户偏好的方式, 能够更好地获取用户的偏好信息. 再者, 从系统实现优化目标上来看, 二者各有不同的侧重点. IRS的目标是优化推荐序列的总收益, 即优化用户离开会话前的所有推荐行为效果总和, 希望最大化序列推荐的收益并提高用户长期的推荐体验; 而CRS的目标是更快地了解用户当前的兴趣偏好, 提高推荐的效率, 因此在CRS的交互常常在成功推荐1个物品时就结束, 希望提高用户实时的推荐体验.
IRS与CRS的联系: 如果将IRS中交互对象空间由物品泛化到物品属性, CRS与IRS在实现方案与技术上基本一致, 可以认为CRS是一种特殊的IRS. 但从近年发表的相关研究工作数量[26]来看, CRS的研究热度要高于传统的IRS, 原因在于, 相比较只将推荐的物品作为交互对象的IRS, CRS的交互对象更为灵活, 可以适应更多的应用场景与需求, 给研究者更多的创新空间和思路. 因此, 在很多文献中[10, 11, 27-32], 研究者将IRS看作是CRS早期的存在形式, 并更多地从CRS的角度进行讨论.
总的来说, 从CRS的定义, 以及其与DS、IRS的对比中, 可以看出对话推荐的两大特点: 多轮交互、目标导向. 以下两小节将分别说明对话推荐任务的这两大特点的内涵.
传统的推荐系统中, 用户在寻找具有特定属性的物品时, 可以通过主动搜索来进行, 例如, 用户可以搜索“春季的短款夹克”, 其中关键短语“春季”和“短款”是“夹克”的属性. 在这个场景中, 用户自己构造查询, 推荐效果不仅依赖于搜索引擎, 更多是在依赖用户在构造查询方面的专业知识. 传统推荐系统需要用户根据自己的先验知识输入可能的属性选项限制[33-36], 才能够准确地定位到合适的推荐候选项集合, 最终帮助用户找到目标物品. 这种主动搜索方式要求用户熟悉自己想要的每一件物品, 然而在大多数实际情况中, 用户不具备这样的先验条件. 当用户并不熟悉自己想要物品的属性时, 推荐系统被期望能够主动向用户介绍他们可能喜欢的潜在物品, 然而, 传统的推荐系统无法做到这一点, 它只能使用静态的历史记录作为输入, 从而导致了前文中提到的3个存在于传统单向、静态的推荐系统中的主要问题.
对话推荐的“多轮交互”特点可以弥补传统推荐系统中用户主动搜索的不足. 在CRS与用户的实时互动中, CRS可以通过主动向用户提问的行为方式, 向用户展示用户未知的物品属性空间, 并利用用户的反馈信息, 直接了解用户对某些属性的需求和态度, 构建用户兴趣画像, 从而做出正确的推荐. 并且, 当用户对推荐的项目不满意时, CRS也有机会在接下来的交互轮次中调整推荐结果.
总而言之, 由于传统推荐系统没有给用户开放提供反馈的渠道, 它在实际应用中需要阶段性地下线调整, 根据静态的历史数据被动地重新训练或更新模型, 由于庞大的数据量级和复杂的用户行为, 这个过程非常耗时耗力, 还要面临数据过时和噪声干扰的风险. 而对话推荐方式提供了交互渠道, 可以在与用户的交互中时刻微调(fine-tue)用户兴趣画像, 通过持续学习(continual learning)、增量学习(incremental learning)不断契合用户的动态兴趣偏好, 最终实现“成功推荐”的目标.
对话推荐的另一个特点是“目标导向”. 对话推荐要实现的目标任务就是给用户推荐用户感兴趣的物品, 因此, CRS以实现“成功推荐”为最终目标, 进行获取用户偏好信息的交互. CRS与传统推荐系统有同样的“推荐”目标, 但是, 二者在系统的运作与实现上完全不同.
(1)从系统的推荐方式上来看, 传统的推荐系统可以看作是系统单方面向用户输出推荐物品, 即单向推荐(one-direction recommend), 它对于用户当前的反馈没有反应, 更不会实时地更新系统的推荐策略; CRS则注重用户的实时反馈, 不断主动地试探用户兴趣点, 并更新接下来的推荐策略, 即CRS使用交互推荐(interaction recommend)的方式.
(2)从系统的更新方式上来说, 传统推荐系统从用户的历史数据中推断用户的兴趣点, 即使用离线更新策略(offline-update strategy); CRS则是在与用户的交互过程中, 将用户每轮对推荐物品的反馈作为模型更新的重要信息, 即使用在线更新策略(online-update strategy).
本节将根据目前对话推荐研究工作中使用的数据集的特点, 将数据集划分为两大类, 然后基于两类不同的数据集, 对对话推荐的评价指标和评估方式进行梳理和介绍.
正如前文所阐述, 对话推荐的交互形式既可以是语音、自然语言语句, 也可以是更为一般的用户交互行为数据(如点击、浏览、购买等). 因此在对话推荐的研究工作中, 常用的数据集也分为两类: 第1类是研究者将用户交互语音或语句与推荐数据结合, 人工构造的数据集; 第2类是更为一般的推荐系统通用数据集.
两类数据集最显著的区别在于: 交互数据形式和内容不同. 第1类构造数据集的数据形式为语音、自然语言的语句对话, 第2类通用数据集则为用户与物品的交互记录(如0/1点击, 评分等). 在具体场景中, 数据集类型的选择有两方面的考虑, 一方面, 在学术界, 数据集的选择取决于研究者关注的研究内容, 不关注语义理解且只关注对话策略的研究者, 倾向于使用处理过程较为简单的第2类数据集; 另一方面, 在工业界, 数据集的选择则取决于应用场景, 若将CRS应用在语音助手上, 第1类数据集是必要的, 而对于数据多为用户点击行为的推荐应用平台, 第2类数据即可满足其需求.
对于第1类数据集, 不少研究者专门做了相关的构造数据集工作, 为对话推荐领域在理解和生成交互语音或语句方面的研究工作铺垫基础, 相关的开源数据集如表2所示. Facebook Rec是由Dodge等人(2015)[37]发布的一个综合对话数据集, 使用经典的MovieLens评分数据集构建自然语言模板. ReDiaL是Li等人(2018)[17]创建的一个包含人与人之间对话的多轮推荐对话数据集, 结合了社交聊天和推荐对话. CMU DoG是Zhou等人(2018)[38]挖掘基于维基百科文章的两种电影领域的对话场景来构造的数据集. 与CMU DoG同年, IIT DoG由Moghe等人(2018)[39]构造, 同样为电影领域的数据集. Wizard-of-wiki是Dinan等人(2019)[40]基于维基百科主题收集整理的多域多回合对话推荐数据集. GoRecDial是Kang等人(2019)[41]收集的一个目标驱动的推荐对话数据集. OpenDialKG是Moon等人(2019)[42]贡献的数据集, 其中融合了对话推荐语料库与知识图谱(knowledge graph, KG), 应用到具体任务上时, 主要是通过遍历知识图谱Freebase对对话逻辑进行建模. DuConv是Wu等人(2019)[43]提供的中文对话数据集, 数据集对话中的一方带着明确的目标主动引导对话. KdConv也是一个中文对话数据集, 由Zhou等人(2020)[44]整理提出, 对话数据中包含对多个主题的深入讨论. DuRecDial是Liu等人(2020)[45]通过利用KG拓展对话数据构造出的数据集, 其中包含比现有数据集更多样的对话类型, 具有多域用例和丰富的交互可变性. TG ReDial是Zhou等人(2020)[46]提出的一个电影领域的对话推荐数据集, 包含1万个完整的对话和近13万条语句, 加入了话题线索以引导用户至推荐场景, 实现语义的自然转移, 并且采用半自动的构建方式, 保留了用户真实的个性化信息(如交互历史、偏好主题), 使得人工标注过程更加合理和可控. MGConvRex是Xu等人(2020) [47]建立的一个记忆图(memory graph, MG)会话推荐平行语料库, 基于真实场景下大规模用户的MG, 语料库包含了7千多条角色扮演对话, 并具有不相交的用户训练集与测试集. INSPIRED是Hayati等人(2020)[48]提出的一个包含1001条人类对话的数据集, 不同于其他数据集, 其中还包含了评估成功推荐的方式.
表 2 对话推荐数据集(第1类构造数据集)
对话推荐研究使用的第2类数据集为常见的传统推荐数据集, 近年来越来越多的对话推荐研究工作使用第2类更为通用的推荐数据集, 表3列举了部分第2类通用的推荐数据集. MovieLens是由明尼苏达大学的GroupLens实验室于1997年从MovieLens电影网站上收集并公开, 包含用户评分、电影属性等; LastFM是2011年HetRec会议发布的音乐推荐数据集, 来源于英国的音乐社Last.fm, 包含用户的听歌记录、用户属性等; Jester是一个用户对笑话的评分数据集, 由加州大学伯克利分校的Ken Goldberg等人于2001年发布; Book-Crossings是Cai-Nicolas Ziegler等人从图书网站bookcrossing.com上收集整理的图书评分公开数据集; Wikipedia是一个基于维基百科的大型数据集, 该数据集并非为推荐任务专门设计, 在推荐任务中使用时需要额外的内容提取工作; OpenStreetMap是一个类似于Wikipedia的公开地理数据集, 包含地理位置、POI等数据; Flixster电影推荐数据集来源于美国社交电影网站flixster.com, 包含电影票房信息、用户间的朋友关系等数据; CiaoDVD的数据为2013年从英国DVD网站dvd.ciao.co.uk上收集的DVD类别数据; Yelp是由美国点评网站Yelp公开的内部数据集, 现已成为通用数据集, 包含用户点评数据、商家属性等; AmazonReviews由康奈尔大学于2013年发布, 包含Amazon购物网站上各品类产品的用户购买、评分等行为数据; Douban是来源于豆瓣网站的一个匿名的电影数据集, 包含用户评分、电影属性等数据; Epinions是于2011年5月发布的商品评分数据集, 除用户的评分数据外, 还包含用户的社交关系.
表 3 对话推荐数据集(第2类通用的推荐数据集)
在两类不同类型数据集的应用场景下, 对话推荐的评价指标也不相同, 目前尚没有统一且成熟的评价指标体系来评价对话推荐系统的功能. 如表4所示, 在对话推荐相关的研究工作中, 研究者由于研究的出发点和关注的角度不同, 往往在实验中使用不同的评价指标, 从其关注的某几个方面评价对话推荐的效果. 例如, 在基于人类对话语料的对话推荐研究工作中, 研究者关注端到端的自然语言对话功能[17, 45, 49, 50]和深度语言模型[46], 使用BLEU、ROUGE、METEOR等得分来评价系统交互中的反馈是否准确和流畅[51, 52]; 另一些研究工作中, 研究者关注对话推荐中交互策略模型的设计, 则使用推荐成功率(success rate, SR)来评价推荐的准确率[19, 53], 以及使用平均对话轮次(average turns, AT)来评价对话推荐的系统交互效率[19, 45, 53].
表 4 对话推荐研究中常用的评价指标
本节根据各类指标的评估内容和角度, 把目前对话推荐任务的相关评价指标分为3类: (1)评价对话推荐的语言质量的指标; (2)评价对话推荐的推荐性能的指标; (3)评价对话推荐的系统效率的指标.
使用第1类数据集的对话推荐研究工作中, CRS通过自然语言形式与用户进行交互, 因此评价生成的交互语句的质量是非常必要的. 研究者常常使用文本生成领域(text generation)的评价指标来评价对话推荐中语言模型生成的交互语句的质量, 例如, 使用BLEU (bilingual evaluation understudy)[54]衡量CRS生成的词或n-gram词与ground-truth词的精确率(precision), 即CRS生成的词语中有多少词出现在ground-truth参考话语中; 使用ROUGE (recall-oriented understudy for gisting evaluation)[55]衡量召回率(recall), 即在ground-truth的语句中有多少单词或n-gram出现在CRS生成的话语中.
另外, 由于CRS生成交互语句的最终目标是为了在交互过程中获取用户偏好信息, 因此生成的语句被期望能够包含有效的用户偏好词[17, 56, 57], 所以仅使用BLUE、ROUGE等指标来评价生成语句的质量, 是与对话推荐的最终目标有偏差的. 但目前的研究工作对于这方面的考量和研究没有非常深入和全面, 相关评价指标值得研究者未来更多的关注.
对话推荐的推荐表现, 多使用传统推荐领域的评价指标来评价, 评价指标有两类: 一是基于用户评分[58]的评价指标, 如MSE (mean squared error)和RMSE (root mean squared error)等, 通过量化推荐物品的模型得分与用户真实评分之间的差值来评价, 差异越小, 说明推荐模型表现越好; 二是基于排序顺序[59]的评价指标, 如Hits, Precision, Recall, F1-score, MRR (mean reciprocal rank), MAP (mean average precision)和NDCG (normalized discounted cumulative gain)等, 用户评分高或者有正反馈的物品在推荐列表中的排序越靠前, 说明推荐模型表现越好.
在评价对话推荐中推荐模型的表现时, 存在的最大问题是, 这些推荐系统的常用评价指标都是将系统的推荐结果与用户已有的行为数据对比, 但用户的行为数据相对于物品空间是稀疏的, 用户未被标记某物品为正样本, 不代表用户对其不感兴趣, 可能是该物品受制于资源或曝光机会而未被用户接触[60, 61]. 因此, 在对话推荐中使用这类推荐评价指标可能会造成CRS即使成功推荐出用户当前最感兴趣的物品, 会因为该物品没有出现在用户的历史数据中, 而被评价表现不佳. 总而言之, 使用传统推荐中的评价指标来评价对话推荐会将评价偏差(evaluation bias)[60, 62]引入到CRS中. 对话推荐不同于传统静态推荐的最重要特点就是实时交互, 即根据用户的在线反馈获取当前用户偏好, 这个特点使其本身天然具有避免偏差的潜力. 近年, 研究者也逐渐地意识到, 仅使用这类通用的推荐评价指标来评价对话推荐的推荐效果是片面的, 并尝试提出可以评价CRS的整体推荐效果与交互效果的评价指标, 接下来的小节将对这些指标进行介绍.
CRS的整体功能表现体现在两个方面, 一是推荐的准确程度, 二是用户偏好获取的速度. 很显然, 在一定的交互资源限制下, 同样的交互轮次, 实现成功推荐的概率越高, 说明CRS的推荐功能更强大, 是CRS高效性的体现之一. 因此, 研究者会使用固定交互轮次T下的推荐成功率SR@T来整体评价对话推荐的系统效率[19, 53]. 另一方面, 在实现准确推荐的前提下, 与用户的交互轮次越少, 给用户带来的负担就越小, 说明系统获取用户偏好的速度就越快, 是CRS高效性的体现之二. 因此, 研究者使用平均对话轮次AT来评价系统的交互效率[19, 45, 53], 实现一次成功推荐使用的平均对话轮次越少, 说明CRS的交互效率越高. 总体看, 目前可以比较全面的评价CRS的评价指标比较少, 未来有待研究者们提出更多合理且全面的对话推荐评价指标.
除了选择合适的评价指标对对话推荐的效果进行评价外, 基于“多轮交互”的对话推荐还需要选择合适的评估方式, 目前对话推荐的评估方式主要分为在线用户交互的评估方式和用户模拟器的评估方式.
在线用户评估方式是让CRS上线与真实的用户交互, 在真实的环境中验证系统的效果, 评估的结果真实且可信. 虽然在线用户评估的结果很优越, 但实际的研究工作大多没有条件进行线上用户评估, 在线用户的评估方式很难被广泛使用. 原因有二: 一是使用在线用户进行训练和评估, 不成熟的CRS会损害用户体验, 造成实际的损失; 二是在线用户评估数据的收集和整理需要额外的时间和精力, 投入的成本加大. 因此, 在目前的对话推荐相关研究工作中, 更好的方式是构建用户模拟器代替真实的用户, 利用模拟器模拟真实用户和CRS的交互过程.
用户模拟器(user simulator)通过拟合用户的历史数据, 提供对话推荐的交互环境, 为CRS每轮交互的输出动作反馈用户可能的行为. 使用用户模拟器, 使得CRS的交互训练更加快捷, 也极大降低了对话推荐模型的评估成本. 但该方式也有明显的缺点, 即用户模拟器无法完全正确地预测在线用户的真实反馈. 此外, 使用模拟器代表真实用户与CRS交互时, 可能会将模拟器自身的误差传递给CRS, 造成CRS虚假有效, 当CRS真正上线交互真实用户时, 推荐效率和准确率不能够达到预期. 因此, 如何衡量用户模拟器与真实用户环境的误差, 并对此提出合理的解决方法, 也是未来对话推荐研究工作的挑战.
本节将对CRS的功能和处理流程进行整体介绍. 如图1所示, 一个标准的CRS框架包含了3大功能模块: 用户意图理解模块、对话策略模块和推荐模块. 从功能模块来看, CRS与DS非常相似, 这进一步说明CRS的核心思路来源于DS.
图 1 对话推荐系统的基本功能框架图
CRS的3个模块有各自的任务, 模块间通过合作实现CRS的“多轮交互”和“推荐任务”. 用户意图理解模块是用户与系统交互的“翻译器”, 将用户的输入(文本、图像、评分、浏览等交互行为)处理成会话的状态表示, 作为对话策略模块的输入, 如果是基于自然语言交互的对话推荐, 该模块还需要生成流畅的自然语言反馈. 对话策略模块是CRS的核心模块, 也是用户意图模块和推荐模块的连接桥梁, 该模块处理和记录用户偏好, 并根据用户当前的交互历史数据, 决定系统当前轮次反馈给用户的交互内容, 引导用户决策, 最终实现符合用户偏好的一次成功推荐. 推荐模块负责建模用户与物品的关系, 在被对话策略模块调用时输出当前轮次下契合该用户偏好的推荐物品列表.
接下来3小节, 分别从这3个功能模块梳理当前研究工作.
用户意图理解模块作为与用户直接进行信息交换的模块, 处理用户数据进行编码表示, 输入到CRS中. 用户意图理解模块的输入数据, 传统的形式是用户的对话文本, 在早年的研究工作中, 这一模块注重对自然语言的处理和理解. 近几年随着CRS的应用推广, 用户意图理解模块的输入可以是多模态数据(multimoda data)和用户行为数据[51, 63]. 这里将用户意图理解模块的研究工作分为两类: 一是对自然语言、语音和图像数据的处理, 二是对广泛用户行为数据的处理.
基于第1类数据集的对话推荐的研究难题之一是如何像人类一样沟通交互, 这个问题的研究落在用户意图理解模块. 基于第1类数据集的CRS的用户意图理解模块的主要功能是处理自然语言、语音和图像, 其中包括理解输入数据和生成输出数据两部分.
(1)理解输入的自然语言、语音和图像
为了理解自然语言、语音和图像中包含的用户偏好, 简单的做法是设计一些预定义的输入标签直接获取输入数据的用户偏好语义信息[53, 64-66]. 复杂一些的研究工作使用深度学习的方法来处理用户输入的文本、语音和图像数据, 例如, 先通过循环神经网络(recurrent neural network, RNN)[17, 51, 52, 67]或卷积神经网络(convolutional neural network, CNN)[51, 63]的方式将当前轮次的会话进行编码, 编码成对话状态向量, 然后模块将获得的用户偏好表示向量填补人工事先定义好的用户兴趣槽(槽值对表示用户当前兴趣偏好)[16, 19, 68], 或者将用户偏好记录到记忆网络(memory network)中[16, 51].
其中基于RNN的处理方式, 主要面向文本和语音的数据形式. 这类方式最流行的模型主要有3种: 层次递归编码器解码器(hierarchical recurrent encoder decoder, HRED)[17, 51, 67]、具有注意力机制的记忆网络[16, 51]和GRU编码器[52].
基于CNN的处理方式, 主要面向图像数据. 研究工作中使用的CNN模型有ResNet [63]、EI-tree [51]等, 通过CNN提取图像的语义特征和语音等其他特征拼接起来, 对对话状态进行编码.
(2)生成输出的自然语言、语音和图像
由于交互形式是自然语言, CRS在该模块除了理解自然语言输入, 还被要求生成人类可理解的、流畅自然的文本或语音反馈数据[51], 引导用户下一轮交互. 为了获取用户的偏好信息, 生成的语句除了有流畅、合理等文本生成的基本要求, 还被要求能够包含尽可能多的用户偏好引导信息. 有的研究工作实现该目标的方式比较简单, 例如, 生成推荐列表[16, 66]后, 按照既定规则将推荐的物品信息直接融合到自然语言模板中[19, 53, 65]. 此外, 一些研究者提出了更为复杂但灵活的端到端的框架, 使CRS能够从原始的自然语言中准确地理解用户的情感和意图, 并生成可读的、流畅的、一致的、有意义的自然语言响应[17, 45, 49, 50, 68].
基于第2类用户行为数据集的对话推荐中, 用户的兴趣偏好由推荐物品的属性组成, 相关研究工作通常直接将用户行为数据处理成用户当前的属性偏好集合[53, 64], 即用户属性偏好集合为物品的属性集合的子集. 基于这类数据的CRS中, 用户意图理解模块的任务是简单且明确的. 在处理输入数据方面, 常见的反馈为二值反馈(binary response), 即接受或者拒绝, 该模块只需要将正负信号传递给其他模块即可; 在输出数据方面, 当CRS的对话策略选择下一轮继续获取用户偏好信息时, 该模块输出策略关注的偏好属性值, 而当CRS的对话策略选择向用户推荐物品时, 该模块输出推荐的物品.
推荐系统存在的一个问题是每个用户只能与整个数据集中的少数项目进行交互, 有正反馈的数据是非常稀疏的, 特别是对于没有或只有少量的交互数据的冷启动用户(cold-start users), 这个问题格外严重. 除历史数据稀疏问题外, 推荐系统由于拥有庞大的候选物品空间, 大量的用户可能感兴趣的物品难有机会被用户看到. 面对推荐系统的这些问题, CRS的“多轮交互”特点使得对话推荐相比于传统推荐具有明显的优越性. 对话推荐的交互性使得用户有机会及时表达自己的意图, 以获得更好的个性化推荐服务, 并且由于具有交互性, 对话推荐还可以主动探索用户看不见的物品空间, 从而引导用户发掘自己的偏好. 然而对话推荐的探索过程是有代价的, 与利用已经获得的偏好推荐高置信度的物品相比, 暴露不相关的物品空间的信息可能会伤害用户的偏好, 失去做出准确推荐的机会. 此外, 由于用户与系统互动的时间和精力有限, 一次失败的探索将浪费用户的时间与精力, 可能造成用户的流失. 因此, 追求探索和收益的平衡(exploration and exploitation, E&E)是对话推荐研究中的一个关键问题, 对话策略模块主要解决的问题就是权衡探索与收益, 它是CRS的关键模块.
对话推荐的E&E问题表现为, CRS在交互过程中需要知道当前是需要继续询问用户, 从用户处获取更多信息, 还是已经获取到足够的用户偏好信息, 到达推荐目标物品的时机. 对话策略模块的策略设计, 非常重要且困难, 是一个典型的博弈问题: 首先, 过多的询问确实可以掌握用户更多的偏好信息, 提高推荐的成功率, 但同时也会给用户造成较大的负担, 这与推荐系统减轻用户搜索信息负担的目标初衷相悖, 导致用户在系统决定采取推荐行动前就离开; 但是, 过少的询问, 会造成用户偏好信息的匮乏, 因而系统推荐的准确率过低, 这又与推荐系统提高推荐物品准确率的目标相悖. 因此, 好的对话策略需要智能地平衡对话轮次与推荐准确率两个指标.
该模块的研究工作根据目前研究者所使用的核心策略技术, 主要分成以下几类: 基于人工规则的、基于协同过滤的、基于神经网络的、基于强化学习的、基于元学习的. 基于人工规则的对话策略模块每轮的运作非常简单, 根据人的先验领域知识, 设置对话规则, 例如, 设置限制, 规定固定轮次交互后都要提供一个推荐物品[64], 或者根据置信度推荐前 kk 个物品[16]. 基于神经网络的对话策略模块, 利用神经网络模型输出的动作概率分布决定对话策略[17, 51], 例如, 通过GRU将当前对话的上下文编码成隐状态向量输入, Softmax层输出概率分布[69], 根据概率分布决定是否推荐以及推荐什么物品. 基于强化学习的对话策略模块, 将对话上下文、用户偏好等编码为状态向量, 输入到强化策略网络中, 策略网络基于奖励函数进行训练, 学习对话策略, 输出系统动作向量[19, 52, 53]. 在第4.1节中, 本文将对基于不同模型机制的对话推荐算法进行细致梳理.
推荐模块是CRS中实现推荐功能的模块, 根据已经捕捉到的用户偏好推荐用户当前最感兴趣的目标物品. 大部分的研究工作中, 推荐模块都采用简单的推荐模型, 例如矩阵分解(matrix factorization)[19, 53, 69], 这是因为简单的推荐模型已经能够满足对话推荐系统的推荐需求, 使用过于复杂的推荐模型, 反而会使系统整体复杂度上升, 使对话推荐模型的训练变得困难.
但也有少部分工作中尝试采用复杂的深度神经网络模型, 主要有两大类. 一类是基于自编码器(autoencoder)的模型, 自编码器本身就常被用于推荐系统中, 可以克服冷启动问题(cold-start problem)[70], 例如, Li等人[17]的工作中尝试使用了自编码器网络来训练CRS的推荐模块, 预测在训练集中未观察到的用户对物品的评分. 另一类是基于图卷积神经网络(graph convolutional networks, GCN)的模型, 图卷积神经网络面向应用场景中的图结构数据, 如社交网络或推荐项目关系[71], 通过卷积操作, 同时考虑节点的属性以及邻居节点的属性, 让模型学习到节点更好的局部表示, 从而提高基于图结构数据的模型性能[72], 例如, Liao等人[67]在构建旅游内容的CRS时, 将酒店、餐厅和其他旅游设施连接起来构建图结构数据, 使用GCN模型编码旅游设施之间的结构关系, 为旅行的用户提供更好的服务; Chen等人[49]引入知识图谱中的用户偏好信息到CRS框架中, 通过GCN端到端的学习来提高推荐性能; Zhou等人[50]也引入了外部的知识图谱, 通过GCN得到实体表征和词表征, 从而利用互信息解决语义鸿沟问题, 提高CRS推荐准确率.
对话策略模块是CRS中最核心的模块, 如第3.2节所总结的, 对话推荐的最大挑战就是平衡探索与收益的E&E问题. 研究对话推荐算法主要研究内容为设计算法去输出最佳交互策略, 以快速减小用户兴趣的不确定性, 并实现对于当前用户的“成功推荐”. 研究内容体现出了对话推荐的两大特点(“多轮交互”与“目标导向”), 对话推荐算法的设计是实现高质量CRS的关键点. 本章将详细阐述对话推荐算法的设计工作, 总结目前的研究工作的思路和技术.
对话推荐算法的研究工作, 如表5 所列举, 每个研究工作在模型的设计和技术的使用上都各有特点. 本节分为5小节, 分类梳理.
表 5 对话推荐算法的研究工作总结
对话推荐的早期研究中, 研究者试图通过设计直接的人工逻辑和规则减小用户兴趣画像的不确定性和推荐的物品候选集大小. 这种基于人工规则的对话推荐算法, 在早期的文献中被称为Critiquing-based方法. Critiquing-based方法是基于启发式策略获取用户对属性的偏好信息[27-29, 75], 启发式策略主要形式为接受用户对物品属性值的要求来限制候选集, 例如, “16 GB”的内存、“13.3英寸”的屏幕大小等, 通过删除属性不满足的物品来重建候选集[11, 27, 32, 76-78]. Critiquing-based方法的优缺点如表6所总结, 早期的Unit Critiques方法仅在一个特征属性上获取用户偏好去约束推荐结果, 后期研究者为克服单个Unit Critiques方法无法获取用户组合偏好的缺点, 提出了组合多个Unit Critiques的Compound Critiques方法, 去获取用户多个物品属性的偏好.
表 6 基于人工规则的对话推荐算法的优缺点
协同过滤(collaborative filtering, CF)是推荐系统的重要算法, 与早期推荐系统直接基于内容过滤进行推荐不同, 协同过滤分析用户兴趣, 在用户群中找到与指定用户具有相似兴趣的用户群, 综合这些相似用户对某一物品信息的评分, 推测该用户对此物品的喜好程度[79-82]. 在实际应用中, 协同过滤算法虽然简单, 但十分有效, 著名的商业应用案例有Amazon、CDNow、MovieFinder等. 将协同过滤算法思想引入到对话推荐算法中, 一方面简单却有效的CF可以帮助对话推荐提高推荐的准确率, 另一方面, 对话推荐的“多轮交互”特征可以有效弥补CF的冷启动、评分稀疏、物品空间过大等不足.
由于协同过滤与对话推荐性能互补, 不少研究者研究基于协同过滤的对话推荐算法, 例如, Zhao等人[25]研究了交互式协同过滤问题, 提出了扩展概率矩阵分解(PMF)方法[83]的交互式CF框架, 在该框架中, 利用PMF模型来捕获用户和物品特征向量的分布, 在此基础上使用线性bandits算法(Thompson采样和UCB-based算法)选择需要反馈的项目, 从而平衡交互式CF模型的E&E问题, 最后将评分合并回PMF输出; Li等人[17]设计的CRS根据与新用户交互中学习到的新用户偏好, 将新用户与具有相似偏好的老用户相关联, 使用基于用户的协同过滤, 从而减轻冷启动用户的负担. 基于协同过滤的对话推荐算法的优缺点如表7所总结, CF可通过建模历史数据, 解决新用户的冷启动问题, 在短期内实现对话推荐的收益最大化, 但无法仅依赖当前有限的交互数据去建模对话推荐的长期收益.
表 7 基于协同过滤的对话推荐算法的优缺点
前期的对话推荐研究中, 基于人工规则和协同过滤的对话推荐算法虽然具有很好的解释性, 但无法全面地交叉组合用户的偏好表示和挖掘用户的偏好空间. 随着后期神经网络的兴起与广泛应用, 使用神经网络将用户、物品、评分表示为隐向量, 为对话推荐策略生成推荐物品和询问属性打开了新的思路. 研究者开始研究和设计基于神经网络的对话推荐算法, 开始尝试在原来基于人工规则和协同过滤的对话推荐算法中加入神经网络的向量表示. Wu等人[75]提出了一种Critiquing-based的可解释神经协同过滤模型(CE-NCF), 使用神经协同过滤模型(neural collaborative filtering, NCF)[84]编码用户的偏好, NCF是一个端到端的深度学习框架, 框架主要包含Explanation模块和Critiquing模块, 其中Explanation模块将用户对物品的偏好表示为一个潜在的向量, 然后用该隐向量去计算用户对物品的评分以及生成用户对属性的偏好向量, 偏好向量各维度由关键属性值组成, 当用户在实时反馈中表示不喜欢某个属性时, NCF框架的Critiquing模块通过将相应的维数设置为零来更新偏好向量, 从而更好地适应用户当前的偏好. 之后, Luo等人[29]为了解决基于概率生成CE-VNCF模型训练不稳定且低效的问题, 引入生成模型变分自编码器(variational auto-encoder, VAE)辅助原模型, 使得Critiquing-based对话推荐算法能够更快收敛、更有效率地计算、更加稳定.
在近期的对话推荐研究中, 神经网络已经被普遍使用. 除了最简单的多层感知机网络(multi-layer perceptron, MLP), 其他网络模型也被引入到CRS算法设计中, 其中RNN和CNN常被用来建模CRS中会话的序列数据[52, 56, 64]; 图神经网络(graph neural network, GNN)则常被用来建模CRS中的图类型数据[22, 50, 56, 65, 67]. 总之, 如表8所示, 基于神经网络的对话推荐算法的优缺点与神经网络本身特点紧紧关联, 优点点在于算法对复杂数据的强大建模能力和特征组合能力; 而缺点在于算法的高复杂度和不可解释性.
表 8 基于神经网络的对话推荐算法的优缺点
实现高效的对话推荐的一个关键难题就是E&E问题, 对话推荐可以利用系统已经获取的用户偏好信息, 输出当前的最佳推荐选项, 这是收益(exploitation); 也可以冒着用户交互负担过重导致满意率下降的风险, 选择与用户继续交互关于用户偏好信息的未知选项, 这是探索(exploration). 传统推荐系统在处理只有很少或没有历史数据的冷启动用户时, 面临的也是E&E难题, 研究者常常使用多臂老虎机算法(multi armed bandit, MAB)来解决推荐系统的冷启动问题. 面对对话推荐中同样的E&E问题, 研究者类比传统推荐, 将MAB算法应用到对话推荐中[21, 85, 86], 使用如GLM-UCB和Thompson采样[85, 87]等探索策略尝试达到对话推荐中合理的E&E平衡. 为了实现长期收益最大化, CRS可能会做出短期牺牲, 在E&E的早期阶段, 进行的探索可能会失败, 但失败的经验也警示了模型在未来不要太频繁地采取这种探索行动. 从整体效果来看, 解决E&E平衡问题不仅可以改善推荐中的冷启动场景, 同时可以提高推荐系统中面向任何用户(包括了冷启动用户和非冷启动用户)的推荐性能.
基于MAB的对话推荐算法中, 用户偏好通常由一个线性函数来建模, 该函数通过适当的探索与收益折中来不断学习. 然而, 这些基于MAB的对话推荐算法预先假设在推荐过程中用户偏好保持不变, 为了达到可证明的下限, 算法在最坏的情况下优化对话推荐的策略, 因而倾向于过度悲观的策略, 无法实现CRS最优的整体性能. 由于基于MBA的模型未对用户偏好的动态变化进行建模[25], 而对话推荐的主要特点为获取用户偏好可能的动态变化, 因此MAB算法无法满足对话推荐的要求. 此外, 基于MAB的对话推荐算法难以计算非线性的模型, 这极大地限制了深度神经网络模型在CRS中的应用[84, 88].
近年来, 强化学习(reinforcement learning, RL)因其对复杂环境优秀的建模潜力而被许多交互式推荐模型所采用, 且应用了深度网络模型的深度强化学习(deep reinforcement learning, DRL)更展现出在动态环境下进行决策和长期规划的巨大潜力, 一些研究者开始将DRL算法引入对话推荐算法设计中[23,24,89-91].
RL中有模型无关的强化学习方法(model-free RL)和基于模型的强化学习方法(model-based RL). 模型无关的RL如图2(a)所示, 策略网络直接从与环境交互的数据中学习策略, 而基于模型的RL如图2(b)所示, 常被应用在有显式规则的世界模型(world model)的场景中, 如国际象棋、电子游戏等, 两类RL框架下的常用算法如图3所列举. 在对话推荐领域的研究工作中, Mahmood等人[92]首先提出在交互式推荐中使用基于模型的RL, 使用了动态规划进行策略的迭代. 但基于模型RL所依赖的显式规则在推荐任务中并不存在, 即推荐系统中无固定的推荐规则使每种推荐行为有固定的收益, 于是后来又有更多的研究工作使用如DQN (deep q-network)[24]、DDPG (deep deterministicpolicy gradient)[89]等模型无关的RL框架来处理对话推荐任务, 其中具有代表性的研究工作是Sun等人[19]提出的一种会话推荐模型(CRM)和后续Lei等人[53]提出的EAR框架. CRM使用了面向任务的对话系统的体系结构, 利用对话状态跟踪潜在向量空间, 潜在向量表示对话的当前状态和用户迄今为止的偏好, 深度策略网络根据输入的潜在向量决定是推荐一个商品还是继续询问用户偏好, 并通过策略梯度法调整对话策略, 更新潜在向量空间, 这些更新类似于面向任务的DS都是短期的; EAR框架则提出使用交叉熵信息、历史反馈信息、对话轮次信息等构造状态向量, 作为策略网络的输入, 使得策略模型能够更好地适应动态环境, 学习到更加灵活的对话策略.
图 2 基于模型与模型无关的强化学习示意图
由于强化模型对于环境信息的依赖, 在对话推荐中合理引入更多的上下文信息, 能够帮助强化策略网络模型学习到更加智能、有效的策略. 这样的研究思路下, 知识图谱(knowledge graph, KG)作为可以承载物品、用户、物品属性之间结构关系的数据形式, 自然而然可以为学习对话推荐策略提供帮助. 此外, 传统推荐算法研究的发展路线中, 基于知识图谱的推荐系统是极具潜力的研究方向, 对于同是面向“推荐”任务的对话推荐, 引入知识图谱到对话推荐算法框架中对对话推荐的研究也具有重大意义. 知识图谱的引入, 一方面使得DRL中不可解释的潜在向量具有解释性; 另一方面, 丰富了交互中的上下文信息, 提高了模型的置信度. 根据图谱在强化对话推荐算法中的应用方式, 这里将基于强化学习的对话推荐算法的相关研究工作分为基于知识增强的强化对话推荐算法和基于图推理的强化对话推荐算法.
图 3 常用的强化学习算法
(1)基于知识增强的强化对话推荐算法
目前将开源的知识库(如DBpedia, NELL, Microsoft Satori等)应用到传统推荐中的工作已经非常成熟[93-96], 对话推荐虽然能够解决传统推荐中的一些问题, 但也存在与传统推荐相同的难以解决的问题, 如数据稀疏、缺乏可解释性等. 目前相关研究工作中[97], 引入知识主要有以下3点作用: 1)一定程度上解决数据稀疏问题, 通过关注数据的结构特征, 丰富实体表征的信息, 学习有效的用户偏好特征, 研究者应用图神经网络(graph neural network, GNN)学习物品、属性的高质量向量表示, 表征的语义信息能帮助端到端的CRS生成合适的推荐物品与交互属性, 此外, 近年图卷积网络及其变体也被广泛作为将异构图引入到对话推荐中的技术手段[47, 50, 98, 99], 提高对话推荐的系统性能; 2)通过基于知识的剪枝方式和注意力机制, 减小推荐候选集, 易于模型训练, 一定程度上减轻了强化对话推荐算法动作空间过大的问题. 例如, 在Zhou等人的工作[22]中, 通过图谱来筛选候选集, 极大地减小了强化推荐的动作空间; 3)增加推荐的可解释性, 也更好地增强了对话推荐显式地引导用户交互的特点和优势.
(2)基于图推理的强化对话推荐算法
在Misu等人的工作中[100], 用户记忆(也可称为知识)被表示为一个概率状态, 该状态具有固定的马尔可夫概率模型层次结构, 可预测对话动作, 然而该模型在编码更丰富且更细粒度的知识以及积累用户的新信息两方面都缺乏灵活性. 同时, 后续研究工作中, 研究者尝试使用更灵活的图推理(graph reasoning)方法, 例如, Xu等人[47]结合实时的更新信息与历史数据, 构造用户记忆网络积累用户偏好, 通过在图上进行图推理, 预测用户当前和未来兴趣; Lei等人[100]也将图推理与CRS结合起来, 将用户交互数据与物品属性数据构建成异构图, 将用户交互的过程建模成图上的路径游走的过程, 通过在图上游走和推理的方式选择具体的属性节点和物品节点, 而策略网络只需要输出询问(ASK)与推荐(REC)两个动作, 使得策略网络的训练变得更加容易. 基于图推理的强化对话推荐算法, 一方面通过显式图谱路径推理, 增加了对话推荐的可解释性; 另一方面通过增加图的信息辅助, 减小了对话推荐的动作搜索空间.
总结基于强化学习的对话推荐算法的优缺点如表9所示, 优点集中在对话推荐中E&E问题的解决, 这正是强化学习框架在近年的对话推荐研究中广为使用的重要原因, 而缺点多为强化学习框架的常见应用难点, 如决策空间大、环境建模难等.
表 9 基于强化学习的对话推荐算法的优缺点
前文反复提到了对话推荐算法中关键的E&E问题, 除了多臂老虎机算法和强化学习算法外, 还有研究者尝试使用元学习(meta-learning)平衡E&E, 核心思想是“学习如何学习一个推荐模型”, 将针对不同用户的个性化推荐视为不同的任务, 通过少量的支持集数据(support set), 快速适应用户的偏好. 将元学习应用到对话推荐算法中是个值得研究的思路, 目标是学习一种学习算法, 该算法将用户的历史交互作为输入, 并输出一个可应用于新用户的模型, 该输出模型也就是学习到的策略函数, 元学习的思路解决了人工设计复杂的探索策略的困难. 目前基于元学习的对话推荐算法工作已取得较为显著的成果, 例如, Zou等人[73]将的工作遵循了元强化学习(meta-reinforcement learning, MRL)[101]的思想, 提出了一个神经交互协同过滤(neural interactive collaborative filtering, NICF)框架, 将交互式协同过滤视为一个元学习问题, 使用Q-Learning[102]来学习推荐策略, 探索策略使用了epsilon-greedy贪心算法, 即模型以 1−ϵ 的概率选择Q值最大的项目, 以 ϵ 的概率选择随机项目, NICF通过学习一种神经探索策略去自适应地选择推荐方案, 以实现对不同用户的均衡探索和利用, 从而解决元学习中启发式选择的支持集质量不高的问题; 此外, Lee等人[3]提出模型无关元学习(model agnostic meta-learning, MAML)算法MeLU[103]解决推荐中的冷启动问题, 学习得到的推荐模型可以在微调(fine-tuning)阶段快速适应冷启动用户的偏好, 方法为向冷启动用户询问一些关于特定项目的问题(该工作中被称为“候选证据”), 并将此策略扩展到CRS中, 研究一个动态的、多轮的查询策略来进一步提高对话推荐效果. 目前基于元学习的对话推荐算法的优缺点可被总结为表10.
表 10 基于元学习的对话推荐算法的优缺点
对话推荐算法的实现方法非常多样, 但对话推荐算法的训练方式与具体实现方法无关, 如图4所示, 大体分为3类: 模型无关(model-free)、基于模型(model-based)、人参与回环(human-in-loop). 对话推荐算法的模型训练方式的不同, 主要取决于模型训练过程中交互数据的获取与组织方式的不同. 模型无关的训练方式直接使用用户的历史行为数据, 训练数据均在历史数据中有记录; 基于模型的训练方式使用用户模拟器拟合用户历史数据, 训练数据由用户模拟器生成, 在原始的历史数据中不一定存在对应记录; 人参与回环的训练方式除使用用户模拟器生成训练数据外, 其部分关键性的训练数据来自真实人类的干预. 对于这3类训练方式, 以下将以基于强化学习的对话推荐算法为例进行具体说明.
图 4 对话推荐算法的3种模型训练方式
对话推荐中模型无关的训练方式, 如图4(a)所示, 是指对话推荐算法在交互训练中直接从大量的弱监督数据中学习规则与经验. 研究者通常是将数据直接喂给对话推荐算法, 整个训练过程独立于训练数据的环境, 不依赖于世界模型的环境信息, 可类比RL中的模型无关的算法训练流程, 因此这类方式称为模型无关的对话推荐训练方式.
与模型无关的训练方式完全不同, 基于模型的对话推荐训练方式, 类似基于模型的RL算法训练方式, 在与环境的交互训练过程中, 模型依赖于世界模型反馈的环境信息学习状态与奖励的转移概率. 因此, 研究者需要预先训练或构造用户模拟器, 使用用户模拟器作为对话推荐算法的交互环境, 模型的训练效果高度依赖用户模拟器的反馈, 因此称为基于模型的训练方式.
如图4(b)所示, 用户模拟器模拟用户的反馈, 与CRS进行交互, 为对话推荐算法进行强化学习训练提供足够的交互数据. 由于CRS与用户模拟器的交互训练过程中产生了大量的新数据, 因此基于模型的训练方式比模型无关的方式更有效率, 也减轻了与真实环境交互的训练成本. 由于基于模型的训练方式可以有效降低人工训练的成本, 工业界中一直广泛地研究与应用这类训练方式[104]. 虽然基于模型的训练方式更有效率且更低成本, 但这个方式同时存在隐患, 即它的训练效果高度依赖于用户模拟器的质量, 低质量或者不合适的用户模拟器会忽略数据中的重要特征或者是增大数据中的噪声, 造成对话推荐算法无法学习到正确的策略, 最终导致CRS在与真实环境交互中的准确率较低. 因此, 在使用基于模型的训练方式时, 如何衡量并减小真实世界与模拟环境的语义鸿沟, 仍是一个巨大挑战. 目前针对这一问题的研究工作较少, Zhou等人[50]尝试通过互信息最大化的多知识图谱语义融合技术, 解决对话推荐中自然语言的表示和商品级别的用户偏好之间的语义鸿沟, 这个工作或许为解决用户模拟器的不可靠问题提供了一个新思路, 总之, 对话推荐的模拟器问题未来值得更深入的研究.
早期, 谷歌的研究者将人的知识和经验引入到强化学习的训练中[105], 让人标注部分重要数据[106], 从而减轻预训练中的监督学习所造成的协方差漂移问题(covariate shift)[107]. 在如今的对话推荐的研究中, 基于模型的训练方式使得模型的准确率深受模拟器生成的数据质量影响, 基于相同解决思路, 如图4(c)所示, 对话推荐的研究者也通过在对话推荐算法训练中加入人为标注干预的方式[105, 108, 109], 去尝试减小模拟器的偏差和错误, 这样的训练方式为对话推荐算法的人参与回环训练方式.
近年对话推荐算法的研究工作非常丰富, 解决了CRS实现中的部分问题, 但对话推荐中仍有很多问题未被重视或者未被解决, 本章将对对话推荐算法研究中仍存在的问题进行阐述.
目前对话推荐研究工作中, 尚未形成统一的评价指标体系. 根据Jannach等人的结论[56], 人类评估和专家分析对CRS是必要的, 因为目前没有完美的指标可以来评估其所有方面, 对话推荐模型的评价方法的研究还有很长的路要走. 正如第2.2节和第2.3节所述, 评估对话推荐需要实时反馈, 这在现实情况下是高投入低回报的工作[6], 过高的成本使得在线人工评价的方法不具有普适性. 因此, 大多数对话推荐的研究工作采用用户模拟器方法来构建一个训练和评估CRS的环境[110]. 然而, 用户模拟器无法完全代替真实人类的反馈, 模拟器与真实人类的反馈之间存在或大或小的偏差. 对此, 目前的研究工作中实现可靠仿真的可行方法有设计系统的仿真议程(simulation agenda)[110, 111]或者构建密集的用户交互数据等, 如何最大程度模拟用户仍需进一步研究.
此外, 如第2.1节所述, 对话推荐研究工作在不同的数据集上有不同的假设和设置, 评价指标也不尽相同. 近期, Zhou等人[112]尝试实现了一个开源的CRS工具包, 用于评价不同的对话推荐模型, 然而它的实现模型主要基于端到端对话系统[17, 49, 50]或深层语言模型[46], 缺乏基于第2类通用推荐数据集的、具有显示用户偏好的对话推荐算法[53, 65]. 因此, 制定综合且全面的评价指标和评价方法来评估对话推荐的效果仍是个待解决的问题.
对话推荐算法的一大研究难点是平衡用户兴趣的探索(ASK)与推荐行为(REC)带来的收益. 过长的交互能够获取更多用户的信息从而提高推荐准确率, 但同时也为用户带来额外的负担, 使得用户可能在推荐前就流失, 造成极高的用户流失风险. 早期, 研究者通过专家经验制定人工规则, 尽可能地在用户负担与系统准确率中取得平衡, 例如, 设置最高对话轮次、设置一定数量的用户兴趣槽位等, 当满足这些条件时, 系统就进行推荐. 但这样的人工规则受制于专家在领域的先验知识, 在跨领域应用时, CRS的表现会大幅下降, 研究者又将多臂老虎机算法应用到对话推荐算法中, 这一定程度上缓解了E&E平衡问题, 但远达不到令人满意的程度. 后期, 具有探索与收益的强化学习思路被引入进来, 强化学习算法确实是解决平衡用户负担与推荐准确率的有效方法, 但如何设计有效的强化学习模型, 包括但不限于进行函数塑形(reward shaping)等方案, 以实现高效捕捉用户偏好并进行推荐, 仍有待研究者不断尝试和创新. 目前的对话推荐研究工作中, 研究者做了各种尝试, 例如, 以用户交互图谱形式构造用户当前会话数据的图表示; 使用注意力机制高效匹配用户的兴趣点; 引入外部物品属性图谱丰富用户当前兴趣表示的信息等. 这些工作的切入点非常丰富, 但目前仍没有一个公认有效的针对性解决方案. 在探索与收益问题上, 目前的研究工作存在以下3个具体的问题: 1)如何在保证推荐准确率的前提下, 减轻用户的交互负担; 2)如何将会话数据与用户历史数据结合, 推断用户具有时序性特点的偏好; 3)如何利用用户历史兴趣引导用户发掘未来偏好.
数据稀疏性问题一方面是传统推荐中的冷启动问题. 冷启动是推荐中的常见问题, 常被研究者作为一个专门的课题来讨论, 又分为物品冷启动和用户冷启动, 指当有新用户或新物品进入系统中, 由于没有历史交互数据, 导致推荐系统无法学习到物品或用户的特征, 从而影响推荐效果. 对话推荐天然关注于当前会话数据, 所以对于没有历史交互数据的新用户有更好的表现, 一定程度上可以解决用户冷启动问题, 但在物品冷启动问题上没有非常好的解决方式.
数据稀疏性问题另一方面是对话推荐中的用户反馈数据稀疏问题. 用户反馈数据稀疏问题, 一般是指推荐系统中用户的正反馈数据相对于庞大的物品空间是非常稀少的, 而在对话推荐中指向的是, CRS受制于有限的对话轮次, 获取到的用户反馈仅为有限轮次数量的数据. 因此如何从少量的数据中推断用户偏好是对话推荐的一大研究难点, 虽然现在已经有通过强化学习、外部知识图谱等方式来解决该问题的研究工作, 但效果还远达不到预期.
深度强化学习已经被广泛应用到对话推荐中用于学习对话策略, 但标准的强化模型被应用到对话推荐中后, 研究者面临着模型难收敛、有效性低等问题, 而导致对话策略模型低效的原因有以下两个.
1) CRS的环境缺少明确的规则, 从而导致使用强化模型时没有明确的奖励函数以及清晰的动作空间, 这里归结为模型训练方式问题, 这个问题使得对话推荐算法在训练交互中的参数更新有延迟, 造成CRS需要更多的交互轮次来获取到用户的偏好信息.
2)强化对话推荐算法中的强化模型设计完全依赖于研究者的直觉与经验, 与任务不合适的强化模型会导致对话策略模型的训练低效, 甚至是无效, 这里把这个问题归结为模型面向任务的设计问题. 其实, 对于对话推荐算法训练低效问题, 很多研究工作有尝试讨论, 但都由于拘泥于各自工作的场景和数据, 不具有普适性, 例如, 在Su等人的工作[113]中, 作者讨论得出与Q-Learning的强化方法相比, 基于策略的强化方法具有更强的收敛性, 因为基于值的方法在使用函数逼近时经常会无法收敛, 它们在价值空间中进行了优化, 价值计算的细微变化会导致策略空间的巨大变化; 但在Lei等人的工作[65]中, 根据作者的实验, 作者认为Q-Learning的强化模型相对于基于策略的强化模型, 虽然不能得到更好的训练模型, 但在训练中更易收敛. 这样不同的研究结论说明, 对话推荐算法的训练在面对不同数据任务时, 对于训练效率的提高没有可靠的统一方法.
总的来看, 在过去几年中, 对话推荐领域迎来了新的研究热潮, 其中最新的方法依赖于机器学习和深度学习, 特别是强化学习, 预计在未来几年会有更多关于对话推荐的研究工作. 目前, 对话推荐的研究虽然在很多方面已取得了重大进展, 但正如第5节所总结的目前研究工作中的诸多问题, 对话推荐领域中仍有诸多的研究方向值得关注, 本节概述了该领域的一些开放问题和有价值的未来研究方向.
如第3节所述, CRS中的用户意图理解任务、对话策略任务和推荐任务通常在3个模块中分别研究, 这3个部分相互之间共享某些目标和数据[49, 50, 53, 114], 例如, 用户意图理解模块将提取的用户偏好值对输入给推荐模块, 然后将推荐模块生成的推荐集合输入到对话策略模块中, 由对话策略模块决定当前是否推荐给用户. 然而, 3个模块也拥有部分独立的数据, 例如, 用户意图理解模块拥有用户反馈的丰富语义信息, 但推荐模块不会直接知晓[17]. 因此, 在CRS框架下, 3个模块在多回合的交互过程中缺乏协调性[17, 49], 这也是目前很多CRS工作在在线用户评估中表现不理想的原因之一[56], 更理想的方式是实现这3个任务在系统中的协同学习, 以达到共同的对话推荐目标.
由于对话推荐对上下文信息的依赖以及其自身存在的数据稀疏性问题, 引入外界知识能够帮助CRS提高交互推荐的性能. 在对话推荐发展的早期阶段, 只有推荐物品本身被认为是知识[13]. 随后, 研究者又引入了物品的属性信息, 帮助CRS建模用户偏好[64]. 而在近期, 研究者更全面地考虑了知识图谱中丰富的语义信息[42,47, 50, 65] , 例如, Liao等人[51]提出了一种利用外部领域知识改进对话推荐的独特方法, 作者将外部知识域嵌入到记忆网络中, 根据提取的知识域和当前对话语境生成CRS的响应行为; Zhou等人[50]为了更好地理解句子中的概念, 提出在CRS框架中融合两个外部知识图谱, 一个是单词间关系的图谱(包括同义词、反义词等)用于理解句子中关键词的概念, 另一个是物品和物品属性关联的知识图谱. 研究如何将外部知识更好地引入到对话推荐中是对话推荐今后的一个重要研究方向.
除了知识图谱数据外, 多模态数据在对话推荐中的应用也有可观的发展前景, 其可从新的数据维度拓展CRS的交互数据形式. 对此, 可以横向对比DS的研究, 目前多数DS允许输入文本、图像、音频等多种类型数据. 处理多模态交互数据在CRS研究中是一个较大的挑战, 它要求CRS必须能够理解各种类型的输入数据的语义, 例如, 用户想通过一个物品图片找到相似的物品, CRS需要了解该物品图片的各种语义特征, 从而理解用户的语义偏好, 才能找到相似的物品, 而不同类型的数据需要不同的方法进行语义提取, 这就需要CRS的用户意图理解模型进行额外的训练, 使得CRS的训练变得复杂.
目前已有少量对话推荐研究工作利用了图像数据[51, 63, 115, 116], 例如, Liao等人[51]的对话推荐工作中尝试通过EI-tree神经网络以及外部领域知识整合图像语义意义; Yu等人[63]提出了一种视觉对话增强CRS模型, 在他们的工作中, 模型输出推荐物品的图片列表, 而用户给出自然语言形式的反馈. 在这类工作中, 图像通过帮助模型学习物品更具信息量的表征, 使得系统更好地向用户传递信息. 除视觉图像数据外, 其他类型的数据也可以提升对话推荐整体效果, 例如语音数据, 用户的语音反馈包含语气, 可以传达用户的情感以及对某些实体的情感[117]. 在未来, 也许能够看到更多的对话推荐研究工作关注处理多模态数据.
推荐系统在应用中不可避免地会遇到各种类型的偏差(bias)[60], 例如流行度偏差(popularity bias)[118, 119]、一致性偏差(conformity bias)[120, 121]、选择偏差(selection bias, 也被称为积极偏见)[122-126]、曝光偏差(exposure bias)[127]等. 由于CRS引入了用户的交互, 传统推荐系统中有些偏差类型在CRS中是可以被避免的, 例如, 流行度偏差、选择偏差等.
对于流行度偏差, 由于静态推荐系统不确定用户是否会跟随人群并喜欢流行的物品, 受欢迎的产品物品被推荐的概率更高. 但是CRS则不同, 它可以实时查询用户对热门物品的态度, 并在用户给出负面反馈时, 在接下来的推荐中避免推荐这类商品, 因此, 流行度偏差在对话推荐中是可以避免的. 对于选择偏差, 由于推荐系统中用户只会对感兴趣的物品有交互行为, 忽视不喜欢的物品, 这导致训练数据中用户对物品的评分数据的经常性丢失不是随机发生的, 更有可能是用户对不喜欢物品的选择性忽略[125]. 选择偏差极易在训练回路中被放大, 从而损害推荐模型[128, 129], 简单来说, 一个被有偏差数据所污染的推荐模型可能会反复生成相同的商品, 即使用户已经暗示了他们喜欢其他商品. 然而, CRS不仅将用户的历史数据作为信息来源, 更会关注用户在当前交互中所表现出的偏好, 所以可以很大程度上避免依赖有偏差的历史交互数据, 从而避免了选择偏差.
但是, 某些类型的偏差在对话推荐中仍然存在, 例如曝光偏差, 这是由于CRS的交互轮次是有限的, 只能向用户展示部分物品, 用户也只能与其中的小部分物品进行交互. 与传统推荐相同, 在对话推荐中, 这部分有机会曝光给用户的物品一般是由某个模型或某个机制所选择, 所以用户在不知道其他物品存在的情况下, 只能在有限的曝光物品中选择.
目前研究对话推荐中去偏问题的研究工作相对较少, 有Huang等人[122]在用户模拟阶段尝试去除交互推荐的选择偏差; 此外, Chen等人[60]对不同类型的偏差进行了全面的调查, 并梳理了推荐领域的一些去偏方法, 为对话推荐的去偏提供了一些思路.
在现有的CRS研究工作中, 考虑用户反馈来改善系统性能的工作极少, 大多数工作的算法在处理用户的非正反馈方面存在问题, 例如, Lei等人的EAR模型中[53], 通过设计“Reflection”阶段来尝试解决这一问题, 在“Reflection”阶段, 处理用户非正反馈时, 简单地将被拒绝的物品作为负样本, 用来训练和更新下一轮模型参数; 除此之外, Cai等人的工作中[130]则是尝试采用了通过意图分类来学习用户的反馈. 这些处理用户反馈方法非常简单, 也有一定效果, 但是进一步思考后会发现其中的问题, 用户拒绝某个物品可能是因为他们之前通过别的途径购买过, 但这并不意味着他们不喜欢这个物品. 为了改进对用户反馈的粗暴处理, 近期Xu等人在提出的CRS框架FPAN[74]中尝试关注到用户属性级别反馈与物品级别反馈的改进, 基于门控机理[131, 132]对用户交互过程中的偏好表征进行动态微调, 实验效果取得大幅提升.
未来对话推荐研究可考虑更复杂的用户反馈处理策略, 如识别可靠的负样本(negative sample)[133, 134], 或是从因果学习(causal learning)角度分析对话推荐模型, 将用户对物品和属性的偏好解耦合, 学习用户偏好的分离式表征(disentangled representation)[135, 136]等.
目前的对话推荐的研究工作中所考虑的多轮次交互策略仍不够成熟, 部分工作是使用人工制定的规则函数来确定询问属性或做出推荐的时机, 例如, 完成固定轮次的询问后进行推荐[137], 且在基于端到端对话系统或深度神经语言模型的CRS研究中, 甚至没有使用明确的策略来控制多轮次交互[17, 49]. 对于大多数的基于强化学习的对话推荐研究工作, 研究者设计对话推荐模型通过强化策略网络输出CRS的行为, 决定是否询问或推荐[19, 53, 65], 但是在设计强化学习中的状态、行动和奖励方面还有很多改进的空间. 例如, 利用物品之间的关系(如互补性[138]和替代性)[139-141]来规划未来的对话行为, 或考虑为CRS设计更复杂的系统行为, 如回答用户提出的开放领域问题或出于娱乐目的、非任务导向的话题聊天[45, 142]. 此外, 还可以考虑引入其他类型的强化技术到对话推荐的研究工作中, 解决CRS由于使用强化模型导致的难训练等问题[143], 例如, 在某些对话推荐场景中有大量的用户行为模式, 难以定义奖励, 可利用逆强化学习(inverse reinforcement learning, IRL)[144]方法, 通过观察这些场景中的行为数据, 学习一个合适的奖励函数; 对于交互数据稀疏且类型多样的CRS, 可利用元强化学习[101, 145]加速其训练过程, 提高对后续新任务的学习效率.
作为解决目前传统推荐系统中存在问题的有效手段, 对话推荐的研究具有重大意义. 近两年, 在推荐领域和数据挖掘领域的顶级会议与期刊中, 大量的对话推荐相关工作被发表, 可见对话推荐的研究进入蓬勃发展阶段. 本文详细讨论了对话推荐的研究内容与特点, 重点关注对话推荐中的算法设计, 对目前的对话推荐算法进行了归类和总结, 并介绍了对话推荐的评价指标及当前研究的挑战与未来的研究方向. 本文有助于人们理解对话推荐的研究内容、研究难点与研究思路, 引发人们对未来对话推荐研究的思考.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。