Mahout推荐系统:对于GenericUserBasedRecommender,适合的相对偏好值是多少?

在Mahout中,我正在设置一个GenericUserBasedRecommender,目前设置相当简单,采用的是典型配置。

在为一个项目生成“偏好”值时,我们有以下5个数据点:

积极兴趣

  • 用户对项目进行了转换(表示兴趣的最高信号)
  • 普通喜欢(用户表达了兴趣,例如点赞按钮)
  • 间接表达兴趣(点击、光标移动、测量“眼球”)

消极兴趣

  • 漠不关心(用户在其他项目上活跃时忽略的项目,模糊地表达了不感兴趣)
  • 主动不喜欢(点踩、从我的视图中移除项目等)

我应该在什么范围内表达这些不同的属性,我们用1到100的范围来讨论?

  • 我应该将‘主动不喜欢’和‘漠不关心’保持在接近的位置,例如分别在1和5,而所有的喜欢聚集在90到100的范围内吗?
  • ‘漠不关心’和‘间接表达兴趣’是否应该更靠近中间?例如,‘漠不关心’在20到35的范围内,‘间接喜欢’在60到70的范围内?
  • ‘用户转换’是否应该打破这个范围,并且比其他值高出很多?例如,‘用户转换’@ 100,‘较小的喜欢’@ ~65,‘不喜欢’聚集在1到10的范围内?
  • 在1到100的范围内,50是否有效地等于“无”,或相当于没有数据点?

我知道最终答案在于试错和我们数据的意义,但就算法而言,我试图理解在什么点上我需要在兴趣和不感兴趣之间倾斜天平,使算法正常运行。


回答:

实际范围并不重要,对于这个实现来说。1到100可以,0到1也可以,等等。这里真正重要的是相对值。

这些值是通过简单的(线性)加权平均来估计的。因此,响应应该是“线性”的。它应该符合一种直觉,即如果动作X的得分是动作Y的2倍,那么X在现实生活中应该表示两倍的兴趣。

一个不错的起点是简单地根据它们的频率来调整它们。如果点击到转换的比率是2%,你可以让一次点击值相当于转换的2%。

我会忽略你提出的“漠不关心”信号。它很可能太嘈杂而无法使用。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注