有了我们训练好的两特质模型,我们现在准备好做一些推荐了!在训练期间,我们学到了每部电影和每个人在特质空间中(不确定的)位置。我们现在可以为验证集中每一条被留出的评分做预测。我们一次做一条评分——也就是说,一次针对一个人和一部电影。首先,我们把电影 trait 和人的 preference 的先验设为训练期间学到的后验。然后我们运行期望传播来推断 likesMovie 上的后验分布,以计算这个人会喜欢这部电影的概率。在验证集中所有评分上重复这一过程,就得到了每个人喜欢每部电影的概率,如图 5.15a 所示。图 5.15b 显示了对应的真实标签喜欢/不喜欢的值。
(a) 推断的喜欢概率
(b) 真实标签喜欢/不喜欢
图 5.15:我们推荐模型的初步结果。(a) 计算得到的每个人喜欢每部电影的概率。白色方块对应概率 1.0,黑色对应概率 0.0,灰色的深浅表示介于两者之间的概率值。(b) 真实标签——白色表示这个人喜欢这部电影,黑色表示他不喜欢。
从图 5.15b 中最先引人注意的一点是,人们大多喜欢电影,而不是不喜欢它们。因此从某种意义上说,我们给推荐系统设定的任务,是试图找出一个人不喜欢的少数几部电影。看图 5.15a 中预测的概率,我们可以在这个任务上看到一些成功——因为某些较暗的方块确实与真实标签中的黑色方块正确对齐了。此外,某些行总体上比平均更暗或更亮,表明我们能够学到每个人总体上有多可能喜欢或不喜欢电影。然而,这些预测并不完美——有许多不喜欢的电影被漏掉了,也有一些不喜欢的预测是错误的。但在我们对模型做任何改进之前,我们需要先决定用哪些评估指标来度量和追踪这些改进。
……