为什么 Transformer 在推荐领域难以复现 NLP 的成功?

为什么 Transformer 在推荐领域难以复现 NLP 的成功?

很多人说,Transformer 不擅长处理推荐系统中的异质特征。

我认为这个说法并不准确。

用户 ID、商品 ID、城市、类目等特征,都可以转成相同维度的 embedding,再输入 Transformer。多张 embedding 表也可以通过划分索引区间,合并成一张大表。

所以,问题不在于 Transformer 无法接收这些特征,而在于:推荐数据没有为 Transformer 提供像自然语言那样适合学习的结构和监督。

我认为主要有两个原因。

一、推荐数据的结构约束更弱

文本中的 token 不仅存在先后顺序,而且这种顺序直接构成语义。

例如:

人咬狗。

狗咬人。

只是交换两个词,句子的含义就发生了确定性的变化。

这是因为语言中的顺序是一种构成性顺序:词语之间存在稳定的语法和逻辑关系,改变顺序就会改变原来的语义。

推荐行为同样有时间顺序:

浏览手机 → 浏览鞋子 → 浏览电影票

但这种顺序主要记录事件发生的先后,并不保证相邻行为存在稳定的逻辑关系。

用户可能同时具有多个兴趣,也可能受到推荐曝光、促销活动、误触和时间变化的影响。把"浏览手机"和"浏览鞋子"的顺序交换,通常不会像交换句子中的主语和宾语一样,产生一个确定的新含义。

因此:

语言顺序决定语义,推荐顺序通常只记录行为。

推荐序列不是完全没有结构,而是它的结构约束更弱、更不稳定、噪声更大。

静态推荐特征的问题更加明显。用户 ID、年龄、城市、商品 ID和价格只是一组业务变量,它们之间分别可能是身份、属性、匹配或数值关系,并不构成一个天然的逻辑序列。

Transformer 可以计算这些特征之间的注意力,却缺少像语言结构那样稳定的关系可供学习。

二、推荐数据的有效监督更加稀疏

语言模型可以对一段文本中的几乎每个位置进行预测:

\P(x_t\\mid x_1,\\ldots,x_{t-1}) \\

长度为 \(N\) 的文本,可以提供接近 \(N\) 个 next-token 训练信号。

而且,词和子词会在大量文本中反复出现。同一个 token 可以从不同上下文中持续获得监督,逐渐形成稳定、可迁移的语义。

推荐序列在形式上也可以这样训练:

\P(i_t\\mid i_1,\\ldots,i_{t-1}) \\

也就是说,用户每次历史行为都可以作为一次 next-item 预测目标。

但形式相同,不代表监督质量相同。

推荐系统中的用户序列通常更短,有效点击和购买更少;商品空间更加长尾,并且不断上新和下架。很多商品只有少量交互,难以学到稳定的 ID 表示。

更重要的是,用户只能点击系统曾经展示过的商品。因此,观测到的行为不只是用户兴趣,还受到曝光策略、展示位置和当前场景影响:

\\\text{观测行为} = \\text{用户兴趣} + \\text{曝光策略} + \\text{场景影响} + \\text{随机噪声} \\

所以,推荐系统缺少的并不是 next-item 这种训练形式,而是足够密集、可靠且可复用的有效监督。

判别式推荐为什么更加自然?

既然推荐特征并不构成一个逻辑严密的自然序列,那么更直接的方法就是:

给定用户、历史行为、候选商品和当前场景,直接预测用户是否会点击。

即:

\P(\\text{点击}=1\\mid\\text{用户、历史、商品、场景}) \\

这是一种判别式任务。它不要求输入特征组成自然语言那样的序列,只需要学习这些条件与点击结果之间的关系。

对于 CTR、CVR 等明确的业务目标,这种方式通常更加直接,也更符合真实的线上排序问题。

当然,next-item prediction 仍然有价值。它可以学习用户的动态兴趣,也可以用于预训练和候选召回。只是它很难单独替代最终的判别式排序。

总结

Transformer 在推荐领域难以复现 NLP 的成功,并不是因为它无法处理 ID、类别或其他异质特征,而是因为推荐数据缺少 NLP 所拥有的两个关键条件:

  1. 强而稳定的结构约束;
  2. 密集、可靠且可复用的有效监督。