点击蓝字关注,提升学习效率
title:CBML: A Cluster-based Meta-learning Model for Session-based Recommendation
link:https://dl.acm.org/doi/pdf/10.1145/3459637.3482239
from:CIKM 2021
1. 导读
本文这主要是用于会话推荐的推荐方法,该方法主要针对冷启动方面,提出了对应的解决方式。主要包含两个方面,分别是基于自注意力转换模式学习和基于聚类的元学习。
自注意力部分还是集中在挖掘序列之间的关系的部分,缓解冷启动问题还是在元学习部分。考虑聚类,加入冷启动的商品被划分到了某一个聚类当中,那么我们就可以采用这个聚类中的信息来促进冷启动商品的预测,主要是这样的思想,具体见4.3。
2. 问题定义
去重后的商品集合为 ,匿名会话集合为 ,每个会话里包含了一组点击序列 ,按时间排序,其中 表示t时间点击的商品。会话推荐就是基于序列 预测 可能的商品,从所有商品中,选出预测概率top-n的。
3. 元学习设置
把会话看成一个任务。将会话集合划分为训练集 和测试集 ,对于每个序列,生成m-2个子序列如下,这些作为支持集 ,原序列作为查询集
4. 方法
如图所示为模型的整理流程,首先,IF-SAN集成了一个基于商品的自注意力块和一个基于特征的自注意力块来捕获在商品方面和特征方面的会话的转换模式,以获得用户更细粒度的顺序意图;针对冷启动,利用元学习为模型提供更好的初始参数。
本文所提的IF-SAN包含:商品级和特征级的embedding层,包含参数 ;商品级自注意力块和特征级自注意力块,参数 ,预测层,参数 。
用户序列 ,n是预先设置好的,如果序列长度小于n,则用0填充。然后look-up层将向量转换为embedding 。对于商品的属性,采用同样的方式对得到属性的embedding,,他们分别表示商品的类型,品牌和卖家的稠密表征。由于不同属性对最终的决策用不同的影响,因此此处作者采用vanilla注意力机制,求其加权和,公式如下,
用自注意力机制挖掘特征-特征/商品-商品的转换模式,商品和特征的这两个模块计算方式是一样的,只是输入不一样,这里所说的特征就是商品的属性表征。如图所示为其计算流程,可以发现和transformer的编码层有点类似。具体这里不做过多介绍,看图就一目了然了。为了捕获用户的长期兴趣和短期兴趣,将多层SAN后得到的输出 和最后一个非0的特征表征 (商品部分也一样)按比例结合得到最终的表征 ,其中w为可学习参数。
将商品和特征得到的最后表征 拼接得到 ,经过FC与需要判断的商品的embedding 做点积计算分数。
这部分主要是用元学习和参数 (这里包括后续的g,w等)来缓解冷启动问题,主要包含两部分:任务聚类和聚类感知的参数门。
尽管已经存在针对推荐问题的元学习方法和聚类方法,但没有人将这两种方法的优点结合起来。会话中的冷用户没有足够的记录来获得足够的偏好。而聚类方法可以帮助在相似的会话之间迁移共享知识,而元学习方法可以通过多个会话学习通用知识,这些知识可以快速适应新会话。因此,适合将聚类方法与元学习方法结合来解决冷启动问题。首先,为每个会话分配聚类,对上面拼接得到的 经过FC得到查询向量 ,公式如下,其中w为可学习参数, 。
然后,通过下式计算软分配概率 ,其中g为每个聚类的中心,K是设置好的超参数,表示聚类数量。
最后,会话u的聚类增强表征计算公式如下,其中 是惩罚。
由于不同的会话源自不同的分布(表示不同的偏好或爱好),因此使用单个全局共享参数来推荐所有会话是不合理的。因此作者在采用上述两种表征的同时,设计了一个聚类感知参数门来引导全局共享的初始参数为每个会话提供合适的初始参数以实现更好的性能。参数门计算公式如下,其中 表示拼接, 表示用sigmoid函数做激活函数的全连接层。
参数变为:
因此最后的预测为下式:
在元学习中,我们的目标是通过基于单个会话的支持集最小化推荐的预测损失来更新每个会话的局部参数。在聚类感知参数门中引导会话的全局共享初始参数后,我们可以在局部更新推荐器参数以最小化会话 𝑢 的预测损失。参数 更新方式如下,其中β为学习率,L为支持集上的损失函数。
通过一步梯度下降更新全局参数 和 。公式如下,其中损失函数是在查询集上计算的损失,γ为学习率。
5. 结果