youtube召回逻辑是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
上图是整个架构中的候选集生成模块, 也就是召回模块。
下面的这些embedding直接连起来, 效果, 不怎么好, 感觉只能做base line
example age是当前训练时间-日志时间, 由于某个视频的热度并不是均匀分布在时间线上的, 加上这个特征可以让分布尽量的与真实的保持一致, 很有意思的一点, 但是原因我没想太明白。
之后就是三层Relu, 最后输出一个vector, 假设为 20x1的embedding, 最后输出的这个就是 user embedding, 之后softmax然后ANN进行最近邻检索就行。
问题来了, 为什么能拿这个DNN最后生成的user embeding 去召回, 进行ANN的Item Embedding从哪里来的? 以及ANN的时候用的是哪个距离?
首先, 对于某一个输入的user embedding, 判断此条件对某个item到底点不点, 可以理解为一个多分类问题, 即一个item就是一个分类, 假设视频个数为200w, 那么其实就是使用softmax判断 20维度的user embedding 到底会落在 200w中的哪一个。
所以, softmax会生成一个200w x 20 的denser, 那么每一个item就是一个 20x1的embedding, 用以表明item的embeding
再看一下softmax的公式, 那就是user embedding 与 item embedding, 然后加和求处理求最大, 但是由于在线上服务的时候不可能直接softmax算一遍, 由于softmax的特性, 只需要求两个embedding内积最大的那些来召回即可。
所以最后的item embedding为softmax产生的, 由于是一个softmax多分类问题, 所以需要在KNN的时候,求内积最大来实现,
具体实现可以采用Faiss, 创建IndexIVFFlat索引, 相似度方法采用 faiss.METRIC_INNER_PRODUCT, 把200w的item embedding放进去, 线上服务的时候那个三层模型实时反馈生成user embedding, 然后在faiss中做KNN
看完上述内容,你们掌握youtube召回逻辑是怎样的的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。