此处楼主小 Q 主要想讨论一下的是:为什么要采用互补 masking 模式构建对比学习的变体呢,为什么采用互信息高的特征集会比随机 masking 效果好呢。 在论文中有这么一段描述: For instance, the SSL contrastive learning task may exploit the shortcut of highly correlated features between the two augmented examples, making the SSL task too easy. 从字面意思看,是说随机 masking 可能有一些高度相关的 feature 分到两个变体中, CL Train 的就太 easy 了,所以要加大一下难度的样子。 hmmm,查了一些资料,没找到更详细的解析了,大致意思是由于物品的不同特征可能存在着一些关联性,随机 masking 可能会使得模型在对比学习的过程中,通过关联度较高的特征来“猜”出被 mask 的特征,使得任务训练变得简单。 这里小 Q 尝试举个例子,来强行解释一下吧,假设:item 是个商品,它有品类,品牌,产品系列,价格等特征,假设“品牌”被拆分到变体 h 中,“产品系列”被拆分到变体 g 中,看上去两个变体都是不同的,但是两个特征包含的隐信息其实没太大区别,最终两个变体的 embedding 太容易相似,就不到训练模型的目的。至于为什么要采用互补 masking 模式,大致也是为了保证变体的差异性。 好,小 Q 只能忽悠到这个程度了,大家有别的想法欢迎在评论区留言。
3.5 联合训练
做完对比学习,下一个步骤就是联合训练了 ,先上个论文中的模型图:
从上图可以看出,整个 item tower 是被 user-item 双塔召回的主任务、对比学习辅助任务中的 encoder H 和 G,这三者所共享的。 论文的第二个重点来了,“We sample items uniformly from the corpus for Lself " ,论文中明确表示参与对比学习的样本,和参与主任务的样本,来自不同的样本空间。主任务,需要拟合用户与 item 之间的真实互动,还是以已经曝光过的 user/item 为主。对比学习部分,是为了消除推荐长尾问题,主要是要关注曝光率低的 item。