[关闭]
@heavysheep 2017-01-06T15:49:09.000000Z 字数 2157 阅读 1904

新闻推荐系统

文档 算法


新闻排序方式

热度值排序。热度越高,排名越靠前。

基础思路

1.抓取目标新闻时得到其热度值(赞同数/评论数/排名顺序/是否头条等)换算为目标热度,乘以智橙生活用户对各个板块反馈得到的总体权重(以下简称总体权重)得到抓取热度;
2.收集智橙生活用户对已上架新闻的反馈,乘以总体权重,得到系统热度;
3.抓取热度+系统热度,得到总体热度。
4.收集不同用户对不同板块的兴趣,计算得到个人兴趣权重。
5.总体热度*个人兴趣权重,得到用户热度值。
6.抓取热度会随时间逐渐在一个时间段内以加速度衰减至0,以保证重大新闻不会过长的占领头条。
7.系统热度不会随时间衰减,以保证下层排序不会被打乱。

元素释义

1.新闻激活用户
数据类型:布尔值
计算方式:用户注册后点击任意6个以上新闻即为激活用户
备注:用来统计激活用户数量
2.新闻激活用户数
数据类型:int
计算方式:每当有新的激活用户,用户数+1
备注:统计备用
3.新闻编号
数据类型:int/str
计算方式:顺序排列
备注:为每个新闻分类索引值
4. 新闻唯一点击量
数据类型:布尔值(建议1和0方便计算)
计算方式:用户对每一条新闻是否点击。
备注:用来计算总体权重
5.新闻累计点击量
数据类型:int
计算方式:用户对同一条新闻的点击次数。
备注:debug留存备用
6. 选择自由度
数据类型:int
计算方式:对比上次关闭,新更新的数据数目,最大值为30。
备注:自由度越低,在后续总体权重的影响越低(在用户无法选择的情况下,少数信息不能代表用户兴趣点)
7.个人权重增减
数据类型:列表(或矩阵);内部类型:double(内部暂定11个,详见新闻分类)
计算方式:一条信息有标签数X,矩阵最大值M,该用户点击一条信息,则该信息的标签各增加 个权重,非该信息标签减少 个权重。
备注:设自由度调整有10个等级,自由度不大于30,则1.08为百分位近似最优解,以最大权重的2%作为动态回归。
8. 实时总体权重
数据类型:列表(或矩阵);内部类型:double(内部暂定11个,详见新闻分类)
计算方式:所有新闻激活用户的矩阵平均值
9.目标热度
数据类型:float
计算方式:待定,根据抓取目标新闻的平台决定计算方式。
备注:用来计算抓取热度。
10.目标热度向量
数据类型:(函数内)float
计算方式:待定(变种归一函数newvalue=(oldvalue-min)/(max-min))
备注:无监督下用来平衡不同平台的热度,避免算法出错。
11.目标热度(向量平衡)
数据类型:float
计算方式:目标热度通过目标热度向量函数
备注:再平衡后的目标热度,此步骤会经过校验,校验失败发送错误日志。
12.抓取热度
数据类型:float
计算方式:抓取热度=目标热度(向量平衡)总体权重。
备注:抓取热度值随时间推进在48小时内以加速度衰减直至0,避免重要新闻过长占领头条。
13.系统热度
数据类型:float
计算方式:系统热度=智橙生活热度
总体权重
备注:系统热度不会衰减,以避免下层排序被打乱。
14.总体热度
数据类型:float
计算方式:总体热度=抓取热度+系统热度
备注:总体热度值是用户第一次登陆时的默认方式。
15.用户阅读百分比
数据类型:float
计算方式:每个用户对每条新闻的阅读百分比,多次阅读只记录最高数值,忽略第一屏百分比(记录方式:第一个滚动事件触发是否可行?),并向量化为0到1的值。
备注:下架低质量新闻相关,用来计算单条新闻阅读百分比和总体阅读百分比。
16.单条新闻平均阅读百分比
数据类型:float
计算方式:排除0和首屏阅读百分比,基于用户阅读百分比,计算同一条新闻用户平均阅读百分比
备注:下架低质量新闻相关
17.总体新闻阅读百分比
数据类型:float
计算方式:排除0和首屏阅读百分比,基于用户阅读百分比,计算总体平均阅读百分比。
备注:下架低质量新闻相关
18.总体新闻阅读标准差
数据类型:float
计算方式:
备注:下架低质量新闻相关

模块操作

所有元素的计算及最终排序每10分钟进行一次。用户正在使用时在下次登录时排序。
1.低质量文章下架:计算总体除0外的标准差,计算总体比例权重,找到每一篇文章的比例平均值,低于均值1.65个标准差(90%)视为低质量文章。
2.总体权重某一模块低于警戒值的反弹:当某一总体权重<0.8时,提示低于警戒值并打印总体权重变动日志。

QA:

Q:每条新闻读后是否做降权处理?
A:不考虑,降权风险太大,另外根据知乎和今日头条来看,不需降权的排序已经成为用户习惯。
Q:每篇文章的长度不同,第一屏的百分比不同,如何以比例来计算低质量文章。
A:归一元素值至0-1,
Q:新闻标签的添加方式?
A:爬虫能区分情况下人工审核,不能区分情况下人工添加。
Q:为什么新闻推荐算法非常简单,没有使用尖端算法来计算?
A:举例来说,亚马逊的“多维空间夹角余弦”主要应用于“购买此商品的人还购买了XX”,网易云音乐的“潜在因子算法”对目标因子的推测并不能完美的应用于新闻(但该算法有其强悍之处,是很好的备选),知乎的排序算法更多的取决于社交网络构筑而成,当样本数和维度都较低时,照抄和盲目跟风顶尖产品采用太复杂的算法容易造成过拟合,反而降低了运算效果。今日头条在具备社交性有一定维度时依然采用简单粗暴的投票算法,效果也是非常优秀的。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注