推荐系统summary:
- 统计最流行的,就是most popular; 还有分的更细的就是基于人口统计学的,就是demographic, 比如基于定年龄段的用户做推荐
- content-based (比如提前给电影打标签,动作片,爱情片,恐怖片...如果用户选了爱情片,下次就给他推送爱情片)
- collaborative filter (下面两种similarity 矩阵在实际场景中都巨大,如果10万人的 user-user similarity 矩阵就是 10万x10万 这样的矩阵,矩阵在memory 里面都装不下. 顺便提一下,因为是装在memory里面的所以下面两种也叫 memory-based 类型)
- user-user similarity
- item-item similarity
- matrix factorization (使用SVD算法把大的rating矩阵转换成小的维度,R=USVT, SVD计算很慢,还需要补足missing data)
- 为了解决 SVD的问题,gradient decent 方法很快,也能很好的处理missing data问题. 请参考FunkSVD, 大概的做法是不考虑 USVT里面的S,把U,V当成参数用 SGD 取train. (当然还有其他基于 gradient decent 的方法, 比如用matrix factorization in keras, matrix factorization+deep learning, matrix factorization+multi-brach, AurtoRec, 这些都在另一个文章里讲到 )
Ref:
- Recommender Systems 明尼苏达大学的coursera 网课
- http://www.ruanyifeng.com