首页 > 代码库 > 基于标签的推荐系统
基于标签的推荐系统
一、基于图模型的推荐?
在不考虑标签时,基于二项图有两种随机游走的图推荐算法:
1.probability spreading
? ? ? 随机游走算法,在游走中,每个目标得到权重是基于归属者的边计算出来的。
每次传播(item->user->item)后用户Ui的兴趣向量:
$$f_j^p=\sum_{l=1}^{n}\sum_{s=1}^{m}\cfrac{a_{lj}a_{ls}a_{is}}{K(U_l)K(I_s)},j=1…m$$
2.heat spreading
? ? ?规则与ProbS相反,在游走中,每个目标得到权重是基于自己的边计算出来的。
每次传播后用户Ui的兴趣向量:
$$f_h^p=\cfrac{1}{K(I_j)}\sum_{l=1}^{n}\sum_{s=1}^{m}\cfrac{a_{lj}a_{ls}a_{is}}{K(U_l)},j=1…m$$
其中:$K(I_j)=\sum_{l=1}^{m}a_{lj}$是节目j的邻域大小,$K(U_l)=\sum_{l=1}^{n}a_{ls}$是用户l的邻域大小。
$a_{ij}$是表示用户i和物品j之间是否有边存在的二元向量。
相比之下,Heats算法倾向于降低热门item的权重,而Probs中与增强对热门item的推荐。
?
在随机游走算法的基础上,有基于三分图的标签推荐算法:
图中,用户i的每个item的权重(1 or 0)会同时像用户和标签进行传播,这样每次传播后的兴趣向量:
$f_j^t=\lambda f_j^p + (1-\lambda)?f_j^{pt}$,其中$f_j^p$和$f_j^{pt}$分别是从(item->user->item)和(item->tag->item)传播后得到的权重。
二、矩阵分解的张量模型
对三元阵$Y_{(n\times m\times?t)}$进行矩阵分解,C为核张量,U,I,T为用户特征,物品特征和标签特征矩阵。
根据分解结果对Y进行填充。
?
基于标签的推荐系统