0

我对 Mahout 中偏好值的含义有疑问。从 Mahout in Action 一书中,它说:

偏好值可以是任何值,只要更大的值意味着更强的积极偏好。例如,这些值可能是 1 到 5 的评分,其中 1 表示用户无法忍受的项目,而 5 表示最喜欢的项目。

这是否意味着推荐者总是将较小的值解释为负面偏好(不喜欢)?

我正在尝试创建一个没有负面偏好的推荐器。我的意思是我根本没有偏好,但我可以根据不同的加权指标(点击/编辑次数、编辑量、编辑方式等)推导出它们。但是,在我的实现中,当用户编辑了某个页面时,这并不意味着用户不喜欢该页面,而是在一定程度上喜欢它(并且喜欢的强度是如上所述的)。

我曾尝试仅使用布尔偏好(对数似然和谷本相似度),但它们表现不佳,并且在大多数情况下,它们无法产生推荐(超过 50%)。

我想利用数字来获得偏好,因此推荐会更好,但我不确定如何。我尝试过从 5 到 10 的偏好值,然后每个用户对人造物品的偏好值为 1(意思是不喜欢它)。但是我认为这不是一个好方法,因为这意味着每个用户都不喜欢同一个项目。

有人对我如何应用一些仅具有“积极”(喜欢)偏好值的基于用户和基于项目的算法有更好的了解吗?

4

2 回答 2

2

如果您的意思是,您能否仅基于积极的行动获得合理的结果,那么当然可以。这是常见的情况。偏好值的解释方式在很大程度上取决于您使用的算法,但是对于任何算法,我认为使用所有正值编码所有积极行为都没有任何问题。这是简单的情况。“1”本质上不是负面评价,不是。

不过,您关于相似性指标的观点与值无关。听起来您的数据非常稀疏。这是一个单独的问题。

其余的我不确定我是否理解。您使用的值取决于您的域。我会让它们与它们的“强度”或价值成正比。例如,如果视频观看的频率是视频分享的 20 倍,那么您可能会将视频分享的价值作为操作的价值比点击高 20 倍。这是一个不错的起点。

于 2013-06-25T12:34:21.537 回答
1

你应该试试:

  • 隐式偏好ParallelALSFactorizationJob(基于hadoop)
  • 或者隐含偏好ALSWRFactorizerSVDRecommender不基于 hadoop)(我认为这种非 hadoop 隐含偏好变体仅在 mahout-0.8 中可用),

在这些中,您分配给用户对某个项目的偏好的数字表明该关联的强度,而不是评级,因此它们都是积极的关联,只是具有不同的强度。通过这种方式,您可以对不同的交互进行建模,例如查看、编辑、点击等。尽管分配给每个交互的强度会根据您的特定业务而有所不同。

此演示文稿(链接)应该让您大致了解正在发生的事情。此外,本文(链接)描述了因子分解器的隐式反馈变体(它们是相同的,一个只是为了使用 hadoop 进行扩展)

于 2013-06-25T12:37:46.033 回答