问题标签 [recommender-systems]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
275 浏览

scala - Spark ALS 算法给出了太多的零因子

我们在 spark 2.2.1 中使用 ALS 来计算用户嵌入和项目嵌入。我们的实验样本包含 120 亿个实例,点击的实例标记为正例,否则标记为负例。

当使用用户嵌入和项目嵌入的乘积评估 AUC 时,我们发现 AUC 指标在相同的训练数据和相同的参数上并不稳定。在检查嵌入后,我们发现即使用户点击了一些异常的项目,ALS 也可能给出零因子。

有什么想法吗?谢谢你的帮助。这是我们的代码

0 投票
1 回答
58 浏览

r - 余弦相似度:函数无法计算矩阵

所以,我最近在 Rstudio 中使用 Collaborative Filtering 构建了一个音乐推荐系统。我对余弦相似度函数有一些问题,系统在我要计算的矩阵上说“下标脱离键”。

我使用从该网站获得参考的余弦相似度:https ://bgstieber.github.io/post/recommending-songs-using-cosine-similarity-in-r/

我试图修复脚本,但显然输出仍然无法正常工作。

我希望当我使用这个脚本时:

输出将是 5 首歌曲的数据框。

0 投票
2 回答
908 浏览

recommendation-engine - 什么时候使用用户-用户协同过滤,什么时候使用Item-Item协同过滤?

我很困惑何时使用用户-用户协同过滤以及何时使用项目-项目协同过滤?

请帮忙!!

0 投票
0 回答
307 浏览

apache-spark - 训练有素的 Spark ALS 模型预测的评分最高的推荐项目不是协作项目

我使用了一个明确的评分数据集,它为 52K 用户和 100k 项目提供了大约 389K 评分。

基本统计:每个项目的平均评分数:3.89 每个用户的平均评分数:7.45 评分最低的用户:1 评分最低的项目:2

使用的 ALS 模型具有以下设置:

在验证中,我将 80% 用于训练,20% 用于测试。验证集上的 RMSE 为:0.32(非常低)

在生产中,我使用整个数据集来训练 ALS 模型(保持与验证相同的配置)

为了获得每个用户的前 100 个用户项目推荐,我使用了以下说明:

然而,大多数时候,最受推荐的商品并不是来自任何协作用户评分的商品。

据我所知,top user-item 推荐的项目应该来自任何协作用户评分的项目。

没有任何合作的推荐项目是没有意义的。

0 投票
1 回答
177 浏览

pytorch - PyTorch 损失函数引用模型参数

对于作业,我需要创建一个使用提供的损失函数的电影推荐系统:

这意味着,两个电影嵌入之间的点积 Vi 和 Vj 应该非常接近 Xi,j。其中 Xi,j 是同时喜欢电影 i 和电影 j 的用户的总和。指示函数省略了 i == j 的条目(设置为 0。)

分配可交付成果是来自隐藏层的权重矩阵。它的尺寸应该是 9724x300,其中有 9724 个唯一的电影 ID,以及 300 个神经元。300 是任意选择,受谷歌 word2vec 中使用 300 个神经元的影响。

是)我有的:

  • source_data:行是用户,列是电影。给定单元格中的 1 表示相应的用户喜欢相应的电影(不喜欢 = 0。)
  • preprocessed_data:source_data 自身转置的矩阵乘法。(即每个单元格都是喜欢电影 i 和 j 的用户的总和。对角线条目对我没有用,因为它们只是喜欢一部电影的用户的总和。)

我被困在哪里:

  • 不知道如何根据 i 和 j 定义我自己的损失函数,它可以将 preprocessed_data 中喜欢电影 i 和 j 的用户的总和与隐藏层权重张量中的行 i 和 j 进行比较。
  • 不确定如何将我的数据组织成 X 和 y 张量,以使数据适合损失函数。
0 投票
1 回答
41 浏览

python - Pearson 的相关性总是给出零相关性

我在玩 Toby Segaram 的推荐代码。在这里找到,您可以尝试一下。

我注意到他的 Pearson 相关代码有些奇怪,我不确定它是 bug 还是 pearson 的自然部分。拿他的这行代码:

并将其更改为:

(即,Toby 的所有评级都是相同的。)突然之间,每一个相关性都为零,并且您没有得到任何结果。为什么会这样?

我还在玩它,所以如果没有其他人可以,我最终可能会回答我自己的问题。

更新:是不是因为 pearson 适合一条线,在这种情况下,Toby 导致这条线对每个人都是垂直的?如何解决这个问题?您是否在每个评分上都加了一点噪音?

0 投票
1 回答
51 浏览

python - 对于基于属性的推荐系统,我应该使用哪种机器学习方法?

我试图根据性别、年龄和情绪等标准来预测我能推荐给一个人的最好的电影是什么。我有一个像这样的向量(1,0,0...1)。

我的第一种方法是尝试根据这个向量预测一个人会给一部电影打几分,然后根据这些评分进行排名。

因此,在数据集中,人由向量 (1,0,...1) 定义,电影由向量 (1,0,...1) 和人对电影的评分定义。

你会推荐什么 ?

谢谢 !

0 投票
1 回答
1262 浏览

python - TypeError:Neo4j 不支持 int64 类型的 PackStream 参数

我正在使用 neo4j 图形数据库编写一个简单的推荐系统。我使用 py2neo lib,这是我的程序:

然后,出现错误:

它似乎发生在这一行: tx.run(statement2, {"A": row.loc['id'], "B": row.loc['title'], "C": row.loc['IMDb url'], "D": g})

任何人都可以帮我解决它。谢谢!

0 投票
1 回答
249 浏览

r - 在 R 中计算 RMSE 时遇到问题

我目前正在从事基于 Netflix 数据 MovieLens 的数据科学项目。

我已经像这样拆分了测试集和训练集:

我必须根据此函数计算预测评级的 RMSE:

首先,我使用最简单的模型执行此操作,如下所示:

接下来,我需要使用一个对电影效果进行惩罚的模型:

预测评分的第一行如下所示:

我的问题出现在这里:

它只是说“NA”,而不是给我第二个模型的 RMSE 值,但我无法理解我的代码有什么问题或为什么 RMSE 函数不起作用。我怀疑它与测试/训练集的结构有关。如果我按照上述完全相同的步骤进行操作,则代码可以工作,但相反,我从进一步拆分为测试和训练(称为 edx)之前获取数据集,在该数据集上进行训练并直接在验证集上使用它。但是,根据项目的说明,这是不允许的。

关于什么可能是错的任何建议?

0 投票
1 回答
148 浏览

python - 创建数据透视表并查找具有多种类型的书籍之间的相关性

我有一张桌子,就像

我想创建一个数据透视表,然后根据流派找到相互关联的书籍。我已经只使用评级来完成这项工作,但这相对简单,因为每本书只有一个评级。由于每本书都有多种类型,是否有创建此数据透视表的好方法?

其最终目的是创建一个简单的推荐系统。