Learning Graph Meta Embeddings for Cold-Start Ads in Click-Through Rate Prediction, SIGIR 2021
https://arxiv.org/pdf/2105.08909.pdf
1. 背景
对于训练好的推荐模型,当遇到冷启动的商品时,由于缺乏充分的数据,无法学习到好的embedding,从而会导致性能下降。本文提出Graph Meta Embedding (GME) 方法,利用图神经网络和元学习快速学习生成冷启动商品的初始id embedding。GME一方面考虑商品自身的属性信息,另一方面考虑旧商品和冷启动商品之间的关系。
GME主要包含两个部分:EG(embedding generator)和GAT。EG用于生成id embedding,GAT用于蒸馏信息。从不同的角度分别提出了GME-P,GME-G,GME-A,GME-A效果最好。
2. 方法
GME仅针对冷启动的商品,如上图所示,当广告进来后,进行查找,若能找到embedding,则为旧的,若找不到在进行GME来生成初始embedding。
如图所示为GME-P的示意图,GME-P利用新商品的属性和预训练得到的邻居旧商品的id embedding来得到冷启动新商品的id embedding。首先利用新商品的属性来生成一个基础的id embedding ,然后利用这些邻居embedding 的有用信息来细化基础id embedding 。
这部分利用新商品相关的属性特征(包括类别,品牌等)生成基础的id embedding。将商品实例表示为 ,ID表示商品id,x表示和商品相关的特征,o表示和商品不相关的特征(如用户特征,上下文特征等)。将商品相关的特征的embedding拼接后得到 ,然后通过下式得到 。其中w为可学习参数,γ为缩放超参数。
基于上面构建的商品之间的关系图,本节作者采用GAT将邻居信息整合到新商品中,计算注意力机制系数公式如下,leakyrelu的系数为0.2。这里的注意力系数不仅计算了新商品和邻居之间的系数,也计算新商品与自己的自注意力系数。
然后对所有embedding(包括自己和邻居)加权求和,公式如下,
该方法用到的周围邻居的embedding是原始推荐系统模型中得到的,没有在属性和id embedding之间加任何约束,并且所有embedding都是随机初始化的。可能遇到具有相同属性的两个商品之间的embedding差别很大,导致计算得到的注意力系数没有意义。
如图所示为GME-G的示意图。为了解决GME-P的缺陷,GME-G将新商品和邻居旧商品都通过EG结合对应的属性来得到他们的embedding。
这里生成方式和GME-P一样,公式如下,其中g0表示新商品,gi表示邻居。
这里细化的方式和GME-P一样,只是把GME-P中直接由预训练好的推荐模型得到embedding的方式改成了同样适用EG来生成embedding,公式也是类似的,
GME-G虽然解决了GME-P的缺陷,但是需要重复生成旧商品的embedding。生成的embedding可能存在噪声,而重复生成可能将噪声放大。
未解决GME-G的问题,本节提出GME-A方法。如上图所示为GME-A的示意图,该方法将“生成”和“细化”两个步骤颠倒,并且在细化阶段细化的不再是id embedding而是属性的embedding。
这部分通过上面建的商品属性关系图,利用邻居旧商品的属性和新商品的属性进行细化,公式如下,这里也是包含新商品自身和周围邻居一起计算的。
这部分就是直接采用细化后的属性embedding得到对应的id embedding。 计算方式和前面类似。
首选训练好一个常用的推荐模型,然后固定其参数不变,训练GME的参数。损失函数考虑两个方面:1)新商品的CTR预测误差应该要小,2)在少量标记实例收集后,应该要能根据少量梯度更新来快速学习。分别表示为以下两个损失函数 。
对于给定的训练数据,随机从中选出两个不相交的minibatch ,分别包含M个样本。首先通过GME得到 中的embedding ,然后得到预测概率 ,表示第j个样本的预测概率。交叉熵损失函数 为下式,
然后计算 关于初始embedding 的梯度,并经过一步梯度下降,可以得到新的自适应embedding,公式如下,
然后在 上测试新的 ,他的损失函数为 ,
总的损失函数为
3. 结果
4. 总结
本文作者主要从新商品的属性以及新商品和旧商品之间在属性上的关系来生成更好的embedding,通过GAT融合邻居节点的信息得到更好的属性embedding,再用属性embedding得到冷启动商品的id embedding。
由于公众号试行乱序推送,您可能不再准时收到机器学习与推荐算法的推送。为了第一时间收到本号的干货内容, 请将本号设为星标,以及常点文末右下角的“在看”。