一、隐语义模型
1.1 隐语义模型概述
将用户和物品都转化为隐语义,将这两个通过隐语义进行组合,我们需要做的是通过数据出发,进行个性化的推荐;物品和用户之间可能存在着隐含的联系,因此我们需要建立隐含的关系方程。这个隐含因子只要能够让计算机理解就好。将用户和物品通过中介隐含因子联系起来。例如有N个用户和M和商品,打分矩阵如下所示:
首先分解,将N个用户分解成N*F的,N个用户转换成每个用户含有F个隐藏因子,对于M个电源,将F个隐藏因子对应M个电影,既能分解也能组合这就是隐语义模型。
1.2 隐语义模型求解
正常的情况下,我们都会有一个用户对于物品的评分值,公式如下所示:
首先,我们将用户对于物品的评分值转化为用户与隐含因子的关系以及隐含因子与物品之间的关系
在机器学习中我们需要找到损失函数或者需要优化的目标,在这里同样需要,如下:
然后我们定义一个损失:
这里的C就是真实值与预测值之差。
所以我们要求C就需要求P和Q这里面都是一些参数,因此我们需要加一些惩罚项的因子。上式中最右边就是加的是正则化的惩罚项。
现在我们就需要最小环Loss即C。利用梯度下降如下所示:
通过梯度下降吧梯度的方向拿出来之后,需要进行参数的更新,需要更新的主要是P和Q。
在求解的时候我们需要正负样本的选择。对于正样本就是打分的。对于负样本的选择要求如下:
(1)对每个用户,要保证正负样本的平衡(数目相似)
(2)选取那些很热门,而用户却没有行为的物品
(3)对于用户——物品集K{(u,i)},其中如果(u,i)是正样本则有=1,如果是负样本则=0
1.3 隐语义模型中的参数选择
(1)隐特征的个数F,通常是F=100,F越大隐射的空间越大
(2)学习率alpha,别太大就行;利用0.01,0.001都可以
(3)正则化参数lamda,别太大,0.01就可以了
(4)负样本/正样本的比例,ratio,这个需要自己再不同的场景下试验,观察一下准确率、召回率等等。
1.4 协同过滤VS隐语义模型
隐语义模型只有把隐含因子设置F小一点,整个的隐射空间就比较小,空间复杂度就比较低,而协同过滤需要维护一个规模比较庞大的用户评价表
二、推荐系统的评估标准
1.准确率
2.召回率
令R(u)是根据用户在训练集上的行为给用户做出的推荐列表,T(u)是用户在测试集删改的行为列表。就是看哪些推荐对了哪些推荐错了。
3.覆盖率
4.多样性
三、推荐系统实战案例