本系列将系统介绍召回技术在内容推荐的实践与总结。
第二篇:CMDM:基于异构序列融合的多兴趣深度召回模型在内容平台的探索和实践
背景
淘宝逛逛场景作为一个全新的内容域电商阵地,包含了逛和买两大用户消费心智的建立;所以与传统的商品推荐不同的是内容推荐更需要兼顾内容生态问题,传统的cf based i2i, deep i2i 及 双塔u2i deep match模型在内容推荐领域由于缺乏足够的doc侧表征建模,所以往往很难有效平衡效率与生态之间的关系。同时目前的推荐系统主要还是依赖behaviour based模型的,所以如何在基于behaviour based模型的基础上融合多模态表征带来的泛化性能力是我们主要面临的挑战。
问题分析
内容召回模型的结果决定了整个内容推荐系统的上界,所以目前常见的内容推荐系统的召回体系通常涵盖两种范式的模型,即基于行为的模型与content based的模型。前者通常主要承担了效率指标的任务,后者通常更多的是进行内容的冷启动。
由于主流的推荐系统的召回体系都是由基于行为的模型主导的,即该类型的流量占比是远大于其他类的,所以如何使的基于行为的模型能够兼顾一定的泛化性是主要面临的挑战。从基于行为的模型出发,这类模型严重依赖于id类型特征的贡献,所以这种推荐模型很容易使得整个系统陷入数据自旋问题,而通过给doc侧增加一些相对泛化的特征,及dropout等技术,虽然也能使模型在学习的过程中弱化对于id类特征的依赖,但是通常这类做法不是最优的。目前常见的doc表征做法主要有基于多模态预训练技术提取的内容表征向量作为辅助信息,结合内容理解技术提取的内容标签等作为辅助信息加入到双塔模型的doc侧,这类做法在线上也取得了一定的效果,但是由于这类meta信息与模型的结合只是特征层面的,并不是一个最优的结构,所以我们也对doc表征如何融合meta信息进行了一定程度的探索。
模型结构
我们在传统的deep i2i,及双塔deep u2i结构的基础上对doc侧进行了一些探索。在比较了基于行为的deep i2i,deep u2i与基于content based特征结构构造的deep i2i, deep u2i模型后我们发现两种特征结构得到模型之间其实loss差异很大,但是对多模态预训练得到的表征向量如果进行多层树状结构的聚类等操作后,随着这个聚类节点的增大,那么如果将这个聚类得到的虚拟node id作为一个特征来替换原来的多模态向量,那么这个模型的loss差异会逐步接近于基于行为特征构建的模型。从而我们提出了将基于行为特征构建的行为塔与基于内容特征构建的内容塔分别独立建模,最终通过对这两个塔产生的向量以相似度任务的方式进行结合的方法进行了base模型的建模,从而试图将相似的内容的表征向量向behavior driven model的表征空间里去靠。而在第二阶段,我们则对这两个塔通过引入gate机制的方式进行了整合,从而使得模型结构看起来更加简洁的同时也进一步提升了整体表现,下面我们将分别从base结构及融合后验信息的gating结构两方面进行简单阐述。
▐ base结构
我们在deep i2i及deep u2i两种范式的基础上,针对doc侧结合multi-view learning的思路进行了分别建模,最终通过多任务loss结合的方式进行训练,从而实现对doc的行为塔与基于doc自身内容属性的内容塔的分别建模。其中针对doc自身内容属性的内容塔我们使用了来自内容理解团队提供的内容标签及多模态向量表征,这部分的相关工作可以参考(Understanding Chinese Video and Language via Contrastive Multimodal Pre-Training).
首先doc侧的表征刻画使用了两个不同的特征子集来分别表征行为塔(含内容id等的特征结构,但不含内容自身的meta信息)与内容塔(不含id类的特征结构,主要由内容自身的meta信息及多模态信息),两个不同视图的塔都会与trigger/user塔进行loss的计算,同时考虑到两种视图描述的是同一个事物本身,那么这两个视图之间可以依靠顶层设计进行相似度任务的计算,所以我们对于行为塔与内容塔又使用了triplet loss来构造损失函数使得embedding空间更具有区分度。
该模型上线后,相比标准的双塔结构(用户表征塔及行为塔)在效率与生态指标上 都取得了不错的提升。
▐ 召回阶段融合后验信息的gating结构
相较于前文的base结构,由于在模型的过程中行为塔与内容塔是分别建模的,处理方式较为简单,所以我们在base结构的基础上提出了融合内容自身后验的曝光、点击等统计信息作为gating结构输入的,通过gate结构来控制基于行为特征的id塔及基于内容自身内容属性特征构建的meta塔之间的融合关系。该模型相对于base模型而言由于利用了后验统计信息来帮助模型学习如何调节行为塔表征与内容塔表征之间的融合权重,从而使得样本集合中后验信息丰富的内容能够更依赖于其行为id塔学习得到的表征,而那些后验信息稀疏的内容则更多的能利用其相对泛化的meta塔学习得到的表征,从而相较base模型更能兼顾效率指标与生态指标的平衡。在这里我们也尝试了多种双塔融合的方式,其中包括concat型融合与加和型融合;
其中concat型融合结构的 item_embedding计算方式为:item_embedding = concat(id_embedding, gate*meta_embedding)在计算user_embedding 与 item_embedding 的内积时,等价于id表征和meta表征的加合。同时gate控制了meta_embedding的参与度,期望能学习到当统计特征(点击pv,曝光pv等)较小时,gate越大,meta_embedding的参与度越强
而加和型模型结构将gate值作为调节id塔embedding和mata塔embedding的权重,最终融合公式为:
模型对于较强的内容(具有更高的点击、曝光)更多的使用id类型特征,对于较弱的内容,增加meta类特征的权重,增加模型的泛化能力。
在整体实验中我们发现加和型融合相较concat型融合更能取得较为明显的提升。
总结与展望
本文提出的两种doc表征建模方式由于融合了基于行为的表示与基于内容自身多模态的表示,所以相对于传统的双塔deep match更能兼顾内容生态与效率的平衡,但由于目前多模态部分是一个单独的自监督任务,所以目前我们也正在尝试使用一个不考虑online serving的融合内容不同模态信息的end2end推荐任务进行不同内容表征的doc表征建模任务,之后通过将这个预训练的doc表征初始化的方式指导下游召回任务进行学习,从而规避rt瓶颈的同时进一步提升模型表征的学习。
总结与展望
我们来自淘宝逛逛算法团队,逛逛是淘宝重要的内容化场景,团队优势有:
-
业务空间大、基础设施完善:场景海量反馈,在工程团队的支持下,算法工程师可以轻松上线大规模模型,分钟级更新,更加注重算法本身。
-
团队氛围好、研究与落地深度结合:团队不仅仅解决业务算法问题,还会紧跟学术领域进展。也欢迎有实习想法的同学加入,由资深师兄根据同学优势与兴趣定义好业务问题,辅导研究,给每位同学都有充分的成长空间。