推荐:新闻时效性模型(idea,未尝试)
http://www.c-s-a.org.cn/html/2018/5/6356.html
1. 新闻时效性模型
a. 文献老化率模型: Ke^(-at)
k - 与 category 有关
a - 文献的老化率
t - 被引用频率
b. 新闻的时效性模型
S(tn, t) = e^[-a(t - tn) + b]
t - 当前时刻
tn - 新闻发布时刻
S(tn, t) = 用户反馈数目 (需要根据新闻系统自行定义 window size)
a = 老化系数, a 越小,说明新闻性越强
b = constant , 受初始阅读量影响较大
用实际数据,去拟合,求出 a, b。得到新闻老化率公式:e^(b) e^(-at)e^(a tn)
= 假设衰减慢的新闻,新闻时效性越高,具有更高的价值。
= 当一条新闻超过生命周期后,则没有时效价值。
2. 实际用法
a. 对新闻预测分数进行加权。
b. 同时过滤过时新闻(我怀疑已经不需要了)
起因:流失用户吐槽 push 不够时效性。
假设:
1. 新闻事件随着时间的推移,时效性高的文章会失去新闻价值,但推荐系统对新闻点击率更敏感,热门文章可能在事件发生很久后依然被推送。
2. 使用click, share, like, favoriate 作为新闻反馈量。
3. 新闻反馈量 = k*e^-(t_now - t_in_db + constant )
t_now: 推荐模型准备推荐的时间,即当前时间
t_in_db: 初次被曝光的时间
分发时间越短,时效性越高。
constant: 新闻在初始阶段的反馈数目。
k:不同类型的新闻,对应不同的损失率,区分 evergreen / news / politics / sports...
4. 通过拟合求出,k, constant。
应用:
1. 适当在进 rank 前,过滤掉一些没有价值的新闻。
2. 在 rank 打分后,适当 boost 时效性高的文章。
和之前的区别:
1. 拟合真实的数据,求出 k, constant 的值;而非拍下一个高参。
2. 不同类型新闻,有不同的衰减力度,之前没有这么细。
3. 不对没有曝光的新闻进行衰减。
4. 引入除 show, click 外的其他反馈事件。
5. 之前时效性的判断基本上基于的是入库时间,而非初次曝光时间。