Fork me on GitHub
小火箭的博客

愿世界和平!!!


  • 首页

  • 标签

  • 分类

  • 归档

  • 站点地图

  • 公益404

  • 留言板

  • 其他

精排序列建模经典方案综述

发表于 2024-12-21 | 分类于 算法总结 , 精排模型 |
| 字数统计: 8.7k | 阅读时长 ≈ 35

引言

在互联网应用的精排模型中,往往在特征工程、样本构建、Loss 设计、模型结构等方向进行迭代优化。其中,涉及特征与结构的用户行为序列建模是近几年的热点之一。

序列建模一般有2大方向:

  • 检索的序列更长;
  • 建模的更精准。

下面梳理近几年的经典序列建模方案,基本也是围绕上述 2 大方向进行不断优化的。

1 DIN

1.1 概述

论文:DIN: Deep Interest Network for Click-Through Rate Prediction
来源:2018,阿里

ubsmodel0

思想:为了序列建模的更精准,通过 DIN 的 Attention 结构来替换 Base Model 的 Sum-Pooling 结构。

阅读全文 »

Listwise 在重排的应用

发表于 2024-09-08 | 分类于 算法总结 , 重排模型 |
| 字数统计: 5.1k | 阅读时长 ≈ 18

1 引言

本文先假定读者对推荐系统有一定了解,尤其是召回、精排和重排3个部分,如此阅读本文可能更顺畅。

LTR(Learning to Rank)即排序学习,在当下的搜广推业务中应用广泛,思路上主要分为四类:

  1. 基于 Point-wise。主要考虑 user、item、以及 context 信息特征,仅关注当前 item 自身的效率,比如 Wide & Deep、ESSM 等。
  2. 基于 Pair-wise。训练时通过损失函数来预估 item pair 之间的相对位置关系,高 Label 排在低 Label 前则为正例,否则,为反例。模型的目标是减少错误 item pair 的个数,不考虑列表信息,模型训练复杂度问我较高,比较典型的如 RankNet。
  3. 基于 List-wise。训练时候对每个 request 下的整个 item list 构建 Loss,拟合最优序列分布。比较典型如 LambdaMART、 DLCM、以及 ListMLE 等。
  4. 基于 Generator-evaluator。一般分为 2 模块,序列的召回和排序。重排召回即按照一定排序算法,生成一系列预期 reward 较高的候选 List,再针对这些上下关系已经固定的 List 进行整页建模预估 reward,选择 top1 list 输出。

本文将重点聚焦在第 4 种,即基于 Generative-evaluate 的 LTR 模型,因为此类做法有两个特点:

  • 可真正实现对 List 进行整页建模的;
  • 可在重排环节实践落地的。
阅读全文 »

Transformer 解析

发表于 2022-07-24 | 分类于 算法总结 |
| 字数统计: 6.7k | 阅读时长 ≈ 29

1 背景

算法工程师在成长道路上基本绕不开深度学习,而 Transformer 模型更是其中的经典,它在2017年的《Attention is All You Need》论文中被提出,直接掀起了 Attention 机制在深度模型中的广泛应用潮流。

在该模型中有许多奇妙的想法启发了诸多算法工程师的学习创造,为了让自己回顾复习更加方便,亦或让在学习的读者更轻松地理解,便写了这篇文章。形式上,在参考诸多优秀文章和博客后,这里还是采用结构与代码并行阐述的模式。

阅读全文 »

PID 调控算法

发表于 2022-07-09 | 分类于 算法总结 |
| 字数统计: 2.3k | 阅读时长 ≈ 9

1 引言

PID 全称 Proportional Integral Derivative,拆分项分别是 比例(Proportional)、积分(Integral)和微分(Derivative)。是应用最为广泛的控制模型,有 100 余年的历史了,应用场景有四轴飞行器,汽车的定速巡航等。
官方流程图:

pidcontrol0

阅读全文 »

MIND(多兴趣)召回模型

发表于 2022-06-16 | 分类于 召回模型 , 算法总结 |
| 字数统计: 6.7k | 阅读时长 ≈ 27

1 引言

在深度学习召回算法领域,比较经典的包括了以下2大类:

  • 基于 item2vec 模型构建在线的i2i召回;
  • 基于 user2item 泛双塔模型构建在线的u2i召回;

当然还有2阶以上的召回,i2u2i、u2u2i等,在这里不做重点介绍,最终目的都是为了召回 item。

对于第一种,相信大家比较熟知的有从 word2vec 衍生出的item2vec、阿里的deepwalk以及FM等,核心方式都是离线构建出 item 的 Embedding,在online侧基于用户的行为序列,取其中的 item 作为 trigger 来进行倒排/近邻召回。

阅读全文 »

RankI2I 召回简述

发表于 2022-05-21 | 分类于 召回模型 , 算法总结 |
| 字数统计: 1.2k | 阅读时长 ≈ 4

1 背景

在推荐系统中,i2i类型的召回往往在多路召回中扮演中重要的角色,具有效率高、覆盖广、可解释、易调控等优势。常用的算法一般有swing,icf,wbcos以及item2vec等,虽然不同算法逻辑不同,实际上构建的倒排结果往往具有一定的重复,并且多路 i2i 在线上并存往往也会带来维护成本高,迭代效率低等问题。那么,ranki2i 是较为通用的将各种 i2i 有效整合到一起的一种方案。

2 算法逻辑

ranki2i 算法承载着两个目标:

  • 合并分散的 i2i 召回;
  • 提高 i2i 召回效率。

为了完成上述 2 个目标,相应的转化成以下两个方案:

  • 构建一个 i2i 预估模型;
  • 对所有的 i2i 候选 pair 对进行预估构建截断倒排结果。
阅读全文 »

wbcos 召回

发表于 2022-05-09 | 分类于 召回模型 , 算法总结 |
| 字数统计: 1.6k | 阅读时长 ≈ 6

1 背景

wb 意为 weight base,wbcos 即加权式的 cos。

思想:其实就是改进的 itemcos 来计算相似度。

核心在于两点:

  • user+session 内的 pair 重复出现的时候如何聚合,主要就是时间衰减和类目等维度加权;
  • user+session 间的 pair 如何聚合,主要是 session 丰富度加权;
阅读全文 »

Swing 召回

发表于 2022-04-24 | 分类于 召回模型 , 算法总结 |
| 字数统计: 1k | 阅读时长 ≈ 3

思想:来源于传统的 CF:

  • 如果多个 user 都只共同点了 i1 和 i2,那么其一定是强关联的,这种关联是通过用户来传递的;
  • 如果两个 user pair 对之间构成的 swing 结构越多,则每个结构越弱,在这个 pair 对上每个节点分到的权重越低。

1 原理

Swing意为摇摆或者秋千,它是基于图结构的一种实时推荐算法。主要公式为:

结合前面的思想,公式表达的就是为了衡量物品 i 和 j 的相似性:考察都购买了物品 i 和 j 的用户 u 和 v, 如果这两个用户共同购买的物品越少,则物品 i 和 j 的相似性越高。

阅读全文 »

推荐模型中的 position bias 和 debias

发表于 2022-03-27 | 分类于 精排模型 , 算法总结 |
| 字数统计: 1.9k | 阅读时长 ≈ 7

1 引言

在推荐系统中一个重要的任务就是 CTR 建模,其本质的思想便是预估 user 对 item 的点击率。但是实际中获取的样本往往是在一定条件(时间、机型、位置等)下的后验结果,所以使得建模的 Label 往往是夹杂了这些因素的结果。

这些影响后验结果的因素一般称为 偏置(bias)项,而去除这些偏置项的过程就称为 消偏(debias)。在这其中最重要的便是 位置偏置(position bias),即 item 展示在不同位置会有不同的影响,且用户往往更偏向点击靠前的位置。本文将重点介绍业界在 position bias 消除上的一般做法和相关经验。

2 Position Bias

看下面的图,是笔者实际工作场景中部分位置的 CTR 趋势图。可以明显地看到:

  • 呈现每 20 个 position 位一个周期;每刷请求的个数是 20.
  • 周期内位置越靠前,CTR 越大;靠前效率高,用户更偏好点靠前的。
阅读全文 »

YouTubeDNN 和 WCE

发表于 2021-12-18 | 分类于 精排模型 , 算法总结 |
| 字数统计: 3.1k | 阅读时长 ≈ 11

1 背景

这是一篇推荐算法领域经典的论文,它由 YouTube 在2016年发表在 RecSys 上的文章Deep Neural Networks for YouTube Recommendations。
这篇文章是诸多推荐算法工程师的必学经典,可能很多人多次重读都会有新的思考,本文也重点总结文章的核心内容与一些实战经验的思考。

2 原理

首先便是其展示的系统链路示意图,这块与大多主流方案没有什么区别。

youtubednn0

论文分别介绍了在 recall 和 ranking 两个模块的方案,但可以说,recall 部分的重要性远大于 ranking。就此文章发表后的几年而言,recall 往往还在工业界主流召回的候选方案中,但 ranking 的方案基本已经成为历史,很少再使用了,不过其思想还是值得学习的。

阅读全文 »
12…8>

73 日志
14 分类
85 标签
RSS
GitHub E-Mail
© 2019 — 2025 小火箭
由 信仰 强力驱动
|
博客全站共314.2k字
访客数 人 总访问量 次