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

推荐系统 # 二、推荐系统召回:协同过滤 ItemCF/UserCF、离散特征处理、双塔模型、自监督学习、多路召回、曝光过滤

推荐系统召回

2.1 ItemCF:基于物品的协同过滤

请添加图片描述
请添加图片描述

  • 这里的 Sim() 不是指物品本身的相似度,而是指喜欢物品的受众群体之间的相似度,上面的公式没有考虑喜欢的程度。
  • 考虑喜欢程度公式修改如下:本质是余弦相似度

请添加图片描述
线上环境:
请添加图片描述
请添加图片描述
请添加图片描述
缺点:社群对算法的误导

请添加图片描述

2.2 Swing 召回

请添加图片描述
请添加图片描述

2.3 UserCF: 基于用户的协同过滤

请添加图片描述
请添加图片描述

  • 缺点:热门的物品无法越无法反应用户的兴趣,需要降低热门物品的权重

请添加图片描述

请添加图片描述
请添加图片描述
请添加图片描述

2.4 离散特征处理

请添加图片描述

2.5 矩阵补充

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

  • 矩阵补充方法在实践中效果不好。

请添加图片描述
请添加图片描述

请添加图片描述
请添加图片描述

请添加图片描述

  • 对向量做归一化,让他们的二范数全都等于1,那么余弦相似度和内积相似度相等。

2.6 双塔模型

2.6.1 模型结构

请添加图片描述
请添加图片描述
请添加图片描述

2.6.2 双塔模型的训练

请添加图片描述

Pointwise 训练

请添加图片描述

  • 这里的1:2或者1:3是经验值。
Pairwise 训练

请添加图片描述
请添加图片描述

Listwise 训练

请添加图片描述
【说明】上面有笔误,下面的这行都是“-”

请添加图片描述

  • 之前的召回模型设计是最后一层做后期融合,这里的错误设计在前期就做了融合。这里的计算量太大了(要算预估值的话必须1-1对比才行)。

2.6.3 正负样本

请添加图片描述
请添加图片描述

简单负样本

请添加图片描述
请添加图片描述

Batch内负样本

请添加图片描述
请添加图片描述
请添加图片描述

  • 在线上做召回的时候不用减掉log p i p_i pi
困难负样本

请添加图片描述
工业界中的负样本训练数据:

  • 混合几种负样本
  • 50%的负样本是全体物品(简单负样本)
  • 50%的负样本是没通过排序的物品(困难负样本)
常见错误
  • 曝光但未点击的作为负样本
    请添加图片描述
    请添加图片描述

2.6.4 线上召回和模型更新

线上召回


模型更新:全量更新 vs 增量更新



  • 增量更新:每隔几十分钟,发布最新的 ID Embedding

2.6.5 双塔模型、自监督学习

自监督的目的是把物品塔训练的更好。

损失函数:

纠偏:


到这里是双塔模型同时训练用户塔和物品塔的过程。











自监督物品塔训练:


/ a l p h a /alpha /alpha: 超参数

2.7 Deep Retrieval 召回


2.7.1 索引


2.7.2 预估模型


2.7.3 线上召回




2.7.4 训练






补充几点:

  1. 双塔使用单向量召回,导致召回结果集中在单个topic上。字节做deep retrieval的目的是多兴趣召回(multi-interest)。deep retrieval召回多条路径,每条路径是一个兴趣点,所以属于multi-interest。
  2. 据说抖音已经下掉了deep retrieval,因为有了更好的模型。
  3. 这是抖音实际在用的multi-interest retrieval,建议读一下:Trinity: Syncretizing Multi-/Long-tail/Long-term Interests All in
    One

PS:双塔模型也有改进版处理 multi-interest 的情况,多点建模比多边好计算

2.8 其他召回通道:地理位置召回、作者召回、缓存召回

GeoHash 召回


同城召回

作者召回

关注作者召回

交互作者召回

相似作者召回

缓存召回


2.9 曝光过滤 & Bloom Filter









http://www.mrgr.cn/news/54231.html

相关文章:

  • 基于SSM机场网上订票系统的设计
  • 深入探索卷积神经网络(CNN):图像分类的利器
  • Ubuntu下解决python程序首次连接mysql拒绝访问之总结
  • Flux.merge 使用说明书
  • 深入理解new Function
  • 中创算力十月员工生日会 | 拾取秋光,共悦生辰
  • MySQL 索引:优化数据库性能的关键
  • Java的重载和主要内存区
  • 开发工具(上)
  • [SAP ABAP] SE11定义数据类型(结构与表类型)
  • 模型轻量化1--模型剪枝
  • AI周报(10.13-10.19)
  • 把自己写的文章发布在各大媒体网站上难不难?
  • 【每日一题】【算法双周赛】【第 20 场 小白入门赛评价/分享】赛后另类AI写题分析分享
  • 2025年天津仁爱学院专升本动画化学工程与工艺专业对应专业限制
  • 《嵌入式最全面试题-Offer直通车》目录
  • Lua字符串
  • JDK 1.6主要特性
  • 我的JAVA项目构建
  • 怎么修改编辑PDF的内容,有这4个工具就行了。
  • MySQL-20.多表设计-一对一多对多
  • 解锁A/B测试:如何用数据驱动的实验提升你的网站和应用
  • 速盾:为什么高防cdn比普通cdn效果更好?
  • 利士策分享,财富与福报,有没有内在联系?
  • 【Macbook air 2017 升级换硬盘遇到的问题】
  • Thread类的介绍