Youtube的召回模型是比较复杂的,上面提到的召回模型都是用到了用户和物品的id类特征,而Youtube模型用到了性别、地理信息、样本的时间和一些embedded特征等。这个模型的特点就是:模型最后一层的输出当作用户的隐向量,是在线上实时计算的,就是每次用户来经过嵌入层变成向量再到ReLU这样的网络得到一个输出作为用户的隐向量;最后一层的权重当作物品的隐向量,这一部分是离线训练好后直接存储起来,线上不用直接更新,直接拿出来用就行;这些线上拿到用户的隐向量以及存储的物品隐向量以后,做一个基于类似最近邻查找的方法基于内积进行最近邻查找,其实就是把用户隐向量和所有物品隐向量做内积,然后根据内积进行排序。
https://zhuanlan.zhihu.com/p/100019681
He X, Pan J, Jin O, et al. Practical lessons from predicting clicks on ads at facebook[C]//Proceedings of the Eighth International Workshop on Data Mining for Online Advertising. 2014: 1-9.
Wide&Deep类模型区别就在两部分:一是特征交叉的方式是隐式/显示、元素级/向量级、二阶/高阶中的哪一个;二是所有Embedding的级联方式是concatenate/weighted sum/product/attention中的哪一种。
https://mp.weixin.qq.com/s/e6Spp7smIEUUExJxHzUOFA
Hu Y, Koren Y, Volinsky C. Collaborative filtering for implicit feedback datasets[C]//2008 Eighth IEEE International Conference on Data Mining. Ieee, 2008: 263-272.
He X, Liao L, Zhang H, et al. Neural collaborative filtering[C]//Proceedings of the 26th international conference on world wide web. 2017: 173-182.
He X, Liao L, Zhang H, et al. Neural collaborative filtering[C]//Proceedings of the 26th international conference on world wide web. 2017: 173-182.
它提出了一个GMF Layer(广义矩阵分解层)和一个DNN层。可以看到拿到用户和物品的隐向量之后,一方面在GMF层做元素级别的乘积,其实内积就是对应位置相乘再相加,NeuMF稍微改进了一下,对应位置相乘完之后,不是直接相加,而是再学一次权重,这就是在接一个Dense层来学习一下权重,相当于传统的矩阵分解权重不在都为1,而是用网络学习。另一方面,加入了一个DNN层。把用户隐向量和物品隐向量直接Concatenate起来以后,直接接入一个DNN层。最后将两方面的结果Concatenate起来接到输出层。