千家信息网

youtube召回逻辑是怎样的

发表于:2024-11-28 作者:千家信息网编辑
千家信息网最后更新 2024年11月28日,youtube召回逻辑是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。youtube召回逻辑上图是整个架构中的候选集生成模块, 也
千家信息网最后更新 2024年11月28日youtube召回逻辑是怎样的

youtube召回逻辑是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。


youtube召回逻辑

上图是整个架构中的候选集生成模块, 也就是召回模块。

下面的这些embedding直接连起来, 效果, 不怎么好, 感觉只能做base line

example age是当前训练时间-日志时间, 由于某个视频的热度并不是均匀分布在时间线上的, 加上这个特征可以让分布尽量的与真实的保持一致, 很有意思的一点, 但是原因我没想太明白。

之后就是三层Relu, 最后输出一个vector, 假设为 20x1的embedding, 最后输出的这个就是 user embedding, 之后softmax然后ANN进行最近邻检索就行。

怎么做KNN召回的?

问题来了, 为什么能拿这个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召回逻辑是怎样的的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

0