再看Youtube DNN 关于 softmax召回的解释

593次阅读
没有评论

问题:Youtube为什么要用这个巨大的softmax多分类来建模,而不是用p(w|user,video)的二分类(类似点击率预估)来建模?对这个问题,文中没有给出明确的答案。

Youtube使用的多分类softmax模型 优化这样一个具有海量类别的softmax非常困难,不得不牺牲准确度,而使用Sampled Softmax来近似 如何定义负样本?难道真像文章中所说,为每个完成观看的视频,都简单抽样几千个未观看的视频作为负样本?要知道,大量的未观看的视频,压根就没有曝光过,如此简单抽样,样本带有极大的bias。当然,可以只将曝光却未观看的视频作为负样本,但是曝光过的视频,绝大部分是来自上一个版本的推荐引擎,这样收集到的数据同样带有bias。

二分类的类似“点击率预估”模型: 思路简单,让我来做召回,我的第一个直觉就是采用二分类算法来观测是否完成观看 实现简单,Sampled Softmax简化后,也还需要计算几千次点积、exp、加和,而二分类连这个都省了。而且我们同样可以将完成观看的概率写成 [公式] ,在线召回时同样可以简化为“近邻搜索”问题而加快计算。 同样受“如何定义负样本”问题的困扰,但是所受影响与softmax多分类完全相同,“多分类建模”在这一点上没有优势。 目前,我能够想到的唯一解释是:softmax loss只和true label=1的类的预测概率有关。为了让softmax loss足够小,不仅“真正完成观看的视频”的概率要大(即分子要大),其他“未完成观看的视频”的概率要小(即分母要小)。这样一来,优化softmax loss类似于在pairwise LTR优化BPR loss,比简单的CTR/CVR预估更加符合推荐系统的实际需求。

admin
版权声明:本文于2021-09-01转载自石塔子,共计721字。
转载提示:此文章非本站原创文章,若需转载请联系原作者获得转载授权。
评论(没有评论)