概率推荐模型实质上就是采用navie bayes的方法计算概率,根据bayes理论,有:
P(Y∣X)=P(X∣Y)×P(Y)P(X)P(Y|X)=\frac{P(X|Y)\times P(Y)}{P(X)}P(Y∣X)=P(X)P(X∣Y)×P(Y)
假设特征是条件独立的,则有:
P(Y∣X)=∏i=1dP(Xi∣Y)×P(Y)P(X)P(Y|X)=\frac{\prod_{i=1}^{d}P(X_{i}|Y)\times P(Y)}{P(X)}P(Y∣X)=P(X)∏i=1dP(Xi∣Y)×P(Y)
采用这种方法计算评分的一个问题是在稀疏或小的数据集上的表现较差,最终导致不同得分值的概率差别很小。因此一般会对原始的数据聚类后再在相应的簇中去计算概率。
一般有两种方式聚类,一种是采用K-means的方法,按照用户的相似度划分相应的类别。对于每个用户在特定类别中去计算概率。另一种是引入一个未观测的类别变量C,每个用户可能属于一个或多个类别,即假设每个用户属于特定类别c的概率是P(C=c),此时概率推荐模型可以表示为:
P(C=c,v1,...,vn)=P(C=c)∏i=1nP(vi∣C=c)P(C=c,v_{1},...,v_{n})=P(C=c)\prod_{i=1}^{n}P(v_{i}|C=c)P(C=c,v1,...,vn)=P(C=c)i=1∏nP(vi∣C=c)
对于含有隐变量的问题,可以使用上帝算法——EM算法求解。