如何通过 Actor 网络压缩为概率分布实现
在推荐系统中,当动作空间是 “候选池中所有可能的 Top-N 商品组合” 时,直接对所有组合建模概率分布是不可行的(组合数随候选池规模呈指数增长)。Actor 网络需要通过动作空间分解、结构化概率建模等方式,将庞大的组合空间压缩为可计算的概率分布。以下是具体实现思路:
核心思路:将 “Top-N 组合选择” 分解为结构化决策
Actor 网络的目标是输出策略分布 \(\pi(a|s)\),其中 a 是一个 Top-N 商品组合(如 10 个商品的列表)。关键是将 “选择组合” 拆解为可分步计算的子决策,通过局部概率的乘积或依赖关系建模全局组合的概率,从而压缩动作空间。
实现方案:序列选择与条件概率建模
最常用的方法是将 Top-N 组合的选择拆解为N 步有序决策:第 1 步从候选池中选第 1 个商品,第 2 步从剩余商品中选第 2 个商品,...,第 N 步选最后 1 个商品。此时,Top-N 组合的联合概率可表示为条件概率的乘积,Actor 网络只需建模每一步的条件概率分布。
1. 动作空间的分解
设候选池为 (共 M 个商品),Top-N 组合 \(a = (a_1, a_2, ..., a_N)\) 需满足 \(a_k \in \mathcal{I}\) 且所有 \(a_k\) 互不重复。则联合概率:
\(\pi(a|s) = \pi(a_1|s) \cdot \pi(a_2|s, a_1) \cdot \pi(a_3|s, a_1, a_2) \cdot ... \cdot \pi(a_N|s, a_1,...,a_{N-1})\)
其中,每一步 \(\pi(a_k|s, a_1,...,a_{k-1})\) 表示 “在状态 s 和已选商品 \(a_1,...,a_{k-1}\) 条件下,选择第 k 个商品 \(a_k\) 的概率”。
2. Actor 网络的结构设计
Actor 网络需建模上述条件概率,核心是动态捕捉已选商品对下一个选择的影响,同时避免重复选择。典型结构如下:
(1)输入:状态与已选商品序列
- 状态 s:用户特征(历史行为、属性)、上下文(时间、场景)、候选池商品特征等,编码为向量 \(\mathbf{s} \in \mathbb{R}^D\)。
- 已选商品序列:前 k-1 步选择的商品 \((a_1,...,a_{k-1})\),通过嵌入层编码为序列向量 \(\mathbf{h}_{1:k-1} = [\text{Emb}(a_1), ..., \text{Emb}(a_{k-1})] \in \mathbb{R}^{(k-1) \times E}\)(E 为商品嵌入维度)。
(2)中间层:建模序列依赖与交互
用注意力机制(Attention) 或循环神经网络(RNN) 处理已选商品序列与状态的交互,输出 “当前决策的上下文向量”:
- 例如,用 Transformer 的编码器层: \(\mathbf{c}_k = \text{Transformer}(\mathbf{s}, \mathbf{h}_{1:k-1})\) 其中,\(\mathbf{c}_k\) 融合了状态 s 和已选商品的信息,用于预测第 k 个商品的选择。
(3)输出层:条件概率分布
对候选池中未被选中的商品计算得分,通过 Softmax 归一化得到条件概率:
- 商品 i 的得分:\(\text{score}(i|s, a_1,...,a_{k-1}) = \mathbf{c}_k \cdot \text{Emb}(i)\)(内积度量匹配度)。
- 掩码处理:对已选商品 \(a_1,...,a_{k-1}\) 赋予负无穷得分,确保其概率为 0(避免重复选择)。
- 条件概率: \(\pi(a_k = i|s, a_1,...,a_{k-1}) = \frac{\exp(\text{score}(i))}{\sum_{j \notin \{a_1,...,a_{k-1}\}} \exp(\text{score}(j))}\)
3. 从分步概率到 Top-N 组合
通过上述步骤,Actor 网络可生成一个完整的 Top-N 组合:
- 初始化已选序列为空,计算第 1 个商品的概率分布 \(\pi(a_1|s)\),采样或选择概率最高的商品 \(a_1\)。
- 将 \(a_1\) 加入已选序列,计算第 2 个商品的条件概率 \(\pi(a_2|s, a_1)\),采样 \(a_2\)。
- 重复至第 N 步,得到完整组合 \((a_1,...,a_N)\)。
关键技术:解决组合优化与探索问题
避免次优局部决策 分步选择可能陷入 “局部最优”(如前几步选了高点击商品,但整体多样性差)。可通过全局价值引导优化:
- 用 Critic 网络评估整个 Top-N 组合的价值 \(Q(s, a)\),在策略梯度中加入全局价值修正: \(\nabla J(\theta) \approx \sum_{a} Q(s, a) \nabla \log \pi(a|s; \theta)\)
高效探索 直接采样高概率商品可能导致推荐同质化,需引入探索机制:
- Gumbel-Softmax 采样:在每步选择时加入 Gumbel 噪声,平衡随机性与确定性: \(\hat{a}_k = \arg\max_i \left( \log \pi(a_k = i|s, ...) + \text{Gumbel}(0, 1) \right)\)
- 多样性约束:在得分函数中加入 “与已选商品的差异惩罚”,如: \(\text{score}(i) = \mathbf{c}_k \cdot \text{Emb}(i) - \lambda \sum_{t=1}^{k-1} \text{sim}(\text{Emb}(i), \text{Emb}(a_t))\) (\(\text{sim}\) 为相似度函数,\(\lambda\) 控制多样性权重)。
处理超大候选池 若 M(候选池规模)超过 10 万,每步计算所有商品的得分仍耗时。可通过两阶段筛选优化:
- 第一阶段:用轻量模型(如 FM、双塔模型)从 M 个商品中筛选出 K 个候选(如 K=200),大幅缩小范围。
- 第二阶段:Actor 网络在这 K 个商品中分步选择 Top-N,降低计算成本。
总结
通过 “分步条件概率建模”,Actor 网络将指数级的 Top-N 组合空间压缩为 N 个分步决策的乘积,实现了策略的可计算性。核心是:
- 用序列模型(Transformer/RNN)捕捉已选商品的依赖关系;
- 用掩码机制避免重复选择;
- 结合全局价值引导和多样性约束优化组合质量。
这种方法在工业级推荐系统中被广泛应用(如阿里的 Deep Interest Evolution Network、亚马逊的个性化推荐),可有效平衡推荐的相关性与多样性。