协同过滤的优缺点

优点

不需要掌握任何域名知识

我们不需要掌握领域知识,因为系统会自动学习嵌入。

意外情况

该模型可以帮助用户发现新的兴趣爱好。单独来看,机器学习系统可能不知道用户对某个特定项感兴趣,但模型仍可能会推荐它,因为类似用户对该项感兴趣。

良好的开端

在某种程度上,系统只需要反馈矩阵来训练矩阵分解模型。具体而言,系统不需要上下文相关功能。实际上,这可以用作多个候选生成器之一。

缺点

无法处理新鲜商品

给定(用户、推荐项)对的模型预测是相应嵌入的点积。因此,如果在训练期间没有看到某个项,则系统无法为其创建嵌入,并且无法使用此项查询模型。此问题通常称为“冷启动问题”。但是,以下技术可以在一定程度上解决冷启动问题:

  • WALS 投影。鉴于在训练中没有看到的新项,如果系统与用户进行了几次互动,系统就可以轻松地计算此项的嵌入,而不必重新训练整个模型。 \(i_0\) \(v_{i_0}\) 系统只需要解以下方程式或加权版本:

    \[\min_{v_{i_0} \in \mathbb R^d} \|A_{i_0} - U v_{i_0}\|\]

    上述等式对应于 WALS 中的一个迭代:用户嵌入保持不变,然后系统会解决项 \(i_0\)的嵌入问题。新用户也可执行此操作。

  • 用于生成新项嵌入的启发法。如果系统没有互动,可以通过对同一类别中同一条目的嵌入进行平均处理,使其来自同一上传者(在 YouTube 中)等。

难以为查询/内容添加侧边功能

侧边地图项是指查询或商品 ID 之外的任何地图项。对于电影推荐,侧边功能可能包括国家/地区或年龄。添加可用的侧边特征可以提高模型的质量。虽然在 WALS 中加入侧边功能可能并不容易,但对 WALS 进行泛化实现了这一点。

如需泛化 WALS,请通过定义块矩阵 \(\bar A\)来增加输入矩阵的特征,其中:

  • 块 (0, 0) 是原始反馈矩阵 \(A\)。
  • 块 (0, 1) 是用户特征的多热编码。
  • 块 (1, 0) 是项特征的多热编码。