其他分享
首页 > 其他分享> > Zero Shot on the Cold-Start Problem: Model-Agnostic Interest Learning for Recommender Systems阅读笔记

Zero Shot on the Cold-Start Problem: Model-Agnostic Interest Learning for Recommender Systems阅读笔记

作者:互联网

动机

本文是2021年CIKM上的一篇论文。目前主流解决推荐系统用户冷启动问题的方法有利用辅助信息以及元学习的方法,但是这些方法的局限是新用户的兴趣以及行为依旧是缺失的。语义知识和预训练好的embedding并不能改变推荐系统对新用户比老用户了解少的困境。作者提出了双塔模型MAIL解决上述问题。

方法

通常我们在推荐系统种主要使用4类信息:1.用户属性。2.用户行为。3.上下文信息(这部分信息包括时间、天气、位置等)。4.物品信息。新用户与老用户的区别主要就在用户行为信息上,在本文中是针对zero-shot用户,新用户没有行为信息,本文提出的模型主要是为了
MAIL主要由两部分构成,一部分是zero-shot tower,这部分是对老用户进行训练,在新用户上推理,根据属性将老用户的行为信息传递给新用户,ranking tower是用来计算用户对物品的偏好评分,并预测用户是否会对这个物品进行操作。
整体MAIL结构如下

zero-shot tower

零样本塔用到用户属性和用户行为这两种信息,以用户属性为例,首先我们通过embedding层获取用户属性的embedding表示\(a_s\),之后通过一个加权,获取用户的属性特征表示

注意力系数\(\alpha _i\)由以下公式计算得出

其中z,w,b都是可以训练的。同理可以计算出关于用户行为的表示\(h_s^v\)。
基于\(h_s^a\)和\(h_s^v\),跨模态重构对齐用户的属性和行为,从而更有效地实现基于属性的行为生成。在属性空间,损失函数如下

在行为空间,损失函数如下

其中
作者还在\(P_s\)和\(Q_s\)上加入MMD约束最小化它们之间的分布距离,指导跨模态重构收敛


综上,零样本塔的损失主要由三部分构成

新用户的虚拟行为数据可由以下公式得出

ranking tower

在排名塔,有一个标志区分新用户与老用户

新用户与老用户的输入区别在于新用户的行为信息是由零样本塔计算得到的,老用户使用原本的数据就可以。

得到输入后,经过一个sum pooling层得到表征,以用户属性为例,其他计算方式类似

然后通过一个多层感知机得到输出

排名塔的损失函数是一个交叉熵损失函数

总的模型损失是zero-shot tower和ranking tower的损失和

训练技巧

1.使用两个优化器训练。\(G_A\)用于zero-shot tower,\(G_B\)用于ranking tower,虽然两个塔共享embedding,但是因为zero-shot tower目标是重构embedding向量,而不是改变embedding向量,因此\(G_A\)不能优化embedding层参数,否则会影响整体模型性能。
2.带有残差结构的自编码器,这里的思想和经典模型Wide&Deep相似,这种做法旨在保留模型的记忆能力和泛化能力。自编码器结构图和公式如下。

encoder

decoder

整体算法流程

实验结果

作者在两个数据集上做了实验,本文提出的MAIL模型均取得最好的效果。

总结

本文我认为最重要的部分在于zero-shot tower,这部分根据老用户的属性和行为训练出一个模型,然后用这个模型和新用户的属性计算得出新用户的行为。ranking tower中可以使用任意基于embedding的深度模型,比较灵活。本文除了离线评估外,还在网易云音乐上进行A/B测试,CTR提升了13%~15%,非常有效果。在本文中作者还将模型的代码和训练中的trick都分享出来,有助于复现模型和理解模型,这些都是十分有价值的。

标签:Shot,Learning,模型,Agnostic,用户,embedding,shot,tower,属性
来源: https://www.cnblogs.com/ambition-hhn/p/16447135.html