前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CIKM 2019 EComm AI用户行为预测大赛三大方案解读

CIKM 2019 EComm AI用户行为预测大赛三大方案解读

作者头像
炼丹笔记
发布2021-05-14 16:08:37
1.1K0
发布2021-05-14 16:08:37
举报
文章被收录于专栏:炼丹笔记

作者:一元,炼丹笔记三品炼丹师

杰少, 炼丹笔记备胎小编

CIKM 2019 EComm AI方案解读

背景

本文解读CIKM 2019电商竞赛的三大获奖方案,这些方案都十分简单而且实用,如果刚刚做这块的朋友可以速速搭建一个非常高效的Baseline哦。

赛题背景

问题定义

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

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

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

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

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

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

提交格式

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

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

数据集

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

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

评估指标

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

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

第五名思路

  • CCSnet: Three layers network with count layer, correlate layer and sum layer

这个cssnet是作者自取的名字,所以网上没有,该方案很简单,基本不是很耗时,很值得借鉴。

第一层: 网络计数层

  • 统计每个用户在每个商品上面的交互次数,对于时间距离使用了1/N进行衰减。

第二层:商品相关性层

  • 统计两个商品之间的关联度,A和B关联度采用AB同时出现的次数除以A出现的次数来计算的。
  • 为了防止次数过少的商品的关联度的置信度受到严重影响,此处使用了平滑因子(此处取100)。

第三层: 神奇的SUM

  • 最后我们采用相乘的方式来做最终的排序:用用户和共现的商品的次数表示用户对于某个商品的关联度,然后再通过商品的关联度寻找和该商品最相近的商品,然后相乘排序推荐。

第四名方案

  • 当你不知道召回什么时,请加入最热门商品!

协同过滤高评分商品

经过对数据的探索,观察发现这题比较适用于基于物品的协同过滤。对于训练数据,我预处理了和每件物品相似度最高(以相交用户数来评判相似度)的一些物品。对用户有过历史行为的物品,根据时间、行为类型计算,加权计算其协同过滤列表中的物品的相似度,并以相似度作为关键值排序后从大到小召回。

同类热门商品

经过对数据的探索发现,用户对物品有行为之后,之后的行为大概率发生在同类、同商店的物品中。因此,对于用户最后若干次行为的物品,我召回了其同类、同商店的一定数量的热门物品,作为第 一类规则未填充满50个物品时的备选项。

全局热门商品

当上述两种规则均无法召回到50种商品时,将使用所有商品中最热门的商品进行填充。

第二名方案

整体流程:先通过协同过滤等策略筛选出候选集,然后采用Ranking策略(类似于精排)并进行集成选出最终的结果。

数据分割

  • 第一阶段:候选集产出,在候选集生成的过程中,我们先用最后三天作为验证,进行候选集的产出(确保能尽可能召回多的靠谱的商品)。
  • 第二阶段:排序,从召回的覆盖率高的商品中找出用户最有可能交互的50个商品。

候选集产出

1. 整体框架

  • 基于Item的协同过滤策略
  • 通过Deepwalk获取Embedding
  • 计算UI的相似矩阵,计算II的相似矩阵,然后采用UI * II = UI的方式得到新的UI矩阵。
2. UI矩阵

因为用户的兴趣会随着时间而改变,所以我们需要对此加权。

F(u,v) = \sum_{clicks ~ between~(u,v)} exp(-0.1 * the ~ day ~ since ~ the ~ click/buy/collect/cart)
3. II矩阵
  • 对矩阵进行稀疏表示,然后保留每行的Top10的分数的item;
  • 采用Deepwalk中的embedding,
I(v_1,v_2) = exp(-L_2~ distance(v_1,v_2)) * exp(- \alpha_{v_2}) \\ \alpha_v = \frac{log(1+how~many~users~click~v~the~last~day)}{log(number~of~users)}

此处的为流行率。

排序

1. 特征工程
  • 过于简单,不再阐述
2. 标签集合

3. 模型训练

模型预测结果

参考文献

  1. CIKM2019用户行为预测 比赛分享_江离:https://tianchi.aliyun.com/forum/postDetail?postId=81694
  2. CIKM2019用户行为预测 季军(Top5)比赛攻略_聪明恬恬傻歪歪:https://tianchi.aliyun.com/forum/postDetail?postId=81501
  3. CIKM2019用户行为预测 亚军攻略比赛攻略_JKY2019:https://tianchi.aliyun.com/notebook-ai/detail?postId=81149

是不是很好奇没有冠军方案,如果希望提前获取冠军方案解读,记得关注我们哦。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-10-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 炼丹笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2. UI矩阵
  • 3. II矩阵
  • 1. 特征工程
  • 2. 标签集合
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档