当前位置: 首页 > news >正文

推荐系统学习 二

双塔模型的结构

用户的特征,我们知道用户ID还能从用户填写的资料和用户行为中获取很多特征,包括离散特征和连续特征。所有这些特征不能直接输入神经网络,而是要先做一些处理,比如用embedding层把用户ID映射到一个向量

跟之前我们讲过的离散特征的做法相同,用户还有很多离散特征,比如所在城市感兴趣的话题等等。
用embedding层把用户的离散特征映射成向量,对于每个离散特征,用单独一个embedding层得到一个向量,比如用户所在城市,用一个embedding层
用户感兴趣的话题,用另一个embedding层
对于性别这样类别数量很少的离散特征,直接用one hot编码就行,可以不做embedding

用户还有很多连续特征,比如年龄、活跃程度、消费金额等等。

不同类型的连续特征有不同的处理方法,最简单的是做归一化,让特征均值是零,标准差是一。
有些长尾分布的连续特征需要特殊处理,比如取log,比如做分桶,做完特征处理,得到很多特征向量,把这些向量都拼起来输入神经网络。神经网络可以是简单的全连接网络,也可以是更复杂的结构,比如深度交叉网络。
神经网络输出一个向量,这个向量就是对用户的表征。

做召回用到这个向量。

物品的特征也是用类似的方法处理

用embedding层处理物品ID和其他离散特征,
用归一化取对数或者分桶等方法处理物品的连续特征,
把得到的特征输入一个神经网络。

神经网络输出的向量就是物品的表征,用于召回。

双塔模型

本模型直接拿用户表征rep和物品表征rep去融合,史称后端特征融合模型

左边的塔提取用户的特征
右边的它提取物品的特征
跟上一篇文章的矩阵补充模型相比,双塔模型的不同之处就在于使用了ID 之外的多种特征,
作为双塔的输入,两个塔各输出一个向量记作a和b,
两个向量的内积就是模型最终的输出rate,它即预估用户对物品的兴趣。

现在更常用的输出方法是余弦相似度。

两个塔的输出,分别记作向量a和b,余弦相似度意思是两个向量夹角的余弦值,
它等于向量内积除以a的二范数,再除以b的二范数,
其实就相当于先对两个向量做归因化,然后再求内积
余弦相似度的大小介于负一到正一之间。

二范数,也称为欧几里得范数或L2范数,在数学中是用来量化向量或矩阵大小的一种度量方式。根据不同的对象,二范数有两种主要的定义:

因为它提供了量化向量或矩阵大小的直观方式,并且与几何距离的概念紧密相关。

双塔模型的训练方法:pointwise,parawise,listwise

http://www.lryc.cn/news/364400.html

相关文章:

  • Vue——组件数据传递与props校验
  • Java 基础面试300题 (261-290)
  • 音频信号分析与实践
  • 程序媛:拽姐
  • 前端面试题日常练-day54 【面试题】
  • 054、Python 函数的概念以及定义
  • 今时今日蜘蛛池还有用吗?
  • 【一步一步了解Java系列】:重磅多态
  • 运维工具 - SFTP 和 FTP 的区别?
  • 创新入门|营销中的视频内容:不可或缺的策略
  • 《探索Stable Diffusion:AI绘画的创意之路与实战秘籍》
  • 某铁路信息中心运营监测项目
  • Threejs加载DOM+CSS到场景中,实现3D场景展示2D平面的效果
  • 本地知识库开源框架Fastgpt、MaxKB产品体验
  • 音视频开发15 FFmpeg FLV封装格式分析
  • Qt 的 d_ptr (d-pointer) 和 q_ptr (q-pointer)解析;Q_D和Q_Q指针
  • 【机器学习】深度探索:从基础概念到深度学习关键技术的全面解析——梯度下降、激活函数、正则化与批量归一化
  • C++模板类与Java泛型类的实战应用及对比分析
  • 使用Qt对word文档进行读写
  • docker容器内无法使用命令问题
  • 【深度学习】安全帽检测,目标检测,Faster RCNN训练
  • IDEA2024创建maven项目
  • linux上VirtualBox使用
  • PID控制算法介绍及使用举例
  • 因子区间[牛客周赛44]
  • 代码随想录算法训练营第四十四天 | 01背包问题理论基础、01背包问题滚动数组、416. 分割等和子集
  • 【PingPong_注册安全分析报告】
  • 车辆路径规划之Dubins曲线与RS曲线简述
  • PostgreSQL 和Oracle锁机制对比
  • 6月05日,每日信息差