转自: Coggle数据科学
赛题名称:短视频精准推荐挑战赛 赛题类型:推荐系统 赛题任务:预测该用户下一天最有可能会点击观看哪N个视频
报名链接:https://challenge.xfyun.cn/topic/info?type=short-video-recommendation
赛题背景
在数字化时代,短视频平台迅速崛起,成为人们获取信息、娱乐和社交的重要渠道。随着用户数量的激增和内容创作的多样化,如何精准地推荐用户感兴趣的短视频内容,提升用户体验,成为短视频平台面临的关键挑战。
为了增强平台的用户粘性和内容分发效率,本次算法挑战赛聚焦在“短视频精准推荐”,旨在推动短视频推荐算法的创新和优化。
赛题任务
赛题将提供用户历时观看行为、视频信息、用户信息等数据,需要选手构建模型预测用户所喜欢的视频。
给定某平台实际短视频业务中脱敏和采样后的的用户行为数据,即平台展示给用户多个短视频,保留用户存在点击并产生停留的行为。任务目标预测该用户下一天最有可能会点击观看哪N个视频,其中N=5。
请必须推荐5个视频,且推荐视频不能重复。若对新用户掌握的信息不足以推荐5个,可结合热门视频推荐。
数据说明
本次大赛基于短视频业务脱敏和采样后的数据信息,预测用户将点击的视频。参赛队伍需要设计相应的算法进行数据分析和预测。本次比赛提供了海量的数据集,包含用户历史点击观看行为数据,视频相关信息数据。
特征字段 | 字段描述 |
---|---|
uid | 用户行为id,唯一表示,无重复 |
vid | 视频id |
cid | 视频类别id |
playtime | 观影时长 |
duration | 视频时长 |
date | 点击时间,如20230101 |
rank | uid当天点击排序,rank为1则表示当天最后一次点击观看 |
评价指标
本次竞赛的评价标准采用MRR(Mean Reciprocal Rank)指标,评估代码参考:
def calculate_mrr(df_sorted, df_clicked):
mrr_score = 0.0
total_queries = len(df_clicked)
for index, row in df_clicked.iterrows():
# 获取当前用户的所有推荐
recommendations = df_sorted[df_sorted['uid'] == row['uid']].reset_index(drop=True).head(5)
# 检查点击的视频是否在推荐列表中,并且计算其排名
if row['vid'] in recommendations['vid'].values:
rank = recommendations[recommendations['vid'] == row['vid']]['vid'].index[0] + 1
mrr_score += 1 / rank
# 计算平均MRR
return mrr_score / total_queries if total_queries > 0 else 0
Baseline 思路
对于训练集中的数据,构建一个频率字典 freq,记录每个视频 vid 后面跟随的视频 vid 的频率。遍历训练集中每个用户的最后3个点击,使用构建的频率字典预测用户可能感兴趣的前5个视频。
频次统计
freq = {}
for u, df in tqdm(train_data.groupby('uid')):
for v1, v2 in zip(df['vid'].values[:-1], df['vid'].values[1:]):
if v1 not in freq:
freq[v1] = {v2:1}
else:
if v2 in freq[v1]:
freq[v1][v2] += 1
else:
freq[v1][v2] = 1
测试集预测
submit = []
for u, df in tqdm(uid.groupby('uid')):
if u not in example['uid'].values:
continue
df10 = df.tail(3)
pred_freq = merge_dicts_by_adding_values(*[freq[x] for x in df10['vid'].values if x in freq])
pred_vids = [k for k, v in sorted(pred_freq.items(), key=lambda item: item[1])][::-1]
pred_vids = pred_vids[:5]
for v in pred_vids_top5[:5]:
submit.append([u, v])
代码地址:https://github.com/datawhalechina/competition-baseline/tree/master/competition/%E7%A7%91%E5%A4%A7%E8%AE%AF%E9%A3%9EAI%E5%BC%80%E5%8F%91%E8%80%85%E5%A4%A7%E8%B5%9B2024