作者:一元,炼丹笔记三品炼丹师
杰少, 炼丹笔记备胎小编
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.
用户提交结果后,会在验证集上给出相应的指标反馈。比赛末期会给参赛选手提供与每日测试不同的测试集,其效果决定了最终比赛的排名。
评估指标
其中为用户未来点击的商品集合, 为选手提交的预测商品集合
第五名思路
- 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矩阵
因为用户的兴趣会随着时间而改变,所以我们需要对此加权。
3. II矩阵
- 对矩阵进行稀疏表示,然后保留每行的Top10的分数的item;
- 采用Deepwalk中的embedding,
此处的为流行率。
排序
1. 特征工程
- 过于简单,不再阐述
2. 标签集合
3. 模型训练
模型预测结果
参考文献
- CIKM2019用户行为预测 比赛分享_江离:https://tianchi.aliyun.com/forum/postDetail?postId=81694
- CIKM2019用户行为预测 季军(Top5)比赛攻略_聪明恬恬傻歪歪:https://tianchi.aliyun.com/forum/postDetail?postId=81501
- CIKM2019用户行为预测 亚军攻略比赛攻略_JKY2019:https://tianchi.aliyun.com/notebook-ai/detail?postId=81149
是不是很好奇没有冠军方案,如果希望提前获取冠军方案解读,记得关注我们哦。