您的位置:首页 > 其它

推荐算法从入门、进阶到高级

2017-09-03 00:14 183 查看
推荐的算法的重要性我就不多说了,反正是各种重要。

最近一段时间结合部门业务,我仔细的研究了各种推荐算法,在此我会附上相应的书籍和文献,帮助大家迅速的入门进阶,最终进入推荐算法的高手行列。

推荐算法分为:1.协同的推荐算法;2.基于内容的推荐算法;3.混合的推荐算法

在甩干货之前,补充一些常识:

机器学习、深度学习、推荐算法和数据挖掘的关系?

个人认为(而且好多资料中写道(具体什么资料这个我真记不清了,以后看到原文我会补上))机器学习是一个宏观的方法论或者学习理论,是一个方法论范畴,深度学习是机器学习的一个小分支,包括逐渐火的迁移学习都是机器学习的分支,所有它们的学习方法和机器学习相同,当然深度学习可以解释大部分模型(现在的模型无非是线性的和非线性的,这里使用大部分,是为了稳妥起见,当然说全部的模型,在现阶段也是可以接受的),现在流行的LR(逻辑回归),LFM(带隐变量的逻辑回归,其实就是在逻辑回归的基础上增加各个变量的相互作用而已),xgboost(梯度决策树), RF(随机森林)等都可以用神经网络表示,无非是激活函数的选择和训练策略(比如dropout等)的选择而已。

推荐算法也是属于机器学习范畴,属于它的一个分支,目前流行的推荐算法:CF(协同过滤),MF(矩阵分解),PMF(概率矩阵分解),cf-dnn(协同神经网络过滤),都可以用机器学习的理论解释。

数据挖掘是一个应用层面,是一个工程的问题,它包括数据库、检索、算法等好多方面。数据挖掘需要机器学习算法支持和指导。

废话说完,开始甩干货

推荐算法入门:user_cf,item_cf,聚类算法   

参考资料:《推荐系统实践》项亮 ;Amazon.com Recommendations Item-to-Item Collaborative Filtering

推荐算法进阶: MF(基于矩阵分解的推荐算法,变种很多,SVD,SVD++等),PMF(基于概率的矩阵分解,使用贝叶斯学派的思想进行矩阵分解,特点是各种假设服从高斯分布,为什么都假设服从高斯分布呢?统计学中有大数定律支持,不知道大数定理的朋友自行脑补,只要采样足够多,都会收敛于正态分布;当然这种假设也有不准确的时候,使用之前要判断一下数据分布是否符合高斯分布,如果不符合可以采用方法变成高斯分布),根据MF和PMF可以产生很多变种,比如基于社交网络的推荐算法,其实就是一类隐变量与其他因素共同影响。有可能有n多个数据源决定矩阵分解中两类隐变量(user_embed,item_embed)

参考资料:

matrix factorization techniques for recommender systems

Probabilistic Matrix Factorization

SoRec: Social Recommendation Using Probabilistic Matrix Factorization

还有其他的一些带隐反馈的论文

推荐系统高级:cf_dnn,就是使用神经网络或者机器学习的思想解决推荐问题,一般的推荐的问题就变成了有监督的机器学习问题。使用神经网络的时候,有时候会求user和item的隐向量,通常采用one-hot编码表示user和item,在通过权重得到隐向量,当user和item量很大的时候,比如我最近训练的一个模型,用户10万,物品1千万,如果直接使用one-hot的编码很容易导致内存不够,这个时候一般整一个embeding层,这里embeding相当于一个字典,是自己初始化生成的,user或者item可以到这里查找对应的隐向量。

参考资料:

AutoRec Autoencoders Meet Collaborative Filtering

Collaborative Filtering with Stacked Denoising AutoEncoders and Sparse Inputs

Hybrid Collaborative Filtering with Autoencoders

Neural Collaborative Filtering

还有其他相关的基于神经网络推荐算法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: