一、什么是比照学习

1.1 比照学习的界说

比照学习(Contrastive Learning, CL)是近年来 AI 范畴的抢手研究方向,招引了很多研究学者的关注,其所属的自监督学习方法,更是在 ICLR 2020 被 Bengio 和 LeCun 等大佬点名称为 AI 的未来,后陆续登陆 NIPS, ACL, KDD, CIKM 等各大顶会,Google, Facebook, DeepMind,阿里、腾讯、字节等大厂也纷繁对其投入精力,CL 的相关工作也是刷爆了 CV,甚至 NLP 部分问题的 SOTA,在 AI 圈的风头可谓一时无两。

CL 的技术源泉来自衡量学习,大概的思维是:界说好样本的正例和负例,以及映射联系(将实体映射到新的空间),优化方针是让正例在空间中与方针样本的间隔近一些,而负例要相对远一些。正由于如此,CL 看上去跟向量化召回思路很像,但其实二者有实质的差异,向量化召回归于监督学习的一种,会有清晰的标签数据,并且更重视的负样本的挑选(素有负样本为王的“学说”);而 CL 是自监督学习(归于无监督学习的一种范式)的一支,不需求人工标示的标签信息,直接运用数据自身作为监督信息,学习样本数据的特征表达,然后引用于下流使命。此外,CL 的中心技术是数据增强(Data Augmentation),更加重视的是怎么结构正样本。下图是一个笼统的 CL 全体流程图

对比学习算法在转转的实践

比照学习的标签信息来源于数据自身,中心模块是数据增强。图画范畴的数据增强技术是比较直观的,比方图画的旋转、遮挡、取部分、上色、含糊等操作,都能够得到一张与原图全体相似但局部相异的新图(即增强出来的新图),下图是部分图画数据增强的手法(出自SimCLR)。

对比学习算法在转转的实践

1.2 比照学习的原理

谈到CL的原理,不得不提自监督学习,它避开了人工标示的高成本,以及标签低掩盖的稀少性,更简单学到通用的特征表明。自监督学习能够分红两大类:生成式办法和比照式办法。生成式办法的典型代表是自编码器,而比照式学习的经典代表即ICLR 2020的SimCLR,经过(增强后的)正负样本在特征空间的比照学习特征表明。比较较生成式办法,比照式办法的优势在于无需对样本进行像素级的重构,只需求在特征空间能够学到可区别性即可,这使得相关的优化变得简单。笔者认为,CL的有效性首要体现在学习item表明的可区别性,而可区别性的学习依赖正负样本的结构思路,以及详细的模型结构和优化方针。

结合CL的完成过程,Dr Zhang笼统了三个CL有必要要回答的问题,也是其差异于衡量学习的典型特征,即(1)怎么结构正例和负例,也就是数据增强详细是怎么完成的;(2)Encoder映射函数怎么结构,不只要尽或许多地保留原始信息,并且要避免崩塌问题;(3)丢失函数怎么设计,现在通常运用的NCE loss,如下公式所示。不难看出,这三个基本问题对应建模的三要素:样本,模型,优化算法Li=−log(exp(S(zi,zi+)/)/j=0Kexp(S(zi,zj)/))L_i=-log(exp(S(z_i,{z_i}^+)/\tau)/\Sigma_{j=0}^{K}exp(S(z_i,z_j)/\tau)) 从 loss 公式中能够看出,分子部分着重的是与正例的间隔越近越好,S函数衡量的是相似性,间隔越近对应的S值越大,分母着重的是与负例的间隔越远越好,loss 越低,对应的可区别性越高。

在这三个基本问题中,数据增强是 CL 算法的中心立异点,不同的增强手法是算法有效性的基本保障,也是各大 CL 算法的identity;Encoder函数通常凭借神经网络完成;除 NCE loss外,还有其他 loss 的变体,比方Google就提出了监督比照丢失。

1.3 经典比照学习算法系列

CL是自监督学习的一种学习算法,提到自监督学习,Bert 恐怕是 NLP 范畴无法逃避的话题,Bert 预练习 + Fine-tuning 的模式在诸多问题的处理方案中完成了突破,既然自监督能够在 NLP 获得成功,难道核算机视觉就不能够吗?实践上 Bert 在 NLP 范畴获得的成功,也直接地影响了 CL 在图画范畴的产生和开展。鉴于数据增强能够在图画范畴直观地打开,CL 也是率先在 CV 范畴获得进展,比方 CL 的开展关键—— SimCLR 算法,其立异点首要包含(1)探究了多种不同的数据增强技术的组合,挑选了最优;(2)在 Encoder 之后增加了非线性映射 Projector,首要是考虑 Encoder 学习的向量表明会把增强的信息包含在内,而 Projector 则旨在去除这部分影响,回归数据的实质。后来Hinton的学生在 SimCLR 的基础上完成了 SimCLR v2,首要改进点在于 Encoder 的网络结构,一起借鉴了 MoCo 运用的 Memory Bank 的思维,进一步提升了 SOTA。

实践上,在 SimCLR 之前,Kaiming He 在2019年末提出了比照学习的另一个经典算法MoCo,其首要思维是既然比照是在正负样本之间进行的,那么增加负样本数量,能够进步学习使命的难度,然后增强模型功能,Memory Bank 是处理该问题的经典思路,但却无法避免表明不一致的问题,鉴于此,MoCo 算法提出了运用动量的方法更新 Encoder 参数,然后处理新旧候选样本编码不一致的问题。后来,Kaiming He 又在 MoCo 的基础上提出了 MoCo v2(在 SimCLR 提出之后),模型首要结构没有改动,首要在数据增强的办法、Encoder 结构以及学习率等细节问题上做了优化。

二、比照学习的运用

比照学习不仅仅学术界在图画、文本、多模态等多个范畴的抢手研究方向,一起也在以引荐体系为代表的工业界得到了运用。

Google 将 CL 运用于引荐体系Google SSL,目的在于针对冷门、小众的 item 也能学习到高质量的向量表明,然后辅助处理引荐冷启动问题。其数据增强技术首要选用 Random Feature Masking(RFM),Correlated Feature Masking(CFM)的办法(CFM 一定程度上处理了 RFM 或许结构出无效变体的问题),然后 CL 以辅助塔的方法,结合双塔召回的主使命一起练习,全体流程如下图所示

对比学习算法在转转的实践

在模型的练习过程中,主使命的 item 首要还是来自曝光日志,因此也是对头部抢手 item 比较友好,为了消除马太效应的影响,在辅助使命中的样本结构需求考虑与主使命不同的散布,后续 CL 在转转的实践过程中也是借鉴了这样的思考,然后确保模型学习成果的充沛掩盖。

数据增强不限制在 item 侧,Alibaba-Seq2seq将 CL 的思维运用在序列引荐问题上,即输入用户行为序列,预测下一个或许交互的 item。详细地,其数据增强首要运用在用户行为序列特征,将用户前史行为序列按照时序划分红两个子序列,作为数据增强后的用户的表明,喂入双塔模型,终究输出成果越相似越好。与此一起,该文为了显式建模用户的多兴趣,在 Encoder 部分提取出多个向量,而不是压缩成一个用户向量。由于跟着子序列的拆分,以及正负例的结构,用户天然具有多个行为序列的向量表明,在正例中,用户前一部分前史行为的向量,与后一部分前史行为的向量,间隔相近,而在负例中,不同用户的间隔相对较远,并且即使同一用户,在不同类别产品的向量表明也相对较远。

CL 还能够与其他学习范式结合运用,图比照学习,全体结构如下图所示

对比学习算法在转转的实践

GCL 通常经过随机删除图中的点或许边,完成图数据的增强,而本文的作者倾向于坚持重要的结构和特点不变,扰动产生在不重要的边或许节点。

三、比照学习在转转的实践

图画范畴获得了成功,文本范畴也是能够的,比方美团-ConSERT算法,在句子语义匹配使命的实验中,比较之前的 SOTA(BERT-flow)提升了8%,并且在少量样本下仍能体现出较好的功能提升。该算法将数据增强作用在 Embedding 层,选用隐式生成增强样本的办法,详细地,提出了四种数据增强办法:对立进犯(Adversarial Attack),打乱词序(Token Shuffling),裁剪(Cutoff)和 Dropout,这四种办法均经过调整 Embedding 矩阵得到,比显式增强办法更高效。

3.1 CL在引荐召回的实践

转转平台致力于促进低碳循环经济的更好开展,能够掩盖全品类产品,近年来尤其在手机3C范畴的开展体现突出。CL 在转转引荐体系中的实践也是挑选了根据文本的运用思路,考虑到二手交易特有的特点,需求处理的问题包含(1)二手产品的孤品特点,导致 ID 类的向量并不适用;(2)数据增强是怎么完成的;(3)正例和负例怎么结构;(4)Encoder 的模型结构是怎样的(包含 loss 的设计问题)。针对这四个问题,结合下面的全体流程图进行详细阐明

对比学习算法在转转的实践

针对二手产品的孤品特点问题,咱们选用根据文本的向量作为产品的表征,详细地,运用产品的文本描述(包含标题与内容)调集,练习 word2vec 模型,并根据词向量经过 pooling 得到产品的向量表明。

自编码器(Auto Encoder)算法是文本比照学习范畴常用的数据增强手法之一(除此之外,还有机器翻译、CBERT等不同思路),咱们也是选用 AE 算法练习模型,学习产品向量,并运用算法的中间向量作为产品的增强向量表明,也就有了正例。

负例的生产原则是 Batch 内随机选取不相似的产品,相似产品的判别根据是根据用户的后验点击行为核算而来。在以 CF(协同过滤)为代表的引荐体系召回成果中,能够经过一起点击行为召回的产品组合,认为是相似的,否则认为是不相似的。之所以选用行为根据判别是否相似,一方面是为了将用户的行为引入其间,完成文本与行为的有机结合,另一方面也是为了尽或许地贴合事务方针。

详细到 Encoder 部分,咱们选用的是类似孪生网络的双塔结构,别离喂入样本(正正 or 正负)的文本向量,练习分类模型,网络结构为三层全衔接的神经网络,双塔同享该网络参数,并经过优化穿插熵丢失优化模型参数。实践工业界,大部分引荐体系中双塔模型的练习方针均为用户后验行为(点击、保藏、下单等),而咱们的练习方针是样本相似与否,之所以选用孪生网络的方法,也是出于这样做能够保证学习成果的掩盖。

根据 CL 的常规思路,提取终究 Encoder 部分的输入向量作为产品的向量化表明,能够进一步在引荐体系的召回、粗排甚至精排等环节运用。现在已经在转转引荐体系的召回模块落地,给线上带来了超过10%的下单提袋率的提升。

3.2 CL在转转的未来规划

经过人工评价以及线上AB实验,充沛确认了CL习得向量表明的有效性,在召回模块落地后,能够在引荐体系其他模块,甚至其他算法场景推而广之。以预练习的方法学习产品向量表明(当然,也能够学习用户的向量表明),仅仅一条运用途径,CL 更多的是提供了一种学习结构或许学习思路,经过数据增强和比照的方法,使算法学习物品的可区别性,这样的思路能够自然地引入引荐体系的排序模块,由于排序问题也能够理解成物品的可区别性问题。

> 转转研制中心及业界小伙伴们的技术学习交流平台,定时共享一线的实战经验及业界前沿的技术话题。 > 关注大众号「转转技术」(综合性)、「大转转FE」(专心于FE)、「转转QA」(专心于QA),更多干货实践,欢迎交流共享~