推荐策略之「排序」


之前的文章我们谈了推荐策略中的用户画像和召回策略,当推荐系统根据用户画像、内容画像等在内容池完成了召回之后,下一个要面临的环节就是具体以怎样的顺序和规则将内容呈现到读者面前。

------本文共3240字,预计阅读时间9分钟------

如果将召回的内容以合适的顺序展示给用户,能产生的价值主要包括:

提高用户留存。试想一下你在第二次打开今日头条的时候,最前面几条所展示的内容,都是符合你所选择的兴趣领域以及第一次使用时所阅读文章的,那你一定会更想继续使用头条。

提升用户体验。如果你最感兴趣领域的文章、贴合当下热点的消息、符合你所在位置和场景的推送都呈现在前两屏,将会大大节省用户搜寻信息的时间。

优化商业变现。根据公司的业务规则和盈利要求,适当对广告进行排序优化,也能提升产品商业变现的效率。

笔者主要以今日头条为例,聊一下推荐系统的排序策略。

1 推荐策略概述

如图1所示,推荐系统分为离线部分(线下模块)和在线部分(线上模块),其中在线部分主要分为召回和排序。召回是获取待推荐内容,其重点在于;排序为根据用户需求完成所搜集内容的排序展示,其重点在于

null

(图1 推荐系统的线上与线下模块)

由于内容池本身良莠不齐,加之召回渠道的多样性、召回算法的复杂性等,导致召回阶段难以对数据进行精确的偏好预测和质量评估,因此排序阶段需要对召回结果进行统一的打分排序。


以今日头条为例,推荐排序一般包括以下三块:

·离线计算层:主要包含算法集合、算法引擎,负责数据的整合、特征的提取、模型的训练、以及线下的评估。

·近线实时数据流:主要是对不同的用户实施订阅、行为预测,并利用各种数据处理工具对原始日志进行清洗,处理成格式化的数据,落地到不同类型的存储系统中,供下游的算法和模型使用。

·在线实时打分:根据用户所处的场景,提取出对应的特征,并利用多种机器学习算法,对多策略召回的结果进行融合和打分重排。

2 特征工程

以今日头条为例,推荐系统中涉及到的特征可分为如下分三类:

用户画像

·属性特征:性别、年龄、地区等

·统计特征:用户关注数、评论量等

内容画像

·固有特征:文章长度、关键词等

·统计特征:阅读量、点赞数等

交叉特征

·用户与内容的交叉特征,比如用户感兴趣的话题和当前待推荐内容的话题交叉。


曹欢欢博士在解读今日头条的推荐算法原理时提到,推荐系统的排序要解决好相关性特征、环境特征、热度特征和协同特征。这里的相关性特征和环境特征其实就是交叉特征,相关性特征即是文章画像与你的用户画像一致性比较高,则进行相应推荐。今日头条的推荐排序在内容与用户画像交叉匹配方面是非常敏感的,下图为点击了三篇NBA火箭球星哈登文章后所推荐的内容,包括广告在内的系统推荐都做出了准确迅速的反应。

null


(图2 NBA球星哈登相关的推荐)

环境特征是针对不同时间、不同地点、不同场景(工作/通勤/旅游等)来预测用户的不同偏好。热度特征,在冷启动很有效,即根据当前社会热点、文章阅读量高低排名等能代表普遍群体感受的指标进行推送选择。协同特征,指寻找与目标用户特征相同的用户,如同年龄段、同性别、同地区、阅读过同样类别内容的用户,将其兴趣推荐给目标用户,以拓展推荐。

3 常见的排序算法

在数据给定的条件下,推荐系统的排序算法经历了从简单线性模型+大量人工特征工程到复杂非线性模型+自动特征学习的演变。


个性化排序模型旨在利用每个用户的历史行为数据集建立其各自的排序模型,本质上可以看作多任务学习(multi-task learning)。事实上,通过加入 交叉特征,也就是加入用户(user)和物品(product)的交叉特征,可以将特定的多任务简化为单任务模型。

null


(图3 推荐系统排序算法的历史演变)

按照用户历史行为排序

简单按照内容产生/内容召回/用户行为的时间先后进行排序,这种最原始的排序没有将用户画像与内容进行匹配,无法满足个性化推荐。如图,美团点评初期使用线性模型,系统根据记忆将一些用户历史点击过的单子排在前面。

null


(图4 美团点评推荐算法的线性模型)

EdgeRank算法

该算法最初由Facebook提出,称为边际排名算法(Edge Rank Algorithm),该算法的核心计算公式为:E = u×w×d。

·u:用户与内容发布者之间的亲密度分数,互动越高的亲密度分数越高,如用户对发布者的阅读、关注、评论等都属于互动。

·w:不同反馈动作具有不同的权重,反馈动作包括阅读、评论、点赞等。其权重为评论>点赞>阅读。

·d:基于时间的衰减,越新的内容权重越高。


Feed Ranking,GDBT模型

GBDT(Gradient Boosting Decision Tree) 又叫 MART(Multiple Additive Regression Tree),是基于Boosting 思想的ensemble模型,该算法由多棵决策树组成,所有树的结论累加起来做最终答案。Boosting 方法基于这样一种思想:对于一个复杂任务来说,将多个专家的判断进行适当的综合所得出的判断,要比其中任何一个专家单独的判断要好。通俗地说,就是"三个臭皮匠顶个诸葛亮"的道理。


Global Ranking,深度学习模型DNN

深度学习(Deep Neural Network)能够对嵌入式(embedding)特征和普通稠密特征进行学习,抽取出深层信息,提高模型的准确性,并已经成功应用到众多机器学习领域,将DNN引入到排序模型中能够提高排序整体质量。Youtube于2016年推出DNN排序算法。


值得一提的是,用户对内容的满意度是由很多维度上的众多因素来决定的,不同用户对不同因素的重视程度不同,不同因子之间也存在着复杂的依赖影响关系,人为制定复杂的规则既难以达到好的效果,又不具有可维护性,这就需要借助机器学习的方法,使用机器学习模型来综合多方面的因子进行排序。

4 重排序

重排序(Rerank)是出于产品或业务(居多)的考虑,对排序的内容进行重排,以便最终展示给用户。重排序的目的就是为了满足业务规则的需要,可根据盈利需求、平台现状和社会环境等进行人工干预,如内部运营、竞价排名、置顶等等都是常见的重排序操作。

针对内容

·提权:比如给某篇/某类内容进行一定的提权

·隔离:相似内容隔开

·强插:高质量的新内容流通

·过滤噪声:过滤停留时间短的点击,打击标题党

针对用户

·惩罚热点:每个用户在热点上的表现可能仅仅是因为随大流,并不能代表真正的用户画像,所以这部分要降低操作的权重

·时间衰减:随着用户动作的增加,老的特征权重会随时间衰减,新动作贡献的特征权重会更大

·惩罚展现:如果一篇推荐给用户的文章没有被点击,相关特征(类别、关键词、来源)权重会被惩罚

·考虑全局背景:考虑给定特征的人均点击比例

此外,有些场景下重排序与此前的算法排序是相矛盾的,因为重排序改变了原有的顺序,这时就需要以商业指标来评估和权衡,到底是规则重要,还是算法重要。


排序策略是推荐策略的重要环节,同样候选集的展示顺序直接影响着用户的阅读体验。作为推荐系统中将用户与内容进行直接联系的环节,今日头条等各大内容分发平台都日益重视对排序策略的研究,机器学习和深度学习也逐渐成为当前时代背景下排序算法的核心。这篇文章针对排序策略的概念、流程和主要算法进行了初步介绍,希望能为想要入门推荐策略的产品小白提供一定帮助。


【参考文献】

[1] 今日头条曹欢欢博士,《今日头条算法原理(全)》,https://mp.weixin.qq.com/s/DC_hJUbTnLhuCwYVOgVlVw.

[2] 单厚智,《知乎排序算法负责人单厚智的经验分享:推荐页Ranking》,https://mp.weixin.qq.com/s/gwdeU6kpVMnSmYp8pkC9Fg.

[3] 潘晖,《深度学习在美团点评推荐平台排序中的应用》,https://mp.weixin.qq.com/s/847h4ITQMtUlZcurJ9Vlvg.

[4] 闫泽华,《内容算法》,中信出版集团.

文章为作者独立观点,不代表BOSS直聘立场。未经账号授权,禁止随意转载。