在微信视视频号推荐算法大赛中,给出来融合了OCR、ASR、图像、文字的多模态的内容理解特征向量Feed Embedding,共512维向量。对于给定的一定数量到访过微信视频号“热门推荐”的用户,根据这些用户在视频号内的历史n天的行为数据,通过算法在测试集上预测出这些用户对于不同视频内容的互动行为(包括点赞、点击头像、收藏、转发等)的发生概率。
![当推荐系统遇上多模态Embedding_算法](https://ss.csdn.net/p?https://pic4.zhimg.com/v2-1b55bd964fb9ebcb6c2766b2044ce5c3_b.jpg)
可见,多模态Embedding在推荐系统后续发展中的重要性,在本文之前,炼丹笔记也探讨类似的问题,包括《推荐融合GNN,图谱、多模态竟取得了如此惊艳的效果》和《多模态推荐之用户评论篇》
![当推荐系统遇上多模态Embedding_python_02](https://ss.csdn.net/p?https://pic2.zhimg.com/v2-d3b49025687cd3b2cdde0f68124ade35_b.jpg)
先看下整体模型架构:
![当推荐系统遇上多模态Embedding_python_03](https://ss.csdn.net/p?https://pic4.zhimg.com/v2-d1f6d86f2a4fb261fbe3e2d0a481a517_b.jpg)
MKGAT可以拆解为两个子模块,多模态embeding模块和推荐模块。在介绍各个子模块前,我们先介绍两个小的模块:
- 多模态图谱实体编码器:给不同类型实体编码。
- 多模态图谱注意力层:用注意力机制,融合所有邻居节点的信息,学习新实体的embedding。
多模态embeding把联合知识图谱作为输入,充分利用上面提到的两个小模块,去学习各个entity的表达。再用各个实体embeding的表达,去学习图谱之间的关系。推荐模块充分利用知识图谱学到的embedding ,和联合知识图谱去丰富用户和items的表达,从而提升推荐效果。
![当推荐系统遇上多模态Embedding_大数据_04](https://ss.csdn.net/p?https://pic1.zhimg.com/v2-1184e8bde0a15979af5e473b92973220_b.jpg)
目前非常多的推荐系统主要使用用户的一些基础反馈信息来作为最终的标签进行模型的训练,例如点击/购买等。
但是却鲜有文章去进一步挖掘用户的其它反馈。例如用户对于该产品的评论,很多的评论相较于点击等反馈更加具有表示性,比如你经常向一个用户推荐一类商品,该商品虽然点击率很高,但是该用户之前已经评论了恶心之类的,这么继续推下去的化很可能使得该用户不再使用该软件。所以推荐系统里面的用户评论是否有用呢,按理说是有用的,比如有些不良的商品点击率极高,但是评论却极差,通过挖掘评论的信息是可以很好地挖掘出此类的信息。
![当推荐系统遇上多模态Embedding_编程语言_05](https://ss.csdn.net/p?https://pic2.zhimg.com/v2-ac79f1df4d0cfec56c8188f069719041_b.jpg)
但是此类的评论信息是否真的有用,有多大的用户都是一个问好,实验显示:在大多数实践情况下, 最近的系统加入评论的效果是不如简单基线模型效果的;许多这样的系统在模型中隐藏评论时,性能只会有微小的变化;所以本文得出了下面的几个结论:
- 评论可能是非常重要的,但是最近的建模技术是很值得商榷的;
- 评论被作为一个正则而不是数据加入模型看起来更加有效;
- 该炉温更加关注一致的经验评估,尤其是数据集的选择和预处理策略;
![当推荐系统遇上多模态Embedding_python_06](https://ss.csdn.net/p?https://pic2.zhimg.com/v2-6995e888efa31503eae9f1fe19587161_b.jpg)
KDD Cup 2020 Challenges for Modern E-Commerce Platform: Multimodalities Recall 多模态召回赛题由阿里巴巴达摩院智能计算实验室发起并组织,关注电商行业中的多模信息学习问题。
![当推荐系统遇上多模态Embedding_python_07](https://ss.csdn.net/p?https://pic3.zhimg.com/v2-2e89e9d48ede03ed95840f58e1a1646a_b.jpg)
赛道提供了淘宝商城的真实数据,包括两部分,
1)搜索短句(Query)相关,为原始数据;
2)商品图片相关,考虑到知识产权等,提供的是使用Faster RCNN在图片上提取出的特征向量,两部分数据被组织为基于Query的图片召回问题,即有关文本模态和图片模态的召回问题。
大规模的营收和高速增长同时预示着,消费者对于电商服务有着巨大的需求。跟随这一增长,电商行业中各种模态的信息越来越丰富,如直播、博客等等。怎样在传统的搜索引擎和推荐系统中引入这些多模信息,更好地服务消费者,值得相关从业者深入探讨。
![当推荐系统遇上多模态Embedding_编程语言_08](https://ss.csdn.net/p?https://pic3.zhimg.com/v2-8a8e49309d19234be7c0a0fe06cbde22_b.jpg)
美团的季军方案主体部分包含两方面的内容:
1)通过联合多样化的负采样策略和蒸馏学习以桥接训练数据和测试集的分布,处理分布不一致问题;
2)采取细粒度的文本-图片匹配网络,进行多模信息融合,处理复杂多模信息匹配问题。
3)最后,通过两阶段训练和多模融合,进一步提升了模型表现。
整个方案的流程如下图所示:
![当推荐系统遇上多模态Embedding_大数据_09](https://ss.csdn.net/p?https://pic1.zhimg.com/v2-d0e9380016a1b1465b245143337f6f70_b.jpg)
具体细节,尽管通过多样负采样策略和预训练,可从不同角度去逼近真实分布,但由于未直接利用测试集信息指导负采样,这些采样策略仍有不足。因此,该方案采用蒸馏学习的办法,来进一步优化负采样逻辑,以求拿到更贴近测试集的样本集分布。
![当推荐系统遇上多模态Embedding_机器学习_10](https://ss.csdn.net/p?https://pic2.zhimg.com/v2-5621702c31dcc4e1bb66eeb5861945c9_b.jpg)
亚军方案从单流模型和双流模型中各选择了相应SOTA的算法ImageBERT和LXMERT。具体而言,针对比赛任务,两种算法分别进行了如下改进:
![当推荐系统遇上多模态Embedding_编程语言_11](https://ss.csdn.net/p?https://pic4.zhimg.com/v2-33a45c5fd099c2064527b0b724c35a8b_b.jpg)
(1)本方案中一共用到了两个版本的 ImageBERT模型:
ImageBERT-A:将Segment Embedding统一编码为0,不对图片特征和Query文本单独进行编码,在[CLS]位输出Query与Image的匹配关系,通过Cross Entropy Loss计算损失。
ImageBERT-B:Position Embedding去掉了ImageBert中图像目标框位置信息的Position Embedding结构。同时文本的Segment Embedding编码为0,图片特征的Segment Embedding编码为1。
![当推荐系统遇上多模态Embedding_编程语言_12](https://ss.csdn.net/p?https://pic2.zhimg.com/v2-84207c468350319ccd7db34eaf9f6b25_b.jpg)
(2)LXMERT模型方面主要的改进包括:
- 图片特征部分融入了目标框类别标签所对应的文本特征。
- Text-Image Matching Task中使用两层全连接网络进行图片和文本融合特征的二分类,其中第一个全连接层之后使用GeLU进行激活,然后通过LayerNorm进行归一化处理。
- 在第二个全连接层之后采用Cross Entropy Loss训练网络。