algorithm - 如何管理多个积极的隐性反馈?

标签 algorithm machine-learning recommendation-engine collaborative-filtering

当没有评级时,一种常见的情况是使用隐式反馈(购买的商品、综合浏览量、点击量...)来提出建议。我正在使用基于模型的方法,我想知道如何处理多个相同的反馈。

例如,假设消费者不止一次购买商品。我是否必须将反馈数量(综合浏览量、购买的商品等)视为评级或计算自定义值?

最佳答案

为了对隐式反馈建模,我们通常有一个映射过程来将隐式用户反馈映射到显式评分。我想在大多数领域中,用户对同一项目的重复操作表明用户对该项目的偏好正在增加。 如果领域是音乐或视频推荐,这当然是正确的。在购物网站中,这种行为可能表明该元素是定期消耗的,例如尿布或打印机墨水。

据我所知,对这种多重隐式反馈建模的一种方法是创建一个数字评分映射函数。当隐式反馈的次数(k)增加时,评级的映射值应该增加。在 k = 1 时,您的正面反馈评级最低,例如 0.6;当k增加时,它趋近于1。当然,您不需要映射到[0,1];你可以有整数评分,0,1,2,3,4,5。

为了给你一个映射的具体例子,这是他们在 music recommendation 中所做的。领域。简而言之,他们使用每个用户的项目统计信息来定义映射函数。

We assume that the more times the user has listened to an artist the more the user likes that particular artist. Note that user’s listening habits usually present a power law distribution, meaning that a few artists have lots of plays in the users profile, while the rest of the artists have significantly less play counts. Therefore, we compute the complementary cumulative distribution of artist plays in the users’ profile. Artists located in the top 80-100% of the distribution are assigned a score of 5, while artists in the 60-80% range assign a score of 4.

我在文献中看到的另一种方法是在二元评级变量之外创建另一个变量。他们称之为置信水平。参见 here了解详情。

关于algorithm - 如何管理多个积极的隐性反馈?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25122798/

相关文章:

c++ - 获取UTF-8编码的std::string的实际长度?

python - 如何安装 Sugyan-Tensorflow-MNIST?

ruby-on-rails - Rails 中的协同过滤

python - 为什么在训练 Keras 模型时将损失乘以标量会得到不同的结果?

machine-learning - 没有评分的推荐引擎

php - 阿普塔纳:哪个更好?单机版还是 Eclipse 插件版?

c# - 查找数组中项目的所有组合的最佳方法是什么?

php - 修改Held-Karp TSP算法,不需要回原点

algorithm - SQL查询的校验和算法?

machine-learning - GMM 对新数据的适应