多兴趣召回(Multi-Interest Recall)是一种处理用户多样化兴趣的推荐技术,广泛应用于复杂推荐场景(如电商、社交平台等)。相比传统方法仅提取单一兴趣特征,多兴趣召回能更细粒度地刻画用户兴趣,提升召回的丰富性与匹配度。
以下从底层原理和每一步背后的逻辑出发,完整详细地解释多兴趣召回的核心机制。
一、推荐系统背景
-
推荐系统的目标:
- 根据用户历史行为或上下文信息,预测用户可能感兴趣的物品。
- 包括两步:召回(从全量物品中筛选候选集)和排序(对候选集按相关性排序)。
-
单兴趣模型的局限:
- 传统方法用一个固定维度的向量(单兴趣)来表示用户,比如通过用户历史行为取平均值。
- 问题:用户兴趣往往是多样化的,使用单一向量难以准确反映不同兴趣点。
- 示例:一个用户可能同时喜欢“电子产品”和“家居用品”,单一向量会模糊这种多样性。
-
多兴趣召回的优势:
- 对用户行为序列进行细粒度建模,生成多个兴趣向量。
- 每个兴趣向量捕获用户的某一类兴趣,从而召回与该兴趣匹配的物品。
二、多兴趣召回的原理
多兴趣召回分为三大步骤:
- 用户行为序列的表示(行为建模)。
- 多兴趣的提取。
- 基于多兴趣的物品召回。
以下分别详细说明每一步的核心机制和原理。
1. 用户行为序列的表示(行为建模)
用户行为序列是多兴趣召回的输入,例如用户点击、浏览、购买的历史记录。这些行为序列反映了用户的潜在兴趣。
原理:
- 用户行为序列通常由一系列物品 ID 及其对应的特征组成。
- 将这些离散的物品 ID 映射为连续的高维向量(嵌入向量),方便进行数学计算和特征提取。
技术方法:
- Embedding(嵌入层):
- 将离散的物品 ID(如商品编号)映射到一个固定维度的嵌入空间。
- 嵌入层的权重矩阵是可学习参数,训练过程中通过反向传播不断优化。
- 直观理解:将每个商品“翻译”为一个向量,向量的语义反映商品之间的相似性。
数学表示:
假设:
- 商品集合为
。
- 嵌入矩阵为
(
为实数集),其中 n 是商品总数,d 是嵌入向量维度。
通过查表操作,将商品 ID vivi 映射为嵌入向量:
2. 多兴趣的提取
这是多兴趣召回的核心部分,通过分析用户的行为序列,提取多个兴趣点(每个兴趣点对应一个向量)。
原理:
- 用户的行为序列反映了多个兴趣点的组合。例如,一个用户点击的商品既可能属于“运动鞋”,也可能属于“电子设备”。
- 使用序列建模技术(如 RNN、Transformer、聚类等),从行为序列中提取多个兴趣表示。
技术方法:
-
序列建模:
- 使用循环神经网络(如 GRU/LSTM)或自注意力机制(Transformer)对用户行为序列进行编码。
- 这些方法能够捕捉序列中时间顺序、上下文等信息。
-
动态路由机制:
- 动态路由是从序列中提取多个兴趣向量的一种方法。
- 核心思想是:
- 初始化多个兴趣中心(随机向量)。
- 用户的行为通过注意力权重分配到不同兴趣中心。
- 反复迭代,调整兴趣中心,使其更准确地表示用户不同兴趣点。
数学表示:
- 用户行为序列的嵌入矩阵为
,其中 t 是序列长度,d 是嵌入维度。
- 初始化兴趣中心矩阵
,其中 k 是兴趣向量的数量。
动态路由的计算过程:
-
计算注意力权重:
表示每个行为与兴趣中心的匹配度。
-
更新兴趣中心:
表示更新后的兴趣中心。
-
迭代多次,直到收敛。
3. 基于多兴趣的物品召回
一旦提取出用户的多个兴趣向量,就可以与全量物品的嵌入向量进行匹配,召回与用户兴趣最相关的物品。
原理:
- 计算用户兴趣向量与物品嵌入向量之间的相似度,通常使用点积或余弦相似度。
- 每个兴趣向量召回一批候选物品,最终将这些候选物品合并。
数学表示:
假设:
- 用户兴趣向量为
。
- 全量物品嵌入矩阵为
。
相似度计算:
表示每个兴趣向量与每个物品的相似度。
根据相似度排名,取前 K 个物品作为召回结果。
三、多兴趣召回的总结优势
-
捕捉兴趣多样性:
- 每个用户的多个兴趣点被单独建模,不再用单一向量代表整个用户。
-
丰富召回结果:
- 不同兴趣点召回的物品可以覆盖用户的多种需求,提高推荐结果的覆盖度。
-
动态调整:
- 兴趣向量是通过动态计算获得的,可以根据用户行为灵活变化。
四、示例总结
一个实际场景中:
- 用户浏览了 “篮球鞋 A”、“跑鞋 B”、“智能手表 C”。
- 多兴趣召回可能提取两个兴趣点:
- 运动鞋(兴趣向量 1)。
- 智能设备(兴趣向量 2)。
- 分别召回:
- 兴趣向量 1:召回 “跑鞋 D”、“运动鞋 E”。
- 兴趣向量 2:召回 “智能手环 F”、“耳机 G”。
最终,合并召回的物品集呈现给用户,实现对用户多样化兴趣的全面覆盖。
通过这种方法,多兴趣召回提升了推荐系统的多样性、匹配度和用户满意度。