原文标题:“可解释推荐系统:知其然,知其所以然”
原文地址:可解释推荐系统:知其然,知其所以然
又是需要学习的地方
近几年,人工智能的可解释性问题受到了来自政府、工业界和学术界的广泛关注。美国国防部先进研究项目局DARPA资助了可解释性人工智能项目XAI(Explainable AI);中国国务院在《新一代人工智能规划》中提出的“实现具备高可解释性、强泛化能力的人工智能”目标,得到了各个公司的积极响应;ICML 2017年的最佳论文《Understanding Black-Box Predictions via Influence Functions》以及NIPS 2017的最佳论文《A Linear-Time Kernel Goodness-of-Fit Test》也和可解释性有着紧密关联。
当深入研究这个新兴且快速发展的领域时,一些尚未清楚的问题也困扰着我们。解释的具体目标是什么?当我们要将解释呈现给普通用户看时,我们的目标是否会有变化?怎么对可解释性的问题进行较为严格的定义?提高机器学习方法(如推荐模型)的可解释性,现有方法的流程是什么样的?未来的发展方向是什么样的?
这些问题既困扰着我们,也带来了研究的乐趣。本文将以推荐系统的解释性为引,和大家分享我们探索到的部分答案,希望能对可解释性研究起到抛砖引玉的作用。
目标及定义
可解释机器学习的目标问题可以从2017年引起广泛关注的机器学习炼金术之争谈起。NIPS 2017年时间检验奖(Test-of-Time Award)获得者Rahimi在发表获奖感言的时候表示,现在的机器学习已经越来越像炼金术了。其实如果只是简单应用炼金术的结果倒也无妨,可是将类似炼金术的机器学习结果用于社交媒体甚至大选是不够严谨和周密的,这也让他感到不安。他的发言引起了很大的关注和争论。他的质疑中提出的两个问题,我们将它们总结为透明度和信任度。
关于可解释机器学习目标,最普遍的看法是提高机器学习方法的透明度。以深度学习方法为例,很多人对深度神经网络进行调试时,都将其看作黑匣子。我们只能看懂黑匣子的输入输出,很难理解黑匣子中的工作原理。这就造成了机器学习模型结果难以预测(能否点石成金?)、难以调试等问题,最终影响对机器学习模型的深入理解及结果的进一步提高。另一个目标是提高人们对于机器学习算法的信任度。在医疗、金融、军事、政治等关键领域,机器学习的结果影响甚大,而可解释机器学习则可以帮助决策者决定是否信任机器学习的结果。
这些目标都和模型密切相关,我们将它们统称为模型可解释性。如果只考虑这类目标,就忽视了解释中非常关键的一环:用户(解释对象)。
当我们着眼于用户,就发现解释不仅要帮助我们提高对模型的理解,它本身的可读性也很关键。如果解释过于复杂,理解起来耗时耗力、需要极强的机器学习知识,这就和增强理解的初衷就背道而驰了。解释本身需要简明扼要、具有洞察力和高可读性,否则和直接打印神经网络每个参数输出没有本质区别。
在一些领域,我们需要把结果呈现给普通用户看。例如推荐一本书给用户,如果能用通俗易懂的解释让用户了解到为什么会推荐这本书给他,可以极大地提高推荐的有效性(帮助用户快速做出是否看书的决策)甚至推荐的说服力(提高用户阅读这本书的可能性)。这对用户和广告商都有重要的应用意义,但是目前学术界对这方面的探讨比较少。我们认为将用户更多地纳入可解释机器学习的考虑范畴,将极大提高可解释方法的应用和研究价值。可读性、有效性、说服力这类目标,我们统称为解释质量。上述讨论的可解释机器学习两大类目标可以总结如下图所示。
可解释机器学习的目标:模型可解释性(模型导向)以及解释质量(用户导向)
这些目标相辅相成,又相互制约。研究表明,提高透明度有助于提升解释的说服力;而透明度和可读性却需要协调平衡,一个面面俱到、帮助人们深入理解模型的解释(透明度高)很可能可读性较低,因为人们需要花长时间理解;有效性旨在帮助用户做最适合他们的决策,这和说服用户接受某种决策也有相互矛盾之处。不同目标如何协调平衡,主要取决于具体的应用场景。
基于上述理解,我们可以尝试对可解释推荐下个定义。一般来说,可解释推荐是在给出推荐结果的同时,给出对结果的支持论据(即解释)。如果需要更细地进行定义,就要考虑具体应用及目标。如果更侧重模型可解释性(模型导向),就要求论据能够帮助用户更好地理解模型行为;如果更注重解释质量中的说服力,则要求论据能够增加用户接受推荐物品的概率;如果更注重解释质量中的有效性,则要求论据能够帮助用户做出更好地决定。
下图是一个偏重解释有效性的例子。和偏重说服力的相比,它不仅会突出餐馆值得一去的原因(担担面好吃),还会指出餐馆的一个缺点(价格偏高),帮助用户做出更好的决定。
可解释推荐偏重解释有效性的例子
可解释推荐流程
下面,我们回归到可解释推荐的场景下,看看现在可解释方法的主要流程是什么样的。这些流程里面主要涉及到推荐中的几个关键要素:用户集合U、物品集合V、被解释的推荐系统f(u,v)、推荐系统的推荐物品集合V',解释模块以及其输出的解释z。
最常见的一种流程是后处理(Post-hoc)。如下图所示,后处理的方法是在推荐结果已经给出后再进行解释,解释内容不受推荐系统f(u,v)的影响,即使换了一个推荐系统,只要给定同一个用户和物品,解释都是一样的。这种方法主要优化的是解释质量(希望生成可读性、有效性高甚至具有说服力的解释),但是模型解释性较差,同时也比较容易实现,适合面向不懂机器学习的普通用户进行解释。主要应用场景包括广告电商平台、新闻、音乐、电影推荐等等。
可解释推荐后处理流程
后处理方法主要研究解释文本生成,分为三种方法:(1)基于规则;(2)基于检索;(3)基于生成式模型。
基于规则是指由解释方法设计者事先给定一些简单模板(例如“N个微博用户都喜欢这个商品”),算法只负责对模板中涉及的内容根据规则进行填充。基于检索的方法是由解释方法设计者规定解释集合,算法负责对解释集合进行排序,挑选排在最靠前的解释输出给用户。例如给用户推荐书时,解释集合规定为用户曾经看过的书,此时解释模板为“看过X的用户都很喜欢这本书”,算法只需要从集合中根据用户的兴趣及书的相似度挑选一本放入解释即可。
基于规则和基于检索的方法在生成解释文本时,都需要模板,难免让用户觉得千篇一律、缺乏惊喜。有没有办法从数据中进行学习,进一步提高解释的多样性和说服力呢?我们组在这方面做了一些研究,发现可以从数据中学习,综合广告商提供的文案和被展示广告的点击率,利用改进的序列生成技术自动写出广告文案,这种方法已经被应用在微软的搜索广告中。下表展示了我们的广告生成结果,可以看到不仅有一些具有说服力的话(如“Apply today & find your perfect job!”),而且生成结果多种多样。
生成式模型自动写出的广告解释文案
可解释推荐的第二种流程是嵌入式(Embedded)。嵌入式的方法把解释模块融入到推荐系统的构建中(如下图所示)。解释模块往往对物品的特征进行选择,将对推荐准确性影响最大的物品挑选出来作为解释。这里面用作解释的物品特征往往是一些词组(“屏幕清晰”)、语句(“这本书自2018年开始在全世界销量5亿本,是历史上销量最高的一本书。”)或者是图片。嵌入式的方法和后处理的相比,具有很高的模型解释性,但是难以确保解释质量,例如,难以保证解释之间的连贯性及一致性,因此比较适合研究人员及算法开发人员。
可解释推荐嵌入式流程
嵌入式方法的大部分解释模块都是浅层的,比如RecSys 2013年的论文《Hidden factors and hidden topics: Understanding rating dimensions with review text》中用到的主题模型,SIGIR 2014年的论文《Explicit factor models for explainable recommendation based on phrase-level sentiment analysis》中用到的矩阵分解,以及WWW 2018年论文《Neural attentional rating regression with review-level explanations》中用到的单层注意力网络。
能否构建一个深层的网络,每一层的特征和它们之间的关联都是可解释的呢?沿着这个思路研究,我们利用Microsoft Concept Graph构建了深度可解释网络的初始结构,并且利用Attentive Multi-View Learning对这个深度可解释网络中每层的参数进行优化,使它不仅可以提高推荐准确性、有用性,还可以通过无监督的方式自动对用户的层次兴趣进行建模。例如,我们可以知道用户是只对寿司(低层特征)感兴趣,还是对日料(高层特征)整体都比较感兴趣。这部分工作我们发表在AAAI 2019论文《Explainable Recommendation Through Attentive Multi-View Learning》中,模型框架如下图所示。
深度可解释推荐模型:每一层的特征、相邻层特征的关系都可读
后处理和嵌入式的流程一个侧重解释质量,一个侧重模型解释性。有没有方法能够更好地兼顾两者呢?在这样的思考下,我们提出了封装式(Wrapper)流程。如下图所示,封装式的方法不需要改变现有的推荐系统,只是将解释模块和推荐系统放在相对平等的位置,解释模块通过与推荐系统交互生成模型相关的解释。这样既可以自由控制解释质量,又可以保证模型解释性,同时也不需要像嵌入式的方法一样针对不同的推荐模型设计不同的解释方法,是一种协调模型解释性与模型质量的很好的方法。
可解释推荐封装式流程
封装式可解释方法是利用增强学习实现的。具体来说,就是利用下图所示的增强学习框架来对任何推荐模型进行解释,可以同时确保模型解释性以及解释质量。在这个框架中,被解释的推荐模型是环境(Environment)中的一部分。框架中有两个智能体 (Couple Agents),其中智能体1负责生成解释,智能体2负责利用解释预测被解释推荐模型的输出(用户对物品的打分)。这两个智能体把需要解释的模型当作黑盒子,通过与环境进行交互得到的奖励(Reward)决定优化方向。
这里,环境给予的奖励由两个方面决定。如果智能体可以利用解释准确预测(模仿)被解释推荐模型的结果,则被奖励,这体现的是对推荐模型的解释能力。如果智能体给出的解释精炼、有连贯性、可读性较高,也会被奖励,这是为了提高解释本身的质量。这样的框架适用于任何推荐模型,同时解释能力和解释质量都较高。这部分工作发表在ICDM 2018的论文《A Reinforcement Learning Framework for Explainable Recommendation》 中。
这个框架是我们在可解释推荐框架方面的一个初步尝试,它目前还有不少需要改进的地方。例如利用目前增强学习方法生成解释有收敛较慢的问题,另外预先设定的奖励机制是否与实际应用中希望的奖励有直接联系也需要进一步研究。接下来,我们会延续这个方向进行探索。
可解释推荐的增强学习框架
机遇与挑战
作为推荐领域被探索得较少的一个方向,可解释推荐的很多方面都值得研究与探索。目前,我们在考虑从下面三个方面进行研究。
利用知识图谱增强算法解释能力
知识图谱作为可读性高的外部知识载体,给提高算法解释能力提供了极大的可能性。例如,我们可以利用知识图谱打通不同媒介之间的关联。现有的可解释推荐所生成的推荐解释往往只局限于以物品为媒介、以用户为媒介或者以特征为媒介中的某一种,对这三类媒介之间的关联挖掘得还不够。我们希望能够利用知识图谱,打通这三类媒介之间的关联,根据具体情况灵活选择其中最合适的媒介对用户进行推荐与解释。在可解释人工智能越来越重要的时代,将知识图谱这类Symbolic Knowledge和深度学习结合,会是极有前景的方向。
普适的可解释推荐框架及评测标准
目前可解释推荐系统大多是针对特定的推荐模型设计,可拓展性较弱,对于新兴的推荐模型,例如含有深度神经网络的复杂、混合模型的解释能力还不够。如果有一个模型无关的可解释推荐框架,就可以避免针对每个推荐系统分别设计解释方案,从而提高方法的可拓展性。
另外,可解释推荐如何评测一直是困扰可解释性研究员的一个难题,线上(online)测试和人工标注条件要求较为苛刻,线下(offline)的评测标准还不够成熟,我们希望在这个方向进一步研究,降低可解释性研究的门槛,建立可解释性的基础理论。
结合生成模型进行对话式推荐
目前的推荐解释往往形式是预先设定、千篇一律的(如预先设定推荐解释是以用户为媒介的)。这样尽管也能根据用户心理举出一些例证,但是在沟通方式上还过于呆板,离拉家常式的推荐还有很大距离。如果能用生成模型让推荐系统“自创”一句通顺甚至高情商的话,就可以在与用户聊天的过程中进行灵活、多变地推荐解释了。我们团队已经与微软小冰合作,在这方面进行了一些尝试,为小冰生成音乐推荐解释,接下来还希望在这方面进行进一步地研究。