头条推荐算法——协同过滤、内容推荐算法介绍与Python实现(一)

想必很多头条玩家都想了解头条的推荐算法是怎样进行推荐的,刚好之前有做过推荐算法的开发测试相关工作,在此与大家分享下,目前常用的个性化推荐算法在头条产品的应用。

今日头条核心算法负责人杨震原曾讲到:

一开始今日头条的推荐算法,首先入手的是“个性化推荐”——解决的热门文章推荐以及新文章冷启动的问题(单纯热门文章的推荐会使得新文章没有曝光机会,需要通过一些机制平衡热与新的问题)。今日头条开始逐步引入个性化推荐的策略。他们所采用的,是协同过滤 + 基于内容推荐,直到今天依然构成今日头条推荐算法的基础。

通过这段话,我们不难看出头条的算法先后经历了热门(文章)推荐、协同过滤、基于内容推荐的算法发展与补充。

推荐算法原理概述

热门(文章)推荐:比如提取文章关键词、对文章的分类,并赋予一个初始热度值,随着用户阅读、收藏、分享、评论、点赞行为,这些行为促使文章热度提升。文章一般是有较强时效性的内容,因此文章发布之后,热度必须随着文章时效性变低而衰减。同时需要考虑不同类型文章的初始热度值不同,以及不同用户行为的热度加值权重也不同。然后根据不同类别的文章热度值排序推送给用户。

协同过滤:可以简单理解为"人以群分"的算法解释,通过海量数据中人的行为,计算相似的人或者相似物品的相似度,然后将与你相似的人喜欢的物品或你喜欢物品的相似物品推荐给你。

头条推荐算法——协同过滤、内容推荐算法介绍与Python实现(一)

基于用户的协同过滤

上图示意出基于用户的协同过滤推荐机制的基本原理,假设Charles 喜欢文章A/B,Mark喜欢文章A/B/C,Bill喜欢文章C;从这些用户的历史喜好记录中,我们可以发现Charles 和Mark的偏好是比较相似的,同时Mark还喜欢文章C,那么我们可以推断Charles可能也喜欢文章C,因此可以将文章C推荐给Charles。

头条推荐算法——协同过滤、内容推荐算法介绍与Python实现(一)

基于物品的协同过滤

上图示意出基于物品的协同过滤推荐机制的基本原理,假设Charles喜欢文章A/B,用户Mark喜欢文章A/C,Bill喜欢文章B,从这些用户的历史喜好记录中,我们可以发现喜欢文章A的人都喜欢文章B,因此文章A与文章B比较类似,那么我们可以推断Bill很有可能也喜欢文章A,所以系统会将文章A推荐给Bill。

内容推荐:可以简单理解为"物以类聚"的算法解释,通过海量数据中的物品(内容)的属性特征,计算物品(内容)之间的相似度,然后基于用户喜好记录,推荐给用户相似的物品。同时,今日头条通过用户对内容的“正负反馈”进一步校验内容推荐是否精准。正反馈通过对用户浏览行为、点赞、分享、收藏、评论等方式收集。负反馈则通过用户浏览行为如,浏览一半就退出,或者用户点击内容下方"不喜欢"表达对此不感兴趣等方式收集。除了这种个性化推荐,头条还通过运营干预推荐数量较少的传统意义上的头条信息(补充"关心的才是头条"推荐理念的不足),我们可以看到头条推荐前几条基本都是传统意义的头条新闻。

头条推荐算法——协同过滤、内容推荐算法介绍与Python实现(一)

上图示意出内容推荐机制的基本原理,首先我们需要对文章A/B/C的元数据属性特征(文章类型)建模;然后根据文章的元数据寻找文章间的相似度,因为,文章A与文章C都是"推荐算法、协同过滤"类型的文章,因此文章A与文章B为相似文章,那么对于Charles,他喜欢看文章 A,系统就可以推荐文章B。

后续文章中将详细介绍基于用户协同过滤算法、物品协同过滤算法、内容推荐算法的python实现

,感兴趣的可以关注哦。


分享到:


相關文章: