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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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