机器学习领域目前最成功的算法无疑就是推荐算法,所有本鸟也水一个demo练手
来自google的简介,请参考:https://developers.google.com/machine-learning/recommendation/
基于矩阵分解的推荐系统简介:
公式:U * V^T = R
其中U是用户的权值矩阵,V是内容的权值矩阵(可以是电影、新闻),R是评分矩阵
比如:
R代表用户对内容的评分,其中行代表用户,列代表内容
u\v | 1 | 2 | 3 | 4 |
———————
1 | 0 | 1 | 0 | 2 |
———————
2 | 0 | 0 | 1 | 0 |
———————
3 | 3 | 0 | 1 | 0 |
———————
4 | 1 | 3 | 0 | 1 |
这个算法要做的是从这个评分矩阵R分解出d维U、V矩阵
U
d\u | 1 | 2 | 3 | 4 |
———————
1 | ? | ? | ? | ? |
———————
2 | ? | ? | ? | ? |
V
d\v | 1 | 2 | 3 | 4 |
———————
1 | ? | ? | ? | ? |
———————
2 | ? | ? | ? | ? |
其中的?就是需要模型计算的值
看到这里,有没有想过一个问题?
用户评分过的电影才有评分,但是这些用户已经看过了,推荐出来有什么用?
1、这个模型可以再分解(称为双塔模型),加入关键词tag的概念
2、我们称U->tag的模型位为用户嵌入query,也就是常说的用户画像
3、称tag->V的模型为内容嵌入item,也就是用关键词训练出来的模型
4、这样,给用户推荐的内容就是
5、接下来就是召回(翻译的很粗糙),其实就是在候选集中假如过滤规则,进行重新打分排序,产生最终的推荐结果
项目代码:https://github.com/inferne/notes/tree/master/tensorflow/Recommedation
转载请注明:小Y » tensorflow推荐系统模型