了解 Youtube 推荐器中的 softmax 输出

数据挖掘 机器学习 神经网络 喀拉斯 推荐系统
2021-10-10 20:22:41

以前有人问过这个问题,但从未(据我所知)得到令人满意的回答。

我正在阅读 Youtube关于他们推荐系统的论文。该系统有两个元素,第一个是生成 100 个“候选”视频的 DNN,然后将其与来自其他来源的候选视频组合并由第二个 DNN 进行排名。在论文中,他们说他们将候选生成问题视为使用 Softmax 进行的极端多类分类。这种方法是可以理解的;softmax 输出中 N 个最高值的索引成为 N 个预测的候选者 - 很容易。

然而,进一步阅读本文,我开始对他们的网络到底在做什么感到困惑。他们给出了他们的网络结构图:

候选生成

从该图像中可以明显看出,除了 softmax 层之外还有一个完整的步骤,这是我不理解的。论文后面还有以下引述:

softmax 层在相同的 1M 视频类上输出多项分布,维度为 256(可以认为是单独的输出视频嵌入)。

还有:

由于在服务时不需要来自 softmax 输出层的校准似然度,因此评分问题简化为点积空间中的最近邻搜索,可以使用通用库。

但我对他们在这里实际实施的内容感到困惑。这个断言the softmax layer outputs...with a dimension of 256对我来说意味着它们实际上有一个最终层,Dense(256, activation='softmax')而不是Dense(n_classes...,但是图中“类概率”的存在使得这不可能,因为你无法将这样的嵌入转换为类概率。

所以; 我真的很困惑;有谁知道如何准确解释这里正在做什么?

1个回答

部分混淆来自用于训练和服务的不同预测过程。

Softmax 在训练期间用于对 100 万个视频类别进行预测。softmax 使神经网络梯度的训练更容易,并且在深度学习库中运行良好。

这 100 万个视频类别也恰好嵌入到 256 维空间中。在服务期间,预测现在是最近邻搜索。最近邻搜索更快,因为它是点积运算并且可以使用通用库。