自己负责的app也有热点新闻模块,也一直没搞清楚究竟如何进行个性化推荐,最近看到一篇腾讯pm写的文章,收获很多,根据记忆进行下复盘。
一、基本原理
新闻热度分=初始分+用户交互热度分-随时间的衰减分
换成公式:Score=S0+S(Users)-S(Time)
二、初始分要不要一样
结论:初始分不要一样
原因:
1)八卦和娱乐新闻大众用户本身会比较喜欢,历史类新闻喜欢的用户群体较小
2)新闻实时性较强,奥运期间用户对体育类新闻比较关注,灾害期间,用户对灾害类相关新闻比较关注
3)根据产品不同的属性,对新闻本身的侧重点也不一样,栗子:文化类产品,文化类新闻就会有较高的初始分
三、初始分如何设置
结论:给不同维度新闻不同的权重,特殊情况下调整维度的权重
举个栗子:
初始权重设置
特殊情况下权重如何调整?手动?太low,举个栗子:可以设置热词库
再来个栗子:
体育类热词库:奥运会,NBA总决赛,世界杯
当有大量新闻触发热词库时,超过一定的阈值时,此时可以触发权重调整机制
所以这个权重就变成了
四、用户行为分不是固定不变的
原因:当产品的用户体量较小时,要体现用户的重要性,这时候用户行为分要高;当产品体量较大时,需要对内容进行运营,此时要适当降低用户的行为分
用户的行为:阅读(click),收藏(favor),分享(share),评论(comment)
用户体量较小时,用户行为分:
S(Users)=1click+5favor+10share+8comment
用户体量较大时,用户行为分:
S(Users)=(1click+5favor+10share+8comment)*C/DAU
C:一个常数
DAU:传说中的日活,每日活跃用户数
五、热度分随时间衰减不应该是线性的
原因:新闻都有时效性,随着时间的流逝,热度分必须衰减的越来越快,直致趋近于零
换成人话:随着时间的流逝,一个新闻要想维持热度,必须越来越多的人来维护才行
大概就是这样一个图
下面就是考察知识面的时候了,牛顿曾经在冰块里面想到了一个定理,所以这个定理就叫:牛顿冷却定理
所以
T(Time)=e^(K*(T1-T0))
T0:新闻发布时间
T1:新闻当前时间
六、最终结论
考虑到热度最终要无限趋近于零,所以最终的算法公式就是
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
还在下面
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
这么有毅力
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
竟然看到了这里,夸奖下
。
。
。
。
。
。
。
。
。
。
。
。
。
最终的公式就是:Score=(S0+S(Users))/T(Time)
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
好了,真没了
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
晚安,愿世界和平!