Skip to content

推荐系统

本页介绍推荐系统(Recommender System)——互联网最赚钱的 AI 应用之一。淘宝、抖音、Netflix、YouTube,它们的核心竞争力都建立在推荐系统之上。推荐系统不是单一算法,而是一套从数据到策略的完整工程体系。它横跨传统 ML(协同过滤、矩阵分解)与深度学习(Wide & Deep、DIN),是经典方法与深度学习结合最紧密的领域之一。

推荐系统的本质就是一句话:猜你喜欢什么,然后推给你。但”猜”的方式经历了三代演进:

  • 协同过滤 CF = “喜欢相似物品的人会喜欢相似的物品”:你买了 A 和 B,另一个用户也买了 A、B 还买了 C——系统就猜你可能也喜欢 C。不关心物品本身是什么,只看行为规律。分为 user-based(找相似用户)和 item-based(找相似物品)两条路。
  • 矩阵分解 MF = 把稀疏矩阵拆成两个矮矩阵:用户-物品的交互矩阵非常稀疏(你只看过 Netflix 万分之一的电影),矩阵分解把每个用户和每个物品各自压缩成一个低维向量,用向量点积预测你没看过的电影评分——这就是 Netflix Prize 百万美元大赛的核心方法。
  • 内容推荐 = 看物品本身的特征:你喜欢科幻片,系统就给你推更多科幻片。基于物品的类别、标签、描述文本等特征做匹配,不依赖其他用户行为——好处是没有冷启动问题,缺点是推荐结果容易同质化。
  • 深度学习推荐 = “记记忆 + 学泛化”:Wide & Deep 模型同时做两件事——Wide 部分记住”买了奶粉的人常买尿布”这种关联规则,Deep 部分学习特征之间的泛化组合。DeepFM、DIN 等模型都是这个思路的延伸。

协同过滤的核心是相似度度量。给定两个用户(或物品)的评分向量,常用余弦相似度(Cosine Similarity)衡量它们的接近程度:

sim(a,b)=cos⁡(θ)=ra⋅rb∥ra∥⋅∥rb∥\text{sim}(a, b) = \cos(\theta) = \frac{\mathbf{r}_a \cdot \mathbf{r}_b}{\|\mathbf{r}_a\| \cdot \|\mathbf{r}_b\|}

其中 ra\mathbf{r}_a 和 rb\mathbf{r}_b 分别是用户 aa 和 bb 的评分向量。值域为 [−1,1][-1, 1],值越大表示越相似。预测用户 uu 对物品 ii 的评分时,item-based CF 的公式为:

r^ui=∑j∈N(i)sim(i,j)⋅ruj∑j∈N(i)∣sim(i,j)∣\hat{r}_{ui} = \frac{\sum_{j \in N(i)} \text{sim}(i, j) \cdot r_{uj}}{\sum_{j \in N(i)} |\text{sim}(i, j)|}

其中 N(i)N(i) 是与物品 ii 最相似的 KK 个物品集合,rujr_{uj} 是用户 uu 对物品 jj 的已知评分。直觉是:和你喜欢的物品越相似的物品,你越可能也喜欢。

设用户-物品评分矩阵 R∈Rm×nR \in \mathbb{R}^{m \times n}(mm 个用户,nn 个物品),其中大部分元素缺失(未观测)。矩阵分解的目标是找到用户隐向量矩阵 P∈Rm×kP \in \mathbb{R}^{m \times k} 和物品隐向量矩阵 Q∈Rn×kQ \in \mathbb{R}^{n \times k}(k≪min⁡(m,n)k \ll \min(m, n) 为隐因子维度),使得:

R≈PQT,即r^ui≈puTqiR \approx P Q^T, \quad \text{即} \quad \hat{r}_{ui} \approx \mathbf{p}_u^T \mathbf{q}_i

每个用户被表示为一个 kk 维向量 pu\mathbf{p}_u,每个物品也是一个 kk 维向量 qi\mathbf{q}_i,预测评分就是两者点积。kk 维空间可以理解为”隐藏的兴趣维度”——比如电影在”严肃↔娱乐""男性向↔女性向”等维度上的坐标。

只对已观测的评分 (u,i)∈K(u, i) \in \mathcal{K}(已知评分集合)最小化误差,并加 L2 正则化防止过拟合:

min⁡P,Q∑(u,i)∈K(rui−puTqi)2+λ(∥pu∥2+∥qi∥2)\min_{P, Q} \sum_{(u,i) \in \mathcal{K}} \left( r_{ui} - \mathbf{p}_u^T \mathbf{q}_i \right)^2 + \lambda \left( \|\mathbf{p}_u\|^2 + \|\mathbf{q}_i\|^2 \right)

其中 λ\lambda 是正则化系数,控制隐向量范数不要太大(避免对少数观测过拟合)。

2.3 求解方法一:梯度下降(SGD)

Section titled “2.3 求解方法一:梯度下降(SGD)”

对每个观测评分 (u,i)(u, i),预测误差为 eui=rui−puTqie_{ui} = r_{ui} - \mathbf{p}_u^T \mathbf{q}_i,参数更新规则为:

pu←pu+η(eui⋅qi−λpu)\mathbf{p}_u \leftarrow \mathbf{p}_u + \eta \left( e_{ui} \cdot \mathbf{q}_i - \lambda \mathbf{p}_u \right) qi←qi+η(eui⋅pu−λqi)\mathbf{q}_i \leftarrow \mathbf{q}_i + \eta \left( e_{ui} \cdot \mathbf{p}_u - \lambda \mathbf{q}_i \right)

其中 η\eta 是学习率。SGD 每次只看一个样本,实现简单、易于并行化,是工业界最常用的训练方式。

2.4 求解方法二:交替最小二乘法(ALS)

Section titled “2.4 求解方法二:交替最小二乘法(ALS)”

SGD 逐样本更新,适合隐式反馈等大数据场景。但有时我们更想要批量优化——这就是 ALS(Alternating Least Squares,交替最小二乘法)。

ALS 的核心思想:虽然 PP 和 QQ 联合优化是非凸问题(有多个局部最优),但固定其中一个矩阵,对另一个矩阵的优化就变成了凸的最小二乘问题,可以直接求解析解。交替进行:

步骤 1:固定 QQ,对每个用户 uu 求解:

pu=(QTQ+λI)−1QTru\mathbf{p}_u = \left( Q^T Q + \lambda I \right)^{-1} Q^T \mathbf{r}_u

步骤 2:固定 PP,对每个物品 ii 求解:

qi=(PTP+λI)−1PTri\mathbf{q}_i = \left( P^T P + \lambda I \right)^{-1} P^T \mathbf{r}_i

反复迭代直到收敛。

ALS 的优势:

  • 天然可并行——每个用户/物品的更新互相独立,适合 Spark 等分布式框架。
  • 对隐式反馈(只有点击/没有评分)友好——通过加权 ALS(Weighted ALS)可以优雅处理”未观测”不等于”不喜欢”的问题。
  • 无需调学习率,收敛行为更可预测。

不同用户评分尺度不同(有人全给 4-5 星,有人全给 2-3 星),不同物品整体评分也不同。加入偏置项提升模型表达能力:

r^ui=μ+bu+bi+puTqi\hat{r}_{ui} = \mu + b_u + b_i + \mathbf{p}_u^T \mathbf{q}_i

其中 μ\mu 是全局平均分,bub_u 是用户偏置(打分偏高/偏低),bib_i 是物品偏置(本身口碑好/差)。

显式评分(星级)很稀疏,而隐式反馈(点击、浏览、购买)数据量巨大。隐式反馈的特点是:只有”有行为”和”无行为”,没有”负评分”。Koren 等人提出的加权方案:用置信度 cui=1+α⋅ruic_{ui} = 1 + \alpha \cdot r_{ui}(ruir_{ui} 是交互频次)对正反馈加权,对未观测赋予低权重而非负标签。这使得 ALS 成为处理隐式反馈的标准方法。

因子分解机(Factorization Machines, FM) 解决的是高维稀疏特征下的二阶特征交叉问题。在线性回归 y^=w0+∑iwixi\hat{y} = w_0 + \sum_i w_i x_i 的基础上,FM 为每个特征学习一个 kk 维隐向量 vi\mathbf{v}_i,用向量点积替代参数化的交叉权重:

y^=w0+∑i=1nwixi+∑i=1n∑j=i+1n(viTvj)xixj\hat{y} = w_0 + \sum_{i=1}^{n} w_i x_i + \sum_{i=1}^{n}\sum_{j=i+1}^{n} (\mathbf{v}_i^T \mathbf{v}_j) x_i x_j

FM 的妙处在于:即使两个特征从未在训练数据中同时出现,只要它们各自与其他特征共现过,隐向量仍能学到有意义的交叉关系。

DeepFM 将 FM 与深度神经网络并行组合:FM 部分负责低阶特征交叉(二阶),DNN 部分负责高阶特征交叉(三阶及以上),两者共享输入嵌入层(embedding),无需人工特征工程。

Google 在 2016 年提出的 Wide & Deep 模型,推荐系统深度学习时代的标志性架构。核心思想是记忆(memorization)与泛化(generalization)的联合学习:

  • Wide 部分:广义线性模型 y^wide=wT[x,ϕ(x)]\hat{y}_{\text{wide}} = \mathbf{w}^T [\mathbf{x}, \phi(\mathbf{x})],其中 ϕ(x)\phi(\mathbf{x}) 是交叉积变换(cross-product transformation),用于捕获”买了奶粉→常买尿布”这类共现规则。Wide 部分擅长记忆频繁出现的特征组合。
  • Deep 部分:多层前馈神经网络,输入是嵌入后的稠密向量 al+1=f(Wlal+bl)\mathbf{a}^{l+1} = f(\mathbf{W}^l \mathbf{a}^l + \mathbf{b}^l),通过多层非线性变换学习特征的泛化组合,对未见过的新组合也有预测能力。
  • 联合训练:两部分输出加权求和后通过 sigmoid 输出概率,反向传播同时更新两部分参数。

为什么需要记忆和泛化? 纯 Wide 模型(如 LR + 特征交叉)对高频模式记忆精准但无法泛化到新组合;纯 Deep 模型能泛化但可能对低频但重要的规则记忆不够。两者结合兼得优势。

阿里在 2018 年提出的 DIN(Deep Interest Network)解决了推荐系统中的核心问题:用户的兴趣是多样化的,不同的候选物品应该激活用户不同的兴趣。

传统深度推荐模型(如 Youtube DNN)将用户所有历史行为(点击过的商品)编码成一个固定长度的向量,不管要推荐什么商品,都用这个向量去预测。但一个用户的购物车里可能同时有奶粉、手机壳、猫粮——推荐手机时应该关注他点击过的电子产品,推荐猫粮时应该关注宠物用品。

DIN 引入目标级注意力机制(Target-aware Attention):给定候选物品 ii,用户行为序列中每个历史物品 jj 的注意力权重 αj\alpha_j 由候选物品和历史物品共同决定:

αj=exp⁡(score(vj,ei))∑kexp⁡(score(vk,ei))\alpha_j = \frac{\exp(\text{score}(\mathbf{v}_j, \mathbf{e}_i))}{\sum_k \exp(\text{score}(\mathbf{v}_k, \mathbf{e}_i))}

其中 score(⋅)\text{score}(\cdot) 是注意力打分函数(如内积或 MLP),vj\mathbf{v}_j 是历史物品的嵌入,ei\mathbf{e}_i 是候选物品的嵌入。最终用户兴趣表示为 ∑jαjvj\sum_j \alpha_j \mathbf{v}_j——与候选物品相关的历史行为被放大,无关的被抑制。

5.2 DIEN(Deep Interest Evolution Network)

Section titled “5.2 DIEN(Deep Interest Evolution Network)”

DIN 的升级版 DIEN(2019)进一步建模用户兴趣随时间的演化过程。用户兴趣不是静态的,而是随时间动态变化的——今天对数码感兴趣,下周可能转向母婴。

DIEN 在 DIN 基础上加入 GRU(门控循环单元)序列建模兴趣演化:

  1. 兴趣抽取层:用 GRU 从用户行为序列中抽取每步的隐藏状态,表示该时刻的兴趣。
  2. 兴趣演化层:加入 AUGRU(Attention-based Update GRU),用注意力权重控制兴趣的演化方向——只有与目标相关的兴趣变化才被传递。

DIN/DIEN 的核心洞察:推荐不是”理解用户”这一静态问题,而是”理解用户在特定上下文下的当前兴趣”这一动态问题。

推荐系统的核心数据结构是用户-物品交互矩阵(评分/点击/购买):

矩阵中大量”?”是未知评分——推荐系统的任务就是预测这些空缺值,然后把预测评分最高的推荐给用户。

mm 个用户、nn 个物品、kk 维隐因子(k≪m,nk \ll m, n)。两个矮矩阵的乘积近似填满原稀疏矩阵的空缺。

Wide 部分捕获低阶共现规则(记忆),Deep 部分学习高阶非线性组合(泛化),联合训练兼顾两者。

推荐蓝牙耳机时,用户之前点击的”耳机”获得最高注意力权重(0.65),而”奶粉""猫粮”被抑制——这就是目标级注意力。

工业级推荐系统通常分为召回和排序两阶段:

为什么分阶段?直接对百万物品逐一精排太慢。先用轻量级算法(召回)快速筛出候选集,再用复杂模型(排序)精选——这是工程效率与模型精度的平衡。

Item-based 协同过滤(纯 numpy 手写)

Section titled “Item-based 协同过滤(纯 numpy 手写)”
import numpy as np
# 用户-物品评分矩阵(0 表示未评分),5 个用户 × 4 部电影
ratings = np.array([
[5, 3, 0, 1], # 用户 0
[4, 0, 0, 1], # 用户 1
[1, 1, 0, 5], # 用户 2
[1, 0, 0, 4], # 用户 3
[0, 1, 5, 4], # 用户 4
])
# 计算物品间余弦相似度(item-based CF 核心)
norm = ratings / np.linalg.norm(ratings, axis=0, keepdims=True)
sim = (ratings.T @ ratings) / (norm.T @ norm) # 物品相似度矩阵
np.fill_diagonal(sim, 0) # 对角线置零,排除自身
# 预测:用户 0 对电影 2 的评分 = 其他物品评分加权平均
user, item = 0, 2
pred = (ratings[user] @ sim[:, item]) / sim[ratings[user] > 0, item].sum()
print(f"用户 {user} 对电影 {item} 的预测评分: {pred:.2f}")
# 输出示例: 用户 0 对电影 2 的预测评分: 2.85

矩阵分解手写 SGD 训练(纯 numpy)

Section titled “矩阵分解手写 SGD 训练(纯 numpy)”
import numpy as np
# 小型评分矩阵: 4 个用户 × 5 个物品,0 表示未评分
R = np.array([
[5, 3, 0, 1, 0],
[4, 0, 0, 1, 0],
[1, 1, 0, 5, 4],
[0, 1, 5, 4, 5],
])
m, n = R.shape
K = 3 # 隐因子维度
lr = 0.01 # 学习率
reg = 0.1 # 正则化系数
epochs = 500
# 随机初始化用户矩阵 P 和物品矩阵 Q
np.random.seed(42)
P = np.random.normal(scale=0.1, size=(m, K))
Q = np.random.normal(scale=0.1, size=(n, K))
# 只对已观测评分 (R > 0) 做 SGD 更新
for epoch in range(epochs):
for u in range(m):
for i in range(n):
if R[u, i] == 0:
continue
error = R[u, i] - P[u] @ Q[i] # 预测误差
P[u] += lr * (error * Q[i] - reg * P[u]) # 更新用户向量
Q[i] += lr * (error * P[u] - reg * Q[i]) # 更新物品向量
# 预测完整矩阵
R_hat = P @ Q.T
print("预测评分矩阵:\n", R_hat.round(2))
# 用户 0 对物品 2 的预测: R_hat[0, 2] ≈ 2.73
# 用户 1 对物品 1 的预测: R_hat[1, 1] ≈ 1.95
from surprise import Dataset, SVD, accuracy
from surprise.model_selection import train_test_split
# 加载 MovieLens 评分数据集(首次运行自动下载)
data = Dataset.load_builtin("ml-100k")
trainset, testset = train_test_split(data, test_size=0.2, random_state=42)
# 矩阵分解(SVD),正是 Netflix Prize 的核心方法
model = SVD(n_factors=50, random_state=42)
model.fit(trainset)
# 评估预测精度
predictions = model.test(testset)
print(f"RMSE: {accuracy.rmse(predictions, verbose=False):.4f}")
# 输出示例: RMSE: 0.9364
import numpy as np
import implicit
from scipy.sparse import csr_matrix
# 模拟隐式反馈数据(用户-物品交互次数)
# 矩阵值 = 交互频次(点击/购买次数),0 表示无交互
interactions = np.array([
[5, 3, 0, 0, 1],
[4, 0, 0, 1, 0],
[1, 1, 0, 5, 4],
[0, 1, 5, 4, 5],
[3, 0, 4, 0, 2],
])
mat = csr_matrix(interactions, dtype=np.float64)
# 训练 ALS 模型(隐式反馈专用)
model = implicit.als.AlternatingLeastSquares(
factors=10, regularization=0.1, iterations=20, random_state=42
)
model.fit(mat)
# 为用户 0 推荐 Top-3 物品(排除已交互的)
user_items = mat.T.tocsr() # implicit 需要 item-user 格式
recommendations = model.recommend(userid=0, user_items=user_items, N=3)
print(f"用户 0 的推荐: {recommendations}")
# 输出示例: [(2, 0.82), (4, 0.65), (3, 0.43)]
  • User-based vs Item-based:用户量远大于物品量时(如电商:亿级用户 vs 百万商品)→ item-based CF 更高效,物品相似度矩阵可离线预计算;社交场景(用户和物品量都大)→ 矩阵分解更合适。
  • 冷启动问题:新用户没有行为、新物品没有评分,协同过滤无法推荐。解决策略:新用户用内容推荐或热门推荐填充,新物品用基于内容的匹配,等积累数据后再切换协同过滤。
  • 隐式反馈优于显式评分:用户很少主动评分,但点击、浏览、停留时长等隐性行为数据量巨大——现代推荐系统主要基于隐式反馈建模。
  • 评估指标:离线用 RMSE/MAE(评分预测)、Precision@K/Recall@K(Top-N 推荐);最终以线上 A/B 测试的点击率、转化率、留存率为准。
  • 特征工程是深度学习推荐的关键:Wide & Deep、DeepFM 等模型需要大量人工特征(用户画像、物品属性、上下文特征、交叉特征),模型架构只是冰山一角。
  • SGD vs ALS 的选择:SGD 适合显式评分场景、实现简单、逐样本更新;ALS 适合隐式反馈、天然并行(Spark MLlib 内置)、收敛行为稳定。工业实践中两种方法都广泛使用。
  • 负采样(Negative Sampling):隐式反馈中未点击的物品不一定是”不喜欢”——可能只是没看到。训练时通常对未交互物品做负采样(随机取一小部分作为负样本),而非将所有未交互视为负样本。
  • 多目标排序:现代推荐系统不只优化点击率,还同时优化点赞率、完播率、评论率、分享率等——多任务学习(MMoE 架构)是工业界标配。
  • 电商商品推荐 → 淘宝/亚马逊:“猜你喜欢""购买了此商品的顾客还购买了""看了又看”——协同过滤是这些功能的底层逻辑。Amazon 早期论文中提出的 item-based CF 是推荐系统的经典工作。
  • 短视频/视频推荐 → 抖音/TikTok/YouTube/Netflix:抖音的推荐核心是多目标排序(点赞+完播+评论+分享),Netflix 的推荐驱动了 80% 以上的观看时长——推荐质量直接决定平台的用户留存。
  • 广告精准投放 → Facebook/Google/腾讯广告:推荐系统本质上是在做”用户-广告”匹配,预测用户点击广告的概率(CTR),决定广告展示和出价——这是千亿级数字广告产业的核心引擎。
  • 音乐推荐 → Spotify/网易云音乐:“每日推荐""私人 FM”根据用户听歌历史和音频特征(节奏、音色、情感)综合推荐,Spotify 的 Discover Weekly 是推荐系统最成功的产品案例之一。
  • 新闻资讯推荐 → 今日头条/Google News:新闻有时效性,推荐系统需要在”兴趣匹配”和”新鲜度”之间平衡,还要处理用户兴趣随时间的漂移。
类库语言说明
SurprisePython专用推荐系统库,提供 SVD、KNN 等经典 CF 算法
LightFMPython混合推荐库,支持协同过滤 + 内容特征融合
implicitPython针对隐式反馈(点击/购买)的快速 CF 库,内置 ALS 和 BPR
TensorFlow RecommendersPythonGoogle 的深度学习推荐系统库,内置双塔、Wide & Deep
DeepCTRPython专注 CTR 预估的深度学习库,内置 DeepFM/WDL/DIN 等
FaissC++/Python向量近似最近邻检索库,推荐召回阶段的核心工具
PyTorch BigGraphPythonFacebook 开源的大规模图嵌入库,适合知识图谱推荐
Spark MLlibScala/Python内置 ALS 算法,工业界大规模推荐系统的分布式训练选择
术语英文解释
协同过滤Collaborative Filtering (CF)基于用户行为相似性做推荐的方法,分 user-based 和 item-based
矩阵分解Matrix Factorization (MF)将稀疏用户-物品矩阵分解为低维用户/物品隐向量
交替最小二乘法Alternating Least Squares (ALS)交替固定一个矩阵、优化另一个矩阵的矩阵分解求解法,天然可并行
冷启动Cold Start新用户或新物品缺乏交互数据导致无法推荐的难题
召回Recall/Candidate Generation从海量物品中快速筛选候选集的推荐第一阶段
排序Ranking对候选集精排打分,输出最终 Top-N 推荐结果
隐式反馈Implicit Feedback点击、浏览、停留等非评分行为,数据量大但含噪音
点击率CTR (Click-Through Rate)用户点击广告/推荐项的概率,推荐与广告的核心指标
Wide & DeepWide & Deep LearningGoogle 提出的记忆+泛化联合推荐模型架构
因子分解机Factorization Machine (FM)用隐向量点积学习二阶特征交叉的模型
注意力机制Attention Mechanism根据目标动态分配不同权重的机制,DIN 用它实现目标级兴趣激活
嵌入层Embedding Layer将稀疏 ID 特征映射为稠密低维向量的神经网络层
负采样Negative Sampling从未交互物品中采样一部分作为负样本,处理隐式反馈中”无交互≠不喜欢”的问题
  • 协同过滤谱系:GroupLens(1994,最早的自动化推荐系统)→ item-based CF(Sarwar 2001)→ 矩阵分解(Koren 的 SVD++,Netflix Prize 2006–2009 冠军方法核心)。Netflix Prize 百万美元大赛是推荐系统领域的里程碑事件。
  • 矩阵分解谱系:SVD(Koren 2008, Matrix Factorization Techniques for Recommender Systems)→ 隐式反馈 MF(Hu, Koren & Volinsky 2008, Weighted ALS)→ SVD++(加入隐式反馈信号)→ timeSVD++(加入时间漂移因子)。
  • 深度学习推荐谱系:YouTube DNN(Covington 2016,双塔召回)→ Wide & Deep(Cheng 2016,Google)→ DeepFM(Guo 2017,FM + DNN)→ DIN(Zhou 2018,阿里,引入注意力机制建模用户兴趣多样性)→ DIEN(Zhou 2019,加入兴趣演化建模)→ DLRM(Facebook,工业级深度推荐模型)。
  • 推荐系统与经典 ML 的关系:协同过滤本质是 k-NN(见监督学习)在用户-物品矩阵上的应用;矩阵分解本质是线性代数(SVD)与优化的结合——推荐系统是传统 ML 方法在工业界最成功的落地之一。
  • 前沿方向(2024–2025):
    • LLM 驱动的推荐(LLM-based Recommendation):用大语言模型理解用户兴趣和物品语义,实现自然语言对话式推荐。P5(Geng 2022)将推荐任务统一为 prompt 格式;Chat-REC(Gao 2023)用 ChatGPT 做推荐推理。2024-2025 年研究热点包括 LLM 作为推荐系统的排序器/生成器、LLM 增强冷启动推荐。
    • 生成式推荐(Generative Recommendation):不再从固定物品库中”检索”,而是直接”生成”推荐列表。Meta 的 Generative Recommenders(2024)用生成模型统一召回和排序,在短视频推荐上取得显著提升。
    • 图神经网络推荐(Graph Neural Network for RecSys):LightGCN(He 2020)在用户-物品二部图上做图卷积,学习更高阶的协同信号;2024 年的研究方向包括动态图推荐和异构图推荐。
    • 多任务学习排序:MMoE(Ma 2018)和 PLE(Tang 2020)是工业界多目标排序的标准架构,同时优化点击、点赞、完播等多个目标。
    • 强化学习推荐:将推荐建模为序列决策问题,平衡短期点击与长期用户满意度。2024-2025 年方向包括离线强化学习推荐和 LLM 辅助的策略探索。
    • Action-Based RecSys:2024-2025 年的前沿趋势是从”预测点击”走向”理解和激发用户行动”——不只是推荐物品,而是推荐会引发用户深度参与的内容组合。