APP:我们有很强大的推荐系统,我给你推荐的这个电影你肯定喜欢!
用户:我为什么喜欢这个电影?理由呢?你蒙的吧你?
APP:我当然知道了,我是个性化推荐系统,我有很复杂的算法在运作的。
用户:算法?你还是没有给我理由。我不信任你,我不喜欢用你这个APP。
APP:……
个性化推荐系统是尽可能从海量的数据中挖掘出用户喜欢的内容,满足用户的需求。这样可以节省用户的时间,帮助用户进行过滤,捕捉自己感兴趣的内容。一个好的个性化推荐系统可以吸引更多的用户并为公司创造持久的商业价值。当然前提是用户信任你的推荐系统,将复杂的推荐算法通过简单易懂的文字展示给用户,用户会更加信任给出的推荐。
一、推荐理由是什么
图1推荐系统简单架构
推荐理由,也称作推荐解释,简而言之就是在推荐物品的同时给出理由。如图1所示,在整个推荐系统中,推荐理由一般处于最后一个阶段。针对某个用户,经过召回,过滤,排序阶段,在最终给出推荐结果之前就可以给出各个被推荐出来物品的理由。
随着移动互联网的迅速普及,人们对推荐的要求越来越高,更多的人对于推荐系统推出的物品还希望知道为什么。如图2所示,分别是知乎、淘宝、拼多多、爱奇艺的推荐结果和理由的页面。
在知乎推荐中,“程序猿、佛系青年”是关于作者的一些特征,“超过15W的用户关注了TA”告诉用户该作者发布的内容质量不错;在淘宝推荐中,“相关内容推荐”给出该篇功能文章的相关的一些内容文章,“相关推荐”则是推荐出一些跟该物品相似的物品供用户选择;在拼多多推荐中,“宝宝洗浴护肤品畅销前十”是告知用户该物品是热门物品,大家都在买你也可能想买;在爱奇艺推荐中,“看了《隐藏人物》可能还想看”,“喜欢《断箭(韩国)的人都和它有缘》”,这些推荐理由都是根据用户之前的行为给出的。
从这些典型的案例中我们可以简单感受到,一个好的推荐理由确实可以给到用户正反馈,拉进推荐系统和用户的距离,将黑盒般的推荐算法透明化,达到事半功倍的效果。
二、 为什么需要推荐理由?
在现实生活中,选饭店时候经常有朋友会问哪家好吃,我们在推荐的时候一般都会说:XX餐厅好吃,他家环境好,价格合适,服务员还非常热情。这其实就是生活中的一种给出推荐理由的方式。有了推荐理由的推荐比简单给出一个推荐结果更让用户信服,更愿意去选择它。
如果在互联网的虚拟物品里,我们能够做到跟现实中的推荐一样在推荐物品的时候给出一个合适的推荐理由,就可以提高推荐系统的透明度,提升用户的对推荐系统的信服度,进而提升用户体验。对于APP而言,可以更好的留住用户,进一步扩大产品的盈利。
推荐理由存在的意义,就是为了更好的获取用户对推荐系统的信赖。为了设计一个合理的推荐理由,我们需要考虑如下表1所示的几个设计目标:
目前大多数推荐系统还停留在只关注点击指标,只要给出推荐物品就可以的阶段,但是对于一些专业性比较强的垂直领域行业,比如金融、医药、风控等,给出推荐理由将会成为一种必要,给出专业性的解释,对用户更友好,更方便引导用户。不是所有人都是推荐系统方面的专家,对于用户来说,他不光需要得到推荐结果,还需要知道为什么给他推荐该物品,通过这种方式才能使用户更加认可和信赖该推荐系统。
推荐系统是一个复杂的工程,包含很多功能模块,首先是用户行为获取解析,然后经过从海量物品里召回部分符合个性化需求的物品作为推荐候选集,最后再进行过滤排序,给出最终推荐结果。每一个功能模块都会包含很复杂的算法,在推荐系统中还需要插入一个推荐理由的模块,可想而知要做好不是一件简单的事情。
推荐理由不同于严谨的推荐算法,它可以是有很强的因果关系,也可以是简单的一个理由。比如,因为你曾经看过A电影,看过A电影的大多数都喜欢B电影,所以我给你推荐B电影,这就是一种严谨的因果关系推荐解释;再比如,今天是国庆节,我给你推荐五星红旗,这就是一个比较简单的没有很强因果关系的推荐理由。构建可解释的推荐系统一般有以下几种方式:
1.基于用户的推荐理由,基于用户相似的推荐,建立两个用户的关系,结合用户画像做推荐解释。比如:你的好朋友A也看了这个电影;
2.基于物品的推荐理由,基于物品相似的推荐,建立两个物品的关系,结合物品画像做推荐解释。比如:这个电影是你看过的电影A的同一个导演的作品;
3.基于召回方式的推荐理由,比如热门召回:这个电饭锅是热门前十;
4.基于排序模型的推荐理由,比如LR模型:给出推荐的物品,可以选择权重非0特征中从高到低的几个特征作为推荐理由;
5.其他推荐理由,比如环境相关:你现在在成都,给你推荐XX麻辣小火锅
四 达观推荐系统
一个好的推荐理由会给整个推荐系统画龙点睛,相反一个差的推荐理由反而会拉低整个推荐系统的效果。比如给某个从来没看过电影B的用户推荐电影A,给出的推荐理由:看过电影B的人都喜欢电影A,所以给你推荐电影A。这只会适得其反,降低用户的信任度,久而久之用户就会丧失对该推荐系统的信心。
图3后羿系统物品画像、用户画像、召回排序模型配置部分页面
达观智能推荐系统采用独创的ME(Multi-Ensemble)多层叠加算法,通过算法融合实现更精准的推荐效果。对于推荐理由的需求,达观数据也积累了丰富的服务经验。在集数据管理和统计、推荐配置、系统监控于一体的达观智能推荐系统中,可以快速添加推荐理由,如图3是后羿系统物品画像、用户画像、召回排序模型配置的部分页面:
1.精准的用户画像,是给出用户相似推荐理由的基础;
2.丰富的物品画像,是给出物品相似推荐理由的基础;
3.可配置的召回方式,是给出召回方式推荐理由的基础;
4.可配置的排序模型,是给出模型推荐理由的基础;
5.可修改的推荐理由模块,可供运营人员进行人为干预调整,给出一些特殊的跟环境相关的推荐理由。
图4在后羿系统的个性化推荐模拟页面展示了测试用户test的推荐结果,在最后一列给出了详细的推荐理由。
五 推荐理由的机遇与挑战
推荐理由作为推荐领域探索比较少的一个方向,目前工业级推荐里的推荐解释还比较简单单一,还有很多方面值得探索和研究。参考推荐理由相关的文章,一共归纳出三种可供研究的方向:
1.利用知识图谱增强算法解释能力。知识图谱是推荐系统外部的一种可解释非常高的载体。我们可以利用知识图谱来打通物品、用户和特征这三类媒介之间的关系,根据具体情况灵活选取最合适的媒介进行推荐解释。
2.通用的可解释框架。现阶段的所有可解释性的推荐系统都是强耦合的,都只能适应当前的推荐系统。对于新兴的模型或者场景,并没有一个完全通用的推荐理由方案。如果能研发出衣蛾通用的可解释框架,将会促进推荐可解释性的快速发展。
3.结合机器学习模型自动生成推荐理由。目前的推荐理由还停留在需要人为预先设定的阶段,如果有一个模型可以自动学习出带有人类感情色彩的推荐理由,推荐理由的发展将会步入一个新的台阶。