用了两种召回策略,分别是基于新闻相似度的协同过滤召回和基于新闻热度的召回。
- 基于新闻相似度的协同过滤(25篇)
先构造新闻相似度矩阵,相似度为相似新闻出现的次数取对数,之后根据矩阵选出前K篇相似度最高的新闻。
- 基于新闻热度的召回(10篇)
选取用户最后一次点击时刻的前一天到后一天的前K篇最热门文章推荐给用户。
两者合并去重。
- 负采样
由于召回的负样本过多,所以需要进行负采样。负采样使用比例0.001进行随机采样,最少1篇,最多5篇,分别从用户和新闻两个维度进行负采样。
其中正样本数量为118761。
- 排序模型:LGBMRanker
- 训练数据:赛事提供的train_click_log和testA_click_log的前N-1次点击(由于testA中有部分用户只点击了一次,所以开始处理时已经去除。),其中80%为训练集,10%为模型使用的eval_set,10%为线下验证集,数据的最后一次点击作为预测目标。(80%是所有点击数据,不是用户数量,所以用户数量可能会有所不同)
- 线下召回率
ItemCF RECALL: 41.09988356620093%
Hot RECALL: 26.32152361942781%
Total RECALL: 49.384980039920165%
- 线下MRR
0.3167055542146056(有波动)