gpt4 book ai didi

Mahout:如何为新用户提出建议

转载 作者:行者123 更新时间:2023-12-04 14:15:45 25 4
gpt4 key购买 nike

我们计划将 Mahout 用于电影推荐系统。而且我们还计划
使用 SVD 进行模型构建。

当新用户到来时,我们将要求他/她对一定数量的电影(比如 10 部)进行评分。

问题是,为了向这个新用户推荐,我们必须再次重建整个模型。

有没有更好的方法呢?

谢谢

最佳答案

是的...虽然不是在 Mahout 中。那里的实现本质上是围绕数据模型的定期重新加载和重建而构建的。在某些实现中,这仍然允许您即时使用新数据,例如基于邻域的实现。我认为基于 SVD 的内存中没有这样做(我没有写它。)

理论上,您可以从第一次点击或评分开始提出推荐,方法是通过折叠将目标项目/电影投影回用户特征空间。为了大大简化——如果输入 A 的 rank-k 近似分解是 Ak = Uk * Sk * Vk',那么对于新用户 u,您需要一个新行 Uk_u 用于更新。你有 A_u。

Uk = Ak * (Vk')^-1 * (Sk)^-1。好消息是右边的那两个倒数是微不足道的。 (Vk')^-1 = Vk 因为它有正交列。 (Sk)^-1 只是取 Sk 对角线元素的倒数。

所以 Uk_u = Ak_u * (Vk')^-1 * (Sk)^-1。您没有 Ak_u,但是您有 A_u,它大致相同,因此您可以使用它。

如果你喜欢 Mahout,也喜欢矩阵分解,我建议你考虑 ALS 算法。这是一个更简单的过程,因此速度更快(但会使折叠更难一些——参见 a recent explanation I gave 的结尾)。它非常适合推荐。

这也存在于 Mahout 中,尽管没有实现折叠。 Myrrix ,这是我从 Mahout 继续工作的地方,实现了所有这些。

关于Mahout:如何为新用户提出建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12857693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com