文章目录
1.推荐系统的基础算法
1.1 基于内容的推荐
根据用户喜好和item的特征来推荐,需要考虑item的特征提取
1.2 基于协同的算法(collaborative filtering)
1.2.1 基于物品的协同(ItemCF)
协同,即假定用户会偏好购买相似的物品。以下方法计算物品相似度:
- 基于共同喜欢用户列表
使用购买次数N计算物品i与j的相关度:
其中,使用物品购买总次数作为惩罚(分母),消除热门物品的偏差。热门偏差进一步修正:
- 基于余弦相似度
当用户对物品喜好程度有评分时,物品可表示为用户评分向量,进而用余弦相似度计算物品相似度:
1.2.2 基于用户的协同(UserCF)
针对用户购买的物品记录建立向量,购买记录相似的用户相互推荐。算法与前者类似
1.2.3 基于用户协同与物品协同选择
- 推荐特性:UserCF偏向于推荐热门,ItemCF的推荐更具有新颖性、多样性。
- 推荐场景:社交网络、博客、微内容等更适合使用UserCF, 相当于对某些身份领域的人群进行了聚类, 购物网站则适合使用ItemCF。
- 用户特点:用户邻居过少则不适用UserCF, 用户自相似度(喜欢购买以前买过的同类物品)低,不适合ItemCF, 反之亦然。
1.2.4 矩阵分解算法(降维)
特征向量 的几何意义:向量x通过矩阵A变换,只进行缩放,而不改变向量方向,缩放倍数即特征值。
(关于矩阵分解,见另一篇博客)
-
svd
SVD可以将m x n维矩阵压缩为m x k(k<<n)维矩阵,在推荐系统中,n,m分别为用户数、物品数,使用SVD压缩向量长度后再求相似度,可以大大减小计算量,这十分重要。但由于SVD在计算过程中需要将稀疏矩阵补全为稠密矩阵,在大数据情况下无法满足存储要求,因此svd也只能适用于相对较小的规模 -
1.3.2 基于ALS的隐语义模型(交替最小二乘法,Alternating Least Squares)
将矩阵分解模式改变为 , 由于等号难以完全满足,因此是两者尽可能小,即转化为最优化问题。其中P,Q分别为用户因子和物品因子。可食用spark计算mllib.als().
1.2.5 稀疏自编码神经网络(降维)
输入层和输出层为相同的高维稀疏用户收藏数据,隐藏层则为单层或多层低维(通过神经元个数设置维度)特征,通过训练可得到收藏数据的低维表示。如果改变输出层的数据(例如使用分类结果),则隐藏层可自动提取由输入、输出端共同的特征压缩表示。
1.3 基于社交网络的推荐算法
1.3.1
未完待续…