浅谈双塔模型在推荐和匹配中的作用
双塔模型已经被不少公司在推荐系统中使用,那么,双塔模型究竟有哪些核心与优势呢?在广告匹配场景里,它又可以如何被应用?这篇文章里,作者就做了分享,一切来看一下。
随着互联网的发展,用户面临着信息过载的问题。如何从海量的内容中快速地找到用户感兴趣的信息,成为了推荐系统必须解决的问题。在许多先进的推荐系统中,“双塔模型”已成为解决这一问题的重要技术之一。
全球有多家知名公司已经在其推荐系统中采用双塔模型,并取得了显著的进展和成效,由于其需要处理庞大的“用户”和“物品”集合,同时还要保证实时响应和个性化的用户体验,所以双塔模型在大规模的在线服务平台中特别受欢迎,包括Google的YouTube推荐算法就曾使用类似于双塔模型的结构,来生成用户和视频的高维嵌入,并计算它们之间的匹配度,以提供个性化内容推荐。
一、双塔模型的产生
传统的推荐系统多依赖于用户的历史行为数据来预测他们对未知内容的偏好。然而,随着深度学习技术的兴起,人们开始尝试通过机器学习模型来进一步挖掘和理解用户数据和内容数据中隐含的深层次关系。而双塔模型(Dual-Encoder Model)正是基于这一思想诞生的。
在讲双塔模型之前,不得不提到早期的DSSM(Deep Structured Semantic Models)是一种 DNN 深度网络模型。DSSM的核心思想是把查询文本(query)和内容文本(doc)映射到同维度的语义空间中,以最优化查询文本和内容文本的语义向量之间的余弦相似度为目的,训练隐含语义模型并进行正向预测以达到检索相关内容文本的目的。
我们可以用收音机的调频来类比DSSM的工作方式:
想象一下,有一台收音机,你要调整它以接收特定频率的广播信号。查询文本(query)就好比是你想要收听的电台频率,而内容文本(doc)则相当于周围所有可能的广播信号频率。DSSM的目标就像是一个内置在收音机中的智能助手,这个助手的任务是帮助你找到与你想听的电台频率最为匹配的信号。为了完成这个任务,它的做法是先学习如何理解和分析不同的广播信号(也就是不同内容文本的“语义”),并且将它们转化成对应的“频率”值。
这个智能助手会在所有广播信号中搜寻,寻找与你指定的频率最“接近”的那个。在这里,“接近”实际上是指查询文本和内容文本之间的余弦相似度,就好比两个频率有多么相似。当然,这个过程也是需要训练的,也就是智能助手需要不断学习以更准确地做出判断。
最优化查询文本和内容文本的语义向量之间的余弦相似度,就相当于让收音机的智能助手调整接收器,尽可能精确地匹配到与你想听的频率最相似的广播信号。这样,当你调整收音机时,智能助手就可以快速地帮你锁定最相关的广播信号,也就是你需要的内容。
通过这个过程,DSSM能够高效地在海量的内容中找到与查询条件最相关的结果,就如同通过收音机的调频找到清晰的广播信号一样。
二、双塔模型的核心与优势
双塔模型是机器学习中的一个概念,特别是在信息检索和推荐系统中,其核心非常简单:构建两个独立的深度神经网络结构,一塔负责编码用户的信息,另一塔负责编码物品的信息。
这两塔通常是并行的,分别学习和产出用户和物品的向量表示。通常用于处理和映射两种不同类型的数据到同一个共享空间,以便进行相似性的比较和排序。最终这两个向量通过计算它们之间的相似度(比如使用余弦相似度)得到一个评分,以此评分作为推荐的依据。
1. 双塔模型的优势
- 语义理解能力:通过深度学习模型提取高层特征,双塔模型能够更加精确地捕获物品和用户的深层语义相关性。
- 处理长文本能力:与传统模型相比,双塔模型更擅长处理长文本信息,这对于理解复杂的物品描述或用户反馈来说至关重要。
- 鲁棒性和实时性:一旦模型被训练好,无论用户的查询多么复杂,双塔模型都能迅速返回相关的推荐结果,同时对数据中的噪声具有一定的容错能力。
2. 双塔模型的挑战及应对
双塔模型在信息检索、推荐系统和自然语言处理等领域有着广泛的应用,它通过构建两个并行的深度神经网络(即两个“塔”),分别处理并学习查询和文档的表征,再通过相似性计算将它们联系起来。不过,双塔模型同样面临一些挑战:
1)数据不平衡问题
在双塔模型中,通常需要大量的用户-物品交互数据来训练。然而,在现实中,用户可能只与很少的物品有交互,这意味着正样本(用户实际喜欢或点击的物品)远远少于负样本(用户没有交互的物品)。因此,模型可能会偏向于预测用户对大多数物品不感兴趣,导致推荐质量下降。
应对方法:
- 负采样(Negative Sampling):从大量负样本中随机选择一小部分负样本进行训练。
- 硬负采样(Hard Negative Sampling): 选择那些模型容易误判为正样本的负样本进行训练。
- 使用特殊的损失函数:例如加权的交叉熵损失函数,可以增加正样本的权重。
2)冷启动问题
当引入新的用户或物品时,由于缺乏足够的历史互动数据,模型难以为其生成准确的表征,从而影响推荐效果。
应对方法:
- 利用元学习算法:使模型在看到极少量的新实体数据后快速适应。
- 使用迁移学习:将其他任务或领域中学习到的知识迁移到新实体的学习过程中。
3)动态环境适应性用户的兴趣可能会随时间改变,市场趋势也会有变化,静态的模型可能无法捕捉到这些动态变化。
应对方法:
- 在线学习:通过持续更新模型来适应用户兴趣和市场的变化。
- 快速更新策略:通过更频繁地重新训练模型或者使用数据增强等技术保持模型的新鲜度。
4)跨模态匹配问题在需要处理不同类型的数据(如文本、图像、音频等)时,不同模态之间的匹配成为一大挑战。
应对方法:
- 设计兼容的网络结构:例如使用多模态嵌入和相似度度量。
- 预训练模型:例如使用BERT针对文本,ResNet针对图像进行特征提取。
5)优化和规模化挑战随着数据量的增加和实时服务需求的提升,模型的计算效率和扩展性变得尤为重要。
应对方法:
- 分布式训练:在多台机器上并行训练模型,加速学习过程。
- 模型压缩:如剪枝、量化等技术减少模型大小。
- 索引加速:使用近似最近邻搜索(ANN)等技术来加快推荐过程。
这些挑战涵盖了双塔模型在不同应用场景下的关键问题,且它们之间通常是相互关联的,因此在实际应用中,可能需要综合多种策略来共同优化模型性能。
三、在广告匹配中的应用
我们知道推荐系统的本质是“人货匹配”,在双塔模型中我们一般称为“user”和“item”两个独立的子网络。例如,在推荐系统中,一个塔可能负责处理用户的历史行为数据,另一个塔则处理物品的属性数据。通过训练这两个塔将用户和物品映射到同一个向量空间,我们可以通过计算这些向量之间的相似性来预测用户对物品的偏好程度。这种方法在处理大规模、稀疏数据集时特别有效。
在广告行业中,双塔模型可以应用于个性化广告的匹配和推荐,其应用大致分为以下几个步骤:
1)数据收集与预处理:没啥说的,都是常规的流程:
- 收集用户行为数据,比如点击历史、浏览记录、搜索关键词以及用户的基本信息。
- 收集广告相关数据,包括广告内容、类型、投放历史等。
- 对这些数据进行清洗和预处理,包括去除异常值、填补缺失值、编码类别数据、归一化等。
2)特征提取:对于广告和用户,模型分别设计了两个塔结构来提取特征。
对于用户塔,输入的数据可能包括用户的基本信息、历史点击行为、浏览记录、地理位置、设备信息等;对于广告塔,输入的数据可能包括广告的文字描述、图像、视频、历史表现数据(如点击率、转化率)等。
- 提取用户特征:包括用户的人口统计学信息、兴趣标签、历史行为特征等。
- 提取广告特征:涉及广告的内容特征、上下文特征、历史性能指标等。
- 针对特征设计嵌入层,将高维稀疏特征转换为低维稠密向量。
3)构建模型:用户塔和广告塔分别将各自的原始特征映射到嵌入向量空间中,这样用户和广告都被表示为相同维度的向量。
- 用户塔(User Tower)的构建:使用深度学习网络来学习用户数据的表征。
- 广告塔(Ad Tower)的构建:使用深度学习网络学习广告数据的表征。
- 这两个网络通常是并行的,且在结构上可以相似,但不共享参数。
4)计算相似性:通过计算用户向量与各个广告向量之间的相似度,可以排序出对用户最有可能感兴趣的广告。相似性的计算方式通常是点积或余弦相似性。
- 通过用户塔和广告塔获取用户和广告的嵌入向量。
- 计算用户向量与广告向量之间的相似度或相关性得分。
- 根据得分的高低对广告进行排序。
5)训练和优化:采用反向传播等机器学习技术来训练模型,并优化目标函数。目标函数通常是最大化用户对广告点击的概率,或者是最大化广告的转化率。
- 选择合适的损失函数,例如交叉熵损失、对比损失、余弦相似度损失等,以计算用户-广告对的匹配程度。
- 通过正样本和负样本进行训练,使用诸如梯度下降法等优化算法更新模型权重。
- 实施负采样或其他技术以解决数据不平衡问题。
6)在线服务:将训练好的模型部署在在线系统中,当用户访问网站或APP时,实时计算与当前用户最相关的广告并展示出来。
通过这样的应用,双塔模型能够帮助广告平台提高广告的点击率和转化率,从而为广告主创造更高的价值,并为用户提供更加个性化的广告内容。
- 将训练好的模型部署到在线服务中,当用户发出请求时,实时计算并提供个性化广告推荐。
- 定期或根据需要更新模型,以解决动态环境适应性问题。
7)评估与后续优化:通过一系列的方法去验证你的模型并进行合理优化。
- 通过线上A/B测试或离线评估指标(如CTR预估准确度)来评估推荐效果。
- 根据评估结果对模型进行迭代优化,可能包括调整模型结构、特征选择、参数调优等。
用一个简单的比喻来解释双塔模型在广告中的原理:
想象一下你在举办一场派对,你想让每位宾客都遇见他们可能会喜欢的人。在这里,宾客就像是用户,而他们可能喜欢的人就好比是广告。你的任务是作为一个精明的主持人,确保每位宾客都会遇到和他们兴趣相投的人。
在这个比喻中,双塔模型就好比是你的两个管家。一个管家(用户塔)负责了解宾客,记住他们的名字、兴趣爱好、工作背景等等;而另一个管家(广告塔)则专注于了解每个可能会来到派对的人,知道他们的兴趣、个性,以及过往在社交场合的表现如何。
每当宾客到来,你的第一个管家将会告诉你这位宾客的所有信息,同样,每当有新的人想来参加派对,你的第二个管家也会给你传达这个人的详细信息。然后,你需要决定哪些宾客和哪些新来的人可能会擦出火花。
所以,你就相当于双塔模型中的“匹配机制”。通过比较你的两个管家提供的信息,你可以判断哪些宾客和哪些新人可能会相处得很好,并让他们相遇。在这个过程中,如果你的判断准确,宾客们会和他们喜欢的人愉快交谈,这就类似于用户点击了他们感兴趣的广告。
总的来说,在广告行业里,双塔模型就是通过分别学习用户和广告的特征,并将它们映射到一个共同的特征空间里来判断他们是否匹配。这样,广告主就能将广告投放给最可能感兴趣的用户,而用户也能收到更相关的广告。这个过程就像派对中确保每个人都能遇见对的人,提升了派对的整体气氛。
后记
随着技术的进一步发展,双塔模型在推荐系统中的应用正变得更加广泛和高效。未来的双塔模型可能会集成更多的功能,如语境感知、个性化适应等,从而提供更加丰富和个性化的推荐体验。
综上所述,双塔模型作为推荐系统中的重要技术,打开了新的可能性,它不仅提升了推荐的质量,还极大地提高了处理大规模数据的能力。对于未来的推荐系统而言,双塔模型无疑将是其中一个关键的驱动力。
作者:WāngWénhào;微信公众号:阿司匹汪
本文由 @WāngWénhào 原创发布于人人都是产品经理,未经许可,禁止转载
题图来自 Unsplash,基于 CC0 协议
该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。
- 目前还没评论,等你发挥!