一、Dataoffline线下从分离数据集构造验证集检验效果valid线上特征工程√召回和排序模型的参数已经调优完毕后对全部数据使用1.1 offline 离线划分留一法从训练集随机筛选50,000 个用户作为离线验证集用户将他们交互流中的最后1条点击剥离作为验证目标其余交互回填入大盘日志用来做特征和召回计算df_click:留一法剩余训练集测试集全部行为按user_id,click_timestamp排序df_query留一法测试集[user_id, click_article_id]→\rightarrow→test集click_article_id-11.2 validdf_click:训练集测试集全部行为按user_id,click_timestamp排序df_query测试集[user_id, click_article_id]→\rightarrow→test集click_article_id-1二、itemcf 召回u-点击i-相似i2.1 cal_sim相似度矩阵计算遍历所有用户的历史点击序列计算出文章与文章之间的相似度矩阵WWWSim(i,j)∑u∈Ui∩Ujα⋅0.9∣loc2−loc1∣−1log(1∣Iu∣)∣Ui∣⋅∣Uj∣\text{Sim}(i, j) \frac{\sum_{u \in U_{i} \cap U_{j}} \frac{\alpha \cdot 0.9^{|loc2 - loc1| - 1}}{\log(1 |I_u|)}}{\sqrt{|U_i| \cdot |U_j|}}Sim(i,j)∣Ui∣⋅∣Uj∣∑u∈Ui∩Ujlog(1∣Iu∣)α⋅0.9∣loc2−loc1∣−1∣Iu∣|I_u|∣Iu∣用户u的总点击新闻数Ui∣Ui∣U_i|U_i|Ui∣Ui∣点击了新闻事件iii的用户集合总数量user_item_dict字典按照用户id分组聚合{user_id:click_article_id序列}基础相似度计算对于同一用户序列中的文章ijijij对应距离下标loc1loc2loc1loc2loc1loc2新闻具有单向兴趣流转特征loc2loc1loc2 loc1loc2loc1先点iii后点jjj方向权重α\alphaα 1反之 0.7。惩罚1位置距离衰减同一序列2篇文章离得越远相关性越低0.9(∣loc2−loc1∣−1)0.9^{(|loc2 - loc1| - 1)}0.9(∣loc2−loc1∣−1)惩罚2用户活跃度惩罚点击过多新闻的用户水军贡献低分母除以log(1∣Iu∣)\log(1 |I_u|)log(1∣Iu∣)来打压。余弦相似度归一化使用传统的协同过滤归一化公式进行平滑消除热门偏置Sim基础∣Ui∣⋅∣Uj∣\frac{Sim_{基础}}{\sqrt{|U_i| \cdot |U_j|}}∣Ui∣⋅∣Uj∣Sim基础返回sim_dict物品间相似度字典, user_item_dict用户-物品字典{user_id:click_article_id序列}sim_dict{当前文章_A: {关联文章_B: 0.334, 关联文章_C: 0.125}}2.2 多进程并行化近邻召回触发异步多进程multitasking召回 recalldf_query双击近邻策略最近兴趣截断逆序截断只取出用户最近点击的2 个文章作为特征传导位置衰减相似度累加对最近 2 个文章分别从矩阵中召回与之最相似的200个文章。先应用0.7loc0.7^{loc}0.7loc进行位置衰减再累加得分。最终取Top 100个文章。打标签 (Labeling)valid判断召回的文章是否等于用户真正的下一跳是则标记 label1其余为 0。online真实标签统一初始化为占位符 NaN。得到df_data[user_id, article_id, sim_score, label]2.3 多进程合并离线评估for 留一法的测试集 进行离线闭环评估ItemCF 单路召回在验证集上的HitRate5\text{HitRate}5HitRate5、MRR5\text{MRR}5MRR5到HitRate50\text{HitRate}50HitRate50等多维核心指标三、binetwork 召回四、w2v 召回五、召回合并六、排序特征七、lgb模型训练八、指标计算
Ali-tianchi news:all
发布时间:2026/5/28 1:52:17
一、Dataoffline线下从分离数据集构造验证集检验效果valid线上特征工程√召回和排序模型的参数已经调优完毕后对全部数据使用1.1 offline 离线划分留一法从训练集随机筛选50,000 个用户作为离线验证集用户将他们交互流中的最后1条点击剥离作为验证目标其余交互回填入大盘日志用来做特征和召回计算df_click:留一法剩余训练集测试集全部行为按user_id,click_timestamp排序df_query留一法测试集[user_id, click_article_id]→\rightarrow→test集click_article_id-11.2 validdf_click:训练集测试集全部行为按user_id,click_timestamp排序df_query测试集[user_id, click_article_id]→\rightarrow→test集click_article_id-1二、itemcf 召回u-点击i-相似i2.1 cal_sim相似度矩阵计算遍历所有用户的历史点击序列计算出文章与文章之间的相似度矩阵WWWSim(i,j)∑u∈Ui∩Ujα⋅0.9∣loc2−loc1∣−1log(1∣Iu∣)∣Ui∣⋅∣Uj∣\text{Sim}(i, j) \frac{\sum_{u \in U_{i} \cap U_{j}} \frac{\alpha \cdot 0.9^{|loc2 - loc1| - 1}}{\log(1 |I_u|)}}{\sqrt{|U_i| \cdot |U_j|}}Sim(i,j)∣Ui∣⋅∣Uj∣∑u∈Ui∩Ujlog(1∣Iu∣)α⋅0.9∣loc2−loc1∣−1∣Iu∣|I_u|∣Iu∣用户u的总点击新闻数Ui∣Ui∣U_i|U_i|Ui∣Ui∣点击了新闻事件iii的用户集合总数量user_item_dict字典按照用户id分组聚合{user_id:click_article_id序列}基础相似度计算对于同一用户序列中的文章ijijij对应距离下标loc1loc2loc1loc2loc1loc2新闻具有单向兴趣流转特征loc2loc1loc2 loc1loc2loc1先点iii后点jjj方向权重α\alphaα 1反之 0.7。惩罚1位置距离衰减同一序列2篇文章离得越远相关性越低0.9(∣loc2−loc1∣−1)0.9^{(|loc2 - loc1| - 1)}0.9(∣loc2−loc1∣−1)惩罚2用户活跃度惩罚点击过多新闻的用户水军贡献低分母除以log(1∣Iu∣)\log(1 |I_u|)log(1∣Iu∣)来打压。余弦相似度归一化使用传统的协同过滤归一化公式进行平滑消除热门偏置Sim基础∣Ui∣⋅∣Uj∣\frac{Sim_{基础}}{\sqrt{|U_i| \cdot |U_j|}}∣Ui∣⋅∣Uj∣Sim基础返回sim_dict物品间相似度字典, user_item_dict用户-物品字典{user_id:click_article_id序列}sim_dict{当前文章_A: {关联文章_B: 0.334, 关联文章_C: 0.125}}2.2 多进程并行化近邻召回触发异步多进程multitasking召回 recalldf_query双击近邻策略最近兴趣截断逆序截断只取出用户最近点击的2 个文章作为特征传导位置衰减相似度累加对最近 2 个文章分别从矩阵中召回与之最相似的200个文章。先应用0.7loc0.7^{loc}0.7loc进行位置衰减再累加得分。最终取Top 100个文章。打标签 (Labeling)valid判断召回的文章是否等于用户真正的下一跳是则标记 label1其余为 0。online真实标签统一初始化为占位符 NaN。得到df_data[user_id, article_id, sim_score, label]2.3 多进程合并离线评估for 留一法的测试集 进行离线闭环评估ItemCF 单路召回在验证集上的HitRate5\text{HitRate}5HitRate5、MRR5\text{MRR}5MRR5到HitRate50\text{HitRate}50HitRate50等多维核心指标三、binetwork 召回四、w2v 召回五、召回合并六、排序特征七、lgb模型训练八、指标计算