1引言
先回到先前几篇讲的问题,对一个评分矩阵预测缺失值。我们先把这个矩阵用ohehot编码转化成二进制,如下的图(来源课件):
这样原先的矩阵转化成矩阵和评分向量
那么对于之前的一条记录就变成:
第一个1在第u个位置,第二个1在n+i的位置,即
2分解机FM
对于给定的一个特征向量,线性回归采用的函数是:
其中,w是模型参数,不过每个特征分量和之间是独立的,所以我们还要考虑特征分量之间的相互关系,所以改写成
不过它还有一点缺欠,如果和没有出现过交互(emmm有点绕,就是比如说代表用户i,代表物品j,该用户i没有给物品j打过分,那么两者就算是没有交互)那么系数。这意味着没有出现过交互的特征分量,不能对相应的参数进行估计,如果训练集非常非常稀疏,那没有交互的特征分量是特别多的。
所以考虑把换个表达方式,
其中,
这样在用户i没有给物品j打分的情况下给物品k打分了,而其他用户如果给物品j和物品k打分接近,那么就可以用用户i给物品k的分数来估计物品j的分数。???好吧我不是很理解。
但是我们肯定是不用去估计的,因为参数最终是训练出来的,内在关系模型会自己学出来。
3预测规则
那么我就给出了最后我们的预测规则:
对于一条记录,只有和是1,那么:
发现没,就是之前的RSVD。
那为什么还要大费周章去分解矩阵?
如果我们还有一些和用户或者物品有关的信息,那我们可以将之与onehot编码排在一起,如图:
这样预测规则改写成:其中z=n+m+f,f是额外的信息。
4梯度下降法求解问题
跟前面讲的很像,直接贴图啦。
目标函数:
5小结
这样就可以把其他一些信息衔接起来了。
比较简单,课件没有实现任何代码,所以我也偷懒了。
网友评论