仅供学习使用
4.2.5 基于稀疏自编码的推荐方法
矩阵分解的本质是通过一次分解来对原矩阵进行逼真,特征挖掘的层次不够深入。
另外也没有考虑到物品本身的信息。
所以,通过多层感知器,可以得到更加深度的特征表示。
4.3 基于社交网络的推荐算法
4.3.1 基于用户的推荐在社交网络中的应用
对于两个用户,可以通过计算他们共同的好友,来计算他们的相似度。
4.3.2 node2vec 技术在社交网络推荐中的应用
图特征表示
- random walk 随机游走
- Word2Vec
4.4 推荐系统的冷启动问题
4.4.1 如何解决推荐系统冷启动问题
- 用户冷启动(新用户)
– 利用用户的信息
– 用户的手机IMEI
– 制造选项,让用户选择 - 物品冷启动(新物品)
– 利用物品的内容信息
– 利用专家标注的数据 - 系统冷启动
4.4.2 深度学习技术在物品冷启动上的应用
CNN
第五章 混合推荐系统
能够达到海量数据推荐、高质量推荐。
混合推荐系统的算法分类:
- 加权型混合推荐。不同算法的推荐结果,加权排序
- 切换型混合推荐。根据问题,切换推荐方法。
- 交叉型混合推荐。保证结果的多样性,将不同算法推荐的结果,按照一定的配比组合在一起,打包给用户。
- 特征组合型混合推荐。把来自不同数据源的特征进行组合,由一种推荐技术使用。 不同的基础特征可以组合或合并。
- 瀑布型混合推荐。采用过滤的设计思想,将不同的推荐算法视为不同的过滤器。一般将速度快、区分度低的算法放前面。
- 特征递增型混合推荐。将前一个推荐方法的输出,作为后一个推荐方法的输入。
- 元层次型混合推荐。
5.2 推荐系统的特征处理方法
数据与特征决定了模型的上限,而模型算法则为逼近这个上限。
处理特征。
5.2.1 特征处理方法
- 数值特征处理
- 无量纲处理。将不同规格的数据转换到同一规格。标准化、区间缩放。
- 非线性变换。对特征进行非线性变换,来增加模型的复杂度。例如:SVM。线性不可分的数据,先进行核函数映射,将低维数据映射到高维数据,使得数据在高维空间线性可分。
- 离散化。装箱、基于聚类分析。
— 离散化的好处:
– 1. 对于异常数据,具有很好的鲁棒性。例如年龄100;
– 2. 离散化之后可以进行特征交叉,特征内积乘法计算速度快;
– 3. 模型更稳定
- 离散特征处理
- 0-1编码。one-hot编码,独热编码
- 特征哈希。把原始的高维特征压缩成低维特征,且尽量不损失原始特征的表达能力
- 时间特征处理。层次化处理时间特征
5.2.2 特征选择方法
- 单变量特征选择
- 皮尔森相关系数。表示两个变量之间的协方差和标准差的商
ρ X , Y = E [ ( X − μ X ) ( Y − μ Y ) ] σ X σ Y \rho _{X,Y} = \frac{E[(X-\mu _{X})(Y-\mu _{Y})]}{\sigma _{X}\sigma _{Y}} ρX,Y=σXσYE[(X−μX)(Y−μY)] - 距离相关系数
D c o r ( X , Y ) = d C o v ( X , Y ) ( ( d C o v 2 ( X , X ) ) 1 2 ⋅ ( d C o v 2 ( Y , Y ) ) 1 2 ) 1 2 Dcor(X,Y) =\frac{dCov(X,Y)}{((dCov^2(X,X))^\frac{1}{2}\cdot(dCov^2(Y,Y))^\frac{1}{2})^\frac{1}{2}} Dcor(X,Y)=((dCov2(X,X))21⋅(dCov2(Y,Y))21)21dCov(X,Y) - 卡方检验。通过观察实际值和理论值的偏差,来确定理论的正确与否。 建设两个变量确实是独立的。
- 基于模型的特征选择
- 逻辑回归和正则化特征选择。假设特征之间是相对比较独立的。
L1正则化:将系数w的L1范数作为惩罚项,加到损失函数上。L1学到的模型很稀疏。
L2正则化:将系数向量的L2范数作为惩罚项,加到损失函数上。表示能力强的特征,对应的系数是非零。 - 随机森林特征选择。准确性高、鲁棒性好、容易使用
- XGBoost特征选项
5.3 常见的预测模型
5.3.1 基于逻辑回归的模型
5.3.2 基于支持向量机的模型
5.3.3 基于梯度提升树的模型
5.4 排序学习
5.4.1 基于排序的指标来优化
R
M
S
E
=
∑
i
=
1
n
(
y
i
−
y
^
i
)
2
n
RMSE=\sqrt{\frac{\sum_{i=1}^{n}(y_{i}-\hat{y}_{i})^2}{n}}
RMSE=n∑i=1n(yi−y^i)2
D
C
G
@
T
=
∑
i
=
1
T
2
l
i
−
1
l
o
g
(
1
+
i
)
DCG@T=\sum_{i=1}^{T}\frac{2^{l_{i}}-1}{log(1+i)}
DCG@T=i=1∑Tlog(1+i)2li−1