所有文章 > 正文

KDD 2019 | s^2Meta: 基于元学习的场景化个性推荐系统

作者: 杜政晓

时间: 2019-08-15 15:31

为了解决这一问题,我们提出使用元学习(Meta Learning)来解决这一问题。我们将一个场景c下的推荐看作是一个学习任务T_c。通过一个基于神经网络的Meta Learner 来控制在具体场景下推荐模型参数的学习策略。而Meta Learner的参数则是通过在现有的多个场景下学习得到。

论文下载:Sequential Scenario-Specific Meta Learner for Online Recommendation

代码&数据:https://github.com/THUDM/ScenarioMeta

传统的推荐算法,比如协同过滤算法,往往都是在单一的情景下、对固定的用户和商品集合的推荐。然而,在一个Web应用中往往存在多个需要进行推荐的场景。比如在淘宝APP中,经常会有不同的分页面来展示满足不同需求的商品,每个分页面都需要向用户提供个性化的推荐来最大化用户的购买行为。同时,不同推荐场景的背景信息对提供推荐可能非常关键。比如在双11购物节,用户为了“拼单”会购买很多平常不会购买的商品。在这种场景下用户的行为模式就会与平常出现比较大的差异。

tt11.png

淘宝APP中的不同推荐场景

为用户提供不同场景下的推荐有如下几个挑战。首先是场景的冷启动问题。在现实中场景受到的关注往往是符合长尾效应的,有很大一部分场景在启动初期得到的关注较少,这意味着在该场景下的训练数据较少,对于目前已有的推荐算法来说是一个很大的挑战。其次是用户偏好的迁移问题。对于绝大多数的场景来说,只有很少一部分用户在当前场景下是有过交互数据的。而大部分用户在该场景下都属于新用户。因此我们需要从该用户在其他场景下的偏好来推断出用户在当前场景下的偏好。最后是不同场景下超参数的选择问题。基于机器学习的推荐方法受超参数选择的影响很大。对于不同场景下的推荐模型,适宜的超参数往往是不同的。手动选择超参数不仅需要丰富的专业经验和大量的计算资源,还难以保证最优的效果。

t114.png

s2Meta框架示意图

为了解决这一问题,我们提出使用元学习(Meta Learning)来解决这一问题。我们将一个场景c下的推荐看作是一个学习任务Tc。通过一个基于神经网络的Meta Learner 来控制在具体场景下推荐模型参数的学习策略。而Meta Learner的参数则是通过在现有的多个场景下学习得到。在给定损失函数L,Meta Learner的参数ω的优化目标为:

t115.png

Meta Learner控制的推荐模型的学习策略分为三个部分。一是推荐模型参数的初始化。不同于传统深度学习中对参数的随机初始化,我们使用一个全局的固定初始值。这个全局初始值经过优化之后,能够很快地适应不同的场景。二是推荐模型参数的更新策略。我们使用多步随机梯度下降来更新推荐模型的参数,但是我们使用神经网络来预测每一步的学习率,从而更加灵活。三是推荐模型参数更新过程的停止。传统的深度学习往往通过在验证集上的准确率来进行early-stop,但是在训练数据较少的情况下,验证集的准确率很难反映真实的泛化性能。我们使用神经网络来决定在哪一步更新应该停止,从而避免因为过多的更新步数而引起在训练集上的过拟合。

实验结果

t116.png

我们在两个公共数据集(Amazon Review和Movielens 20M)和一个自己发布的大规模场景化数据集(Taobao Cloud Theme)上进行了实验。对比的方法包括了item recommendation(NeuMF)和cross-domain recommendation的最新方法。比起最好的Baseline,在召回率上取得了1.90%-10.42%的相对提升。

为了促进将来在基于场景的个性化推荐上的研究,我们发布了一个大规模的场景化推荐数据集,从淘宝APP的云主题页面(提供不同场景下推荐的子页面)的点击记录中生成,含有在355个场景下的共140万条用户-商品交互数据,同时还提供了每个用户之前1个月的购买记录来表示用户的偏好。

更多细节可见https://tianchi.aliyun.com/dataset/dataDetail?dataId=9716。

[关于转载]:本文为“AMiner”官网文章。转载本文请联系原作者获取授权,转载仅限全文转载并保留文章标题及内容,不得删改、添加内容绕开原创保护,且文章开头必须注明:转自“AMiner”官网。谢谢您的合作。

二维码 扫码微信阅读
推荐阅读 更多