CIKM EComm AI用户行为预测大赛冠军方案解读

2021-05-14 16:09:55 浏览数 (1)

作者:杰少

排版:一元

CIKM EComm AI冠军方案解读

简介

本次CIKM2019的赛题难点在与数据集过大,如何在此情况下快速迭代模型,实现精准的预测是一大挑战,本次竞赛的前排方案包括分享开源出来的冠军方案也都采用了常规的召回 排序的策略。

赛题背景

问题定义

在电商场景中,推荐系统作为电商核心功能之一,对用户体验的提升有重要作用。预测用户的兴趣,为其做出合理的推荐是工业界与学术界长久以来研究的课题。经典方法包括基于内容的推荐、协同过滤等,一定程度上完成了推荐系统的任务。近年来,随着图神经网络研究的兴起,基于深度学习的GNN(Graph Neural Network)在推荐领域也逐渐称为研究热点。

电商场景中, 用户,商品,以及两者之间的行为可以用一张二部图来表示。预测用户未来的行为, 转化为预测二部图中用户-商品边的概率,有更好的可解释性、可推理性。

图1是一个包含用户和商品的二部图。两种类型的节点之间存在不同的用户行为,即曝光、点击、支付、加入购物车、收藏。对图结构的探索,比如预测用户与商品之间是否会存在一条潜在的“点击”边,等价于对用户兴趣的建模/完成推荐。准确的推荐会给电商系统带来更好的用户体验,减少用户面对海量的商品时的信息过载。

但是,构建这样的推荐系统常常面临一些挑战, 首先是如何处理各种用户行为。比如用户商品之前存在的“点击边”和“收藏边”,对用户个性的刻画有什么不同的影响?相同的“点击边”对不同的商品——日用品&奢侈品,有什么不用的信号?不同时间长度的边,其影响力改如何衡量?其次的挑战是冷启动问题。具体来讲, 是一些没有行为/行为很少的用户/商品节点,如何将他们纳入推荐体系?第三个挑战在于何如处理边之上的时间信息。

任务: 根据用户历史行为预测未来行为

对于特定的用户, 为其推荐最多50个TA未来3天可能会点击的商品。

1. 提交格式

提交格式参见 表格 1。参赛选手需要在user_id之后添加一列预测结果(item_ids),逗号分隔不同的商品id。注意,推荐商品数量上限为50。user_id与item_ids之间以制表符(t)分隔,item_id之间以逗号分隔。

注意,推荐商品数量上限为50。如果此处结果超过50个商品,评测将返回错误信息。

2. 数据集

训练数据集总共分为4部分。第一部分是是用户对商品的行为, 参加 表格 2。这里可能的行为包括点击、购买、加入购物车、收藏。第二部分是用户特征,参见 表格 3. 第三部分是商品的特征,参见 表格 4。

用户提交结果后,会在验证集上给出相应的指标反馈。比赛末期会给参赛选手提供与每日测试不同的测试集,其效果决定了最终比赛的排名。

3. 评估指标

recall@50 = frac{1}{N} sum_{i=1}^N frac{|P_i cap I_i|}{|P_i|}, s.t. |I_i| le 50

其中为用户未来点击的商品集合, 为选手提交的预测商品集合,

第一名方案

模型框架

模型到框架分为四块:

  1. 先对数据进行预处理;
  2. 对明显对层次关系进行建模;
  3. 对于不是非常明显的关系进行建模;
  4. 最终的预测模型。

最终建模的流程

  • 通过显示的层次关系得到2000个候选;
  • 然后对2000个候选进行排序。

数据预处理

  • 这块我们抽取用户,商品以及用户商品的特征

明显的层次特征

I2I的相似性

s(i,j) = sum_{u in U_i cap U_j} sum_{v in U_i cap U_j} frac{1}{alpha |I_u cap I_v|}

协同过滤函数

CF(u,i) = sum_{j in I_u}s(i,j) * gamma_{uj}

不同层次的关系

隐式层次特征

通过上面的方式计算得到隐式特征。

模型预测

实验结果

小结

总结

该赛题最大的挑战在与数据集过大,所以常规的召回 精排就非常重要,而召回的覆盖率又是核心,所以在确保召回的基础上进一步优化精排还是非常传统的思路。

模型整体还是很简单的,但确实非常值得借鉴。

参考文献

  1. CIKM2019用户行为预测 冠军攻略比赛攻略_WWG:https://tianchi.aliyun.com/notebook-ai/detail?postId=81672

0 人点赞