您当前的位置:首页 > 电脑百科 > 程序开发 > 算法

深入理解热度算法:如何做好内容推荐?

时间:2019-06-27 13:14:32  来源:  作者:

热门推荐是互联网产品中最常见的功能之一,比如“大家都在看”、“今日热卖榜”这些在各大网站上都随意可见,堪称标配。而其中推荐算法的好坏,则不仅密切关系着内容对用户的吸引程度,也同时反应了产品对内容的分发能力。

深入理解热度算法:如何做好内容推荐?

在一个产品中,如果不能及时发掘新鲜内容,并将优秀内容传播出去,甚至引爆,那么整个内容生态也难以搭建起来。

虽然时下,大家更有兴致讨论的都是个性化推荐,但它并不适用于所有产品,尤其是初创的、小众的产品。因为个性化推荐它必需依赖大量的用户数据以及对内容深入的挖掘,若不然强行个性化推荐只会适得其反。

这次,本文主要探讨实用性更强热度算法,它也并非想象中的简单粗暴,反而有不少只属于它的亮点。

本文不带一个数字公式,可安心食用^_^

 

一、基本原理

其实,在热度算法表层之下,还有不少的基础原理在支撑着它,但在本文中将不先扩展,而是以最普遍运用的牛顿冷却定律为例。

它的特点在于,引入了时间衰减的概念。

牛顿冷却定律若用函数来代表,则为:

热度 = 初始热度 + 互动热度 – 随时间衰减的热度

举个例子:

当一条微博产生后,随着用户的浏览、点赞、转发、它的热度逐渐攀升,进入榜单。

但因为这条内容本身具有时效性,如果不考虑这点,那么它可能长期霸榜,所以我们必须考虑到如何令它的热度随着时间的推移而衰减,从而令新的微博有机会取而替代,达到热门榜单动态变化的效果。

 

二、影响因素

在理解热度算法的基础原理后,我们可以得知影响热度计算的三个因素:

 

1. 原始热度

首先是原始热度,正如内容千差万别,再加上产品本身的定位、偏爱。

我们不太可能去为所有的内容赋予同样的初始热度,就比如一个大V发的微博和一个好友发的微博,以及一个陌生小号发的微博,它们从一开始就难以相提并论。

而我们又该如何给每个内容赋予不同的原始热度呢?

可以从两个维度出发:

(1)创作者,即创作这个内容的人,也可以是机构。

还是以微博为例,微博对用户做了不少划分,个人、垂直领域的知名博主、自媒体、机构、企业、政府等等,不同类型的身份也隐含他们的创作能力和传播价值。

所以在初始热度的考量上,我们就会考虑是否让大V用户发表的新内容更先一步的进入热榜。

当然,其它产品就算不像微博那样对用户有明确的归类,也可以利用一些基础的用户数据,比如:

  • 注册时长:是否激励新用户,还是优待老用户?
  • 活跃程度:一个投入更多时间精力的常驻用户是不是更大概率会创作出优秀内容?

(2)内容属性,则是从内容本身出发,根据它的类别、字数长度、丰富度、流行指数等有所侧重。

就比如在热门微博管理规范,就表示过含多张的图片,含#话题的就会加重热度,而带外链的,已有相似内容的则会降低热度。

具体哪些内容该赋予更高的热度,哪些内容又该冷处理,关键看这个产品的内容调性和氛关键可能看这个产品中主流用户的偏爱,以及运营人员想营造什么样的内容生态。

 

2. 互动热度

初始热度这一因素虽然看上去具有极大的天然优势,但往往在实际推荐算法中也不会占据主要的地位。

比如就算是一条超级大V发的和一条普通用户发的内容,可能在初始热度上差距也不会特别大,因为内容是否真的够好,还是要靠更广泛的用户来检验。

这也就是影响热度的第二因素——互动热度,这也是最为重要的,也可以理解为用户的行为数据。

我们需要先定义哪些用户行为可以提高这条内容的热度,像对一条微博的浏览、点赞、评论、转发、分享等,都可以代表了用户对它的感兴趣程度。

同时需要注意的是,不同行为的权重应该也是不同的。

比如,评论明显比点赞更有诚意,所以我们在计算互动热度时,可以对这些用户行为进行评级,浏览+1分,点赞+3分,评论+10分,转发+15分,分享+15分。

且在实际产品运营过程中,我们还需要根据用户规模、周期效应不断调整用户的行为分,同时考虑如何反作弊,若规则太生硬,是不是就会被有心人利用,这点后面会再探讨。

 

3. 随时间衰减的热度

由于大部分内容是属于一次消费型,用户看过也就过了。若热门推荐的榜单总是固定那几条,他可能很快就觉得乏味,从而转向别的产品。所以我们自然希望内容能不断更新,而若只看初始热度+互动热度,那么后来者必定很难超越前者。

所以,我们还需要考虑另一个因素——随时间衰减的热度

以社会热点来说,往往一件事情的时效性是在24小时内。

比如一项政策出台,大家都在关注,若不能及时推送,用户很可能已从别的渠道得知;而新鲜劲一过,这条内容再占着榜单也少有人问津了。

所以我们可以制定一个策略,这个内容在发布后,随着时间的推移,热度也开始逐步衰减。

同时需要注意的是,时间衰减通常不是线性的

毕竟结合现实情况来看,一条新内容产生后,我们可能先需要几个小时去传播它,看看它的热度反应。

在刚开始这期间,可以不必过多的去考虑时间衰减;而到了有效传播期之后,比如一条新闻过了24小时,那么我们就可以加重时间衰减的因素,尽量不让用户看到昨天的新闻。

 

三、如何进行人为干预:调整权重

上述的内容已经讲完了热度算法的核心内容,通过理解原理和三大影响因素,相信大家已经可以尝试去设计一套适合自家产品的热度算法了。

不过,在实际的内容运营中,哪怕一套算法再可靠,我们有时候还是难免想要进行一些人工干预。

这就涉及到了我们常用的一个手段:调整权重。

我们可以将权重这一因素,扩展到热度算法中,如:

热度 = 初始热度 + 互动热度 – 随时间衰减的热度 +/- 权重

然后在运营后台中,开放对内容进行加权、降权的功能。

权重调整其实另一方面也可以弥补热度算法的不足,因为通过传播去获取热度总是需要一定时间,可能没办法应对突发的大热点,而也有某些内容明明在被持续关注着,但却不得不随着时间衰减退出热榜。

 

四、偶然和极端

其实,除了上述我们预先规定好的因素外,还会有一些偶然的元素可能会影响到热度算法。

比如,一条内容在产品往往不止在热榜中可见,我们还会通过其它的方式去传播它,比如开屏、PUSH等,这些都会带来巨量的热度提升,而不是它自身在热榜里竞争所得,若不剔除这些偶然因素,则热榜的前几名很有可能就充满了运营导向的味道。

而且,在设计热度算法时,需要多考虑极端情况,比如若在网站流量不大的情况下,一条初始热度最高的内容,是不是可能永久无法被初始热量最低的内容超越?

 

五、反作弊

在一些知名产品中,热门榜单往往伴随着数据造假,如果我们不能有效的反作弊,那么所谓热榜则相当于名存死亡,成了营销者的聚集之地。

而至于如何反作弊呢,此文篇幅有限,不做深入,就先抛砖引玉下,比如:

 

1. 将不同用户对互动热度的贡献再次分级

前文提到了我们需要对用户的不同行为分级,贡献不同的互动热度;现在考虑到许多刷数据者使用都是批量小号,具有一些区别于正常用户的特征,比如注册时长慢,活跃度低。

那我们就可以对用户进行分群,比如新用户的点赞+0.3分,正常用户的点赞+1分,从而抬高了数据造假的难度和成本。

 

2. 实时监控异常数据,若发现违规,将人工降权

因为数据造假是很难模拟出像优秀内容那样的热度上升曲线,所以可以通过监控数据波动,来判断这条内容是否为自然增长,若察觉存在违规现象,则运营可以通过降权进行处罚。

 

六、抖音视频的推荐算法

讲完枯燥的理论,最后,再给大家分享下抖音是如何做内容推荐的,希望能帮助你更好的理解热度算法。

首先,抖音有一个流量池的概念,不论新人还是网红,当用户新发一条视频后,抖音都会将它推荐给一定的人,即启动流量,可能是300-1000人。

然后根据这条视频在流量池内的数据表现,比如完播率、点赞率、评论数、转发率等,再来决定是否要将这条视频推荐给更多人。

而在数据达标之后,抖音会再将这条视频引向更大的流量池,让新的1W-10W人看到,即叠加推荐,以此类推,数据越好,叠加越多的流量。

同时,上述所说的流量池是有区间的,决定具体数值,则就是上述影响因素的概念。

抖音里的影响因素是哪些呢?

  • 从创作者来看,比如注册信息、粉丝数、历史视频数、以往成绩等。
  • 从内容来看,比如视频画质、是否原创、是否独特等。

总结下,热度算法运用到具体产品中,并非要死板的照搬公式,而且要结合运营模式,也可以多点变通,就比如抖音,它将内容推荐设计成了阶段性的热度试探,这种做法别出心裁,效果也很不错。



Tags:算法   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
前言Kafka 中有很多延时操作,比如对于耗时的网络请求(比如 Produce 是等待 ISR 副本复制成功)会被封装成 DelayOperation 进行延迟处理操作,防止阻塞 Kafka请求处理线程。Kafka...【详细内容】
2021-12-27  Tags: 算法  点击:(1)  评论:(0)  加入收藏
分稀疏重建和稠密重建两类:稀疏重建:使用RGB相机SLAMOrb-slam,Orb-slam2,orb-slam3:工程地址在: http://webdiis.unizar.es/~raulmur/orbslam/ DSO(Direct Sparse Odometry)因为...【详细内容】
2021-12-23  Tags: 算法  点击:(7)  评论:(0)  加入收藏
一、什么是冒泡排序1.1、文字描述冒泡排序是一种简单的排序算法。它重复地走访要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地...【详细内容】
2021-12-15  Tags: 算法  点击:(16)  评论:(0)  加入收藏
前面文章在谈论分布式唯一ID生成的时候,有提到雪花算法,这一次,我们详细点讲解,只讲它。SnowFlake算法据国家大气研究中心的查尔斯·奈特称,一般的雪花大约由10^19个水分子...【详细内容】
2021-11-17  Tags: 算法  点击:(24)  评论:(0)  加入收藏
基于算法的业务或者说AI的应用在这几年发展得很快。但是,在实际应用的场景中,我们经常会遇到一些非常奇怪的偏差现象。例如,Facebook将黑人标记为灵长类动物、城市图像识别系统...【详细内容】
2021-11-08  Tags: 算法  点击:(32)  评论:(0)  加入收藏
随着注册制的加速推进,新股越来越多,截止到今天A股上市公司的总数高达4500余家,A股一直就是重融资,轻投资的市场,而上市公司发行可转债这种再融资的(圈钱方式)是最能让普通投资者接...【详细内容】
2021-11-05  Tags: 算法  点击:(98)  评论:(0)  加入收藏
导读:在大数据时代,对复杂数据结构中的各数据项进行有效的排序和查找的能力非常重要,因为很多现代算法都需要用到它。在为数据恰当选择排序和查找策略时,需要根据数据的规模和类型进行判断。尽管不同策略最终得到的结果完...【详细内容】
2021-11-04  Tags: 算法  点击:(40)  评论:(0)  加入收藏
这是我在网上找的资源的一个总结,会先给出一个我看了觉得还行的关于算法的讲解,再配上实现的代码: Original author: Bill_Hoo Original Address: http://blog.sina.com.cn/s/bl...【详细内容】
2021-11-04  Tags: 算法  点击:(36)  评论:(0)  加入收藏
每个人都有过这样的经历:打开手机准备回消息或打电话,一看到微信图标右上方的小红点,于是忍不住先打开微信;看完微信,不知不觉又被另一个App牵引,直到关闭手机屏幕才发现自己早已...【详细内容】
2021-11-03  Tags: 算法  点击:(30)  评论:(0)  加入收藏
文丨互联网怪盗团在互联网行业,尤其是在投资人心目中,往往存在一种“算法迷信”或曰“技术迷信”:某公司的广告变现做得好,一定是因为有算法;某公司的云计算业务开展的好,也是因为...【详细内容】
2021-11-03  Tags: 算法  点击:(25)  评论:(0)  加入收藏
▌简易百科推荐
前言Kafka 中有很多延时操作,比如对于耗时的网络请求(比如 Produce 是等待 ISR 副本复制成功)会被封装成 DelayOperation 进行延迟处理操作,防止阻塞 Kafka请求处理线程。Kafka...【详细内容】
2021-12-27  Java技术那些事    Tags:时间轮   点击:(1)  评论:(0)  加入收藏
博雯 发自 凹非寺量子位 报道 | 公众号 QbitAI在炼丹过程中,为了减少训练所需资源,MLer有时会将大型复杂的大模型“蒸馏”为较小的模型,同时还要保证与压缩前相当的结果。这就...【详细内容】
2021-12-24  量子位    Tags:蒸馏法   点击:(11)  评论:(0)  加入收藏
分稀疏重建和稠密重建两类:稀疏重建:使用RGB相机SLAMOrb-slam,Orb-slam2,orb-slam3:工程地址在: http://webdiis.unizar.es/~raulmur/orbslam/ DSO(Direct Sparse Odometry)因为...【详细内容】
2021-12-23  老师明明可以靠颜值    Tags:算法   点击:(7)  评论:(0)  加入收藏
1. 基本概念希尔排序又叫递减增量排序算法,它是在直接插入排序算法的基础上进行改进而来的,综合来说它的效率肯定是要高于直接插入排序算法的;希尔排序是一种不稳定的排序算法...【详细内容】
2021-12-22  青石野草    Tags:希尔排序   点击:(6)  评论:(0)  加入收藏
ROP是一种技巧,我们对execve函数进行拼凑来进行system /bin/sh。栈迁移的特征是溢出0x10个字符,在本次getshell中,还碰到了如何利用printf函数来进行canary的泄露。ROP+栈迁移...【详细内容】
2021-12-15  星云博创    Tags:栈迁移   点击:(22)  评论:(0)  加入收藏
一、什么是冒泡排序1.1、文字描述冒泡排序是一种简单的排序算法。它重复地走访要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地...【详细内容】
2021-12-15    晓掌柜丶韶华  Tags:排序算法   点击:(16)  评论:(0)  加入收藏
在了解golang的map之前,我们需要了解哈希这个概念。哈希表,又称散列表(Hash table),是根据键(key)而直接访问在内存储存位置的数据结构。也就是说,它通过计算出一个键值的函数,将...【详细内容】
2021-12-07  一棵梧桐木    Tags:哈希表   点击:(14)  评论:(0)  加入收藏
前面文章在谈论分布式唯一ID生成的时候,有提到雪花算法,这一次,我们详细点讲解,只讲它。SnowFlake算法据国家大气研究中心的查尔斯·奈特称,一般的雪花大约由10^19个水分子...【详细内容】
2021-11-17  小心程序猿QAQ    Tags:雪花算法   点击:(24)  评论:(0)  加入收藏
导读:在大数据时代,对复杂数据结构中的各数据项进行有效的排序和查找的能力非常重要,因为很多现代算法都需要用到它。在为数据恰当选择排序和查找策略时,需要根据数据的规模和类型进行判断。尽管不同策略最终得到的结果完...【详细内容】
2021-11-04  华章科技    Tags:排序算法   点击:(40)  评论:(0)  加入收藏
这是我在网上找的资源的一个总结,会先给出一个我看了觉得还行的关于算法的讲解,再配上实现的代码: Original author: Bill_Hoo Original Address: http://blog.sina.com.cn/s/bl...【详细内容】
2021-11-04  有AI野心的电工和码农    Tags: KMP算法   点击:(36)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条