我现在所能找到的只是基于随机游走或图形内核,这很好,但我希望为我的推荐系统有一个或多或少坚实的概率基础,用于边界和估计以及通常带有概率模型的东西。
我可能应该澄清一下:我有一个图表并且想要构建推荐引擎,它会根据用户选择的顶点推荐某些顶点。
我现在所能找到的只是基于随机游走或图形内核,这很好,但我希望为我的推荐系统有一个或多或少坚实的概率基础,用于边界和估计以及通常带有概率模型的东西。
我可能应该澄清一下:我有一个图表并且想要构建推荐引擎,它会根据用户选择的顶点推荐某些顶点。
有一种非常著名的基于受限玻尔兹曼机 (RBM) 的方法,它赢得了 Netflix 比赛。有关更多详细信息,您可以查看Wikipedia站点以及其中的参考资料。
受限玻尔兹曼机是马尔可夫随机场的一个特殊实例,具有一些特别有吸引力的特性。这里有几点。
本文详细介绍了该方法。这个想法是每个用户都有一个 RBM。每个 RBM 具有与用户评分的项目一样多的隐藏单元。主要见解是权重共享:所有用户共享对应项目的权重,即它是相同的参数。因此,当许多用户对一个项目给予良好评价时,所有用户的相应权重都会变得更强。反之亦然。这里是协作发生的地方。
现在,为了查看向给定用户推荐哪些项目,可以将可见单元固定到观察到的评级,并评估为每个用户获得给定评级的概率。您可以查看这些幻灯片,其中有更详细的图形解释。
据我了解,选择一个顶点相当于选择其中一项。RBM 将返回用户将项目评分为 k 的可能性,其中 k 是每个可能的评分。
对于不受限制的玻尔兹曼机,还有另一篇很好的论文。您还可以查看sum/max product networks。
可能你真正想做的是计算边际分布而不是真正的推荐系统。在这种情况下,请考虑马尔可夫随机场或对数线性模型。