AI一点通:一文讲清推荐系统的两塔系统(two tower system)

两塔推荐系统是一种在推荐系统中使用的协同过滤算法。它被称为“两塔”系统,因为它由两个神经网络或“塔”组成,这两个网络共同工作以为用户生成个性化推荐。

工作原理

第一个塔被称为“用户塔”。它以用户与物品的历史互动为输入,例如用户购买的产品或观看的电影,并将这些信息转换为表示用户偏好的固定长度嵌入向量。然后将该嵌入向量传递给第二个塔。

第二个塔被称为“物品塔”。它以目录中所有物品的元数据为输入,例如标题、描述、类型和其他特征。物品塔也将这些信息转换为表示每个物品的固定长度嵌入向量。

然后使用相似度函数(例如余弦相似度)比较来自用户和物品塔的两个嵌入向量。相似度得分表示用户偏好与目录中每个物品的相似程度。具有最高相似度得分的物品将被推荐给用户。

由于两塔推荐系统可以处理大规模和稀疏的数据集,并能捕捉复杂的用户-物品交互,因此它是个性化推荐的流行方法。它已在各种应用中使用,例如电子商务、流媒体服务和社交媒体平台。

如何使用深度学习进行训练

在双塔推荐系统中,生成用户和商品嵌入向量的神经网络需要被优化,使得用户购买的商品嵌入向量与商品未购买的嵌入向量的点积更高。这通常通过一个叫做训练的过程来实现,其中模型被呈现一组用户-商品交互数据,并学习预测每个用户未来与每个商品交互的可能性。

在训练期间,模型被优化以最小化损失函数,该损失函数度量预测和实际用户-商品交互之间的差异。在推荐系统中最常用的损失函数是二元交叉熵损失,该损失函数惩罚模型进行错误预测。

为了优化神经网络,使用反向传播计算损失对模型参数的梯度。然后使用优化算法(例如随机梯度下降或Adam)使用这些梯度来更新模型参数。重复更新模型参数的过程多个时期,直到模型收敛到一组最优参数。

通过这种方式优化神经网络,模型学习生成能够捕获数据中潜在模式和关系的用户和商品嵌入向量,并能够准确预测用户-商品交互。这使得双塔推荐系统能够提供个性化推荐,根据每个用户的偏好进行定制。

高效的实时推理

在计算用户嵌入向量与物品塔中所有物品嵌入向量的点积时,有几种技术可用于使计算更有效率和更快速。以下是几种方法:

使用矩阵乘法:与逐个计算用户嵌入向量与每个物品嵌入向量的点积相比,更有效率的方法是对用户嵌入向量和整个物品嵌入矩阵进行矩阵乘法计算。这可以使用numpy或PyTorch库来完成,这些库已经针对矩阵计算进行了优化。

使用近似最近邻(ANN)搜索:当物品数量非常大时,计算用户嵌入向量与所有物品嵌入向量之间的点积可能会非常昂贵。加速搜索的一种方法是使用近似最近邻搜索算法,例如局部敏感哈希(LSH)或k-d树。这些算法使我们能够快速识别与用户偏好最相似的较小候选物品集。

使用缓存:由于在推断期间用户嵌入向量是固定的,因此我们可以缓存用户嵌入向量与所有物品嵌入向量之间的点积。这可以在训练期间提前完成,也可以在推断期间动态进行。通过缓存点积,我们可以避免每次用户请求推荐时都进行计算,这可以显着加速推荐过程。

使用并行计算:如果硬件允许,我们可以并行计算用户嵌入向量与所有物品嵌入向量之间的点积。这可以使用多线程或GPU并行计算来完成,进一步加快推荐过程。

通过使用这些技术,我们可以使用户嵌入向量与所有物品嵌入向量之间的点积计算更有效率和更快速,从而有助于提高推荐系统的性能。

英文链接

链接

AI好书推荐

AI日新月异,但是万丈高楼拔地起,离不开良好的基础。您是否有兴趣了解人工智能的原理和实践? 不要再观望! 我们关于 AI 原则和实践的书是任何想要深入了解 AI 世界的人的完美资源。 由该领域的领先专家撰写,这本综合指南涵盖了从机器学习的基础知识到构建智能系统的高级技术的所有内容。 无论您是初学者还是经验丰富的 AI 从业者,本书都能满足您的需求。 那为什么还要等呢?

人工智能原理与实践 全面涵盖人工智能和数据科学各个重要体系经典

北大出版社,人工智能原理与实践 人工智能和数据科学从入门到精通 详解机器学习深度学习算法原理

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值