我对YouTube 的 DNN 候选生成的 softmax 层感到困惑。用户可以与许多视频进行交互。Softmax 假设类是独占的。例如,logits = [[4.0, 4.0, 1.0]],labels = [[1.0, 1.0, 0.0]],sigmoid 交叉熵损失为 0.45,而 softmax 交叉熵损失为 1.43。
是不是因为在候选生成阶段,item的相对顺序并不重要?
我对YouTube 的 DNN 候选生成的 softmax 层感到困惑。用户可以与许多视频进行交互。Softmax 假设类是独占的。例如,logits = [[4.0, 4.0, 1.0]],labels = [[1.0, 1.0, 0.0]],sigmoid 交叉熵损失为 0.45,而 softmax 交叉熵损失为 1.43。
是不是因为在候选生成阶段,item的相对顺序并不重要?
“是不是因为在候选生成阶段,item的相对顺序无关紧要?”
是的,这正是看起来正在发生的事情,尽管 youtube 似乎以非传统的方式使用 softmax。候选生成模型只是选择随后由排名模型排名的几百个候选视频。
我认为您引用的论文的第 3 节很好地解释了发生了什么:
“在服务时间,我们需要计算最可能的 N 个类别(视频),以便选择前 N 个呈现给用户......由于在服务时间不需要来自 softmax 输出层的校准似然度,因此评分问题减少了到可以使用通用库的点积空间中的最近邻搜索。”
据我所知,这种推荐器架构只对 youtube 这样的组织运营的规模有益,并且更多地与组织计算基础设施的实用性有关,而不是模型性能。我敢肯定,就 map@k 之类的东西而言,他们的模型性能与更“传统”的架构相比可以忽略不计。