Questions tagged «recommender-system»

推荐引擎尝试预测用户将喜欢多少商品(电影,书籍,歌曲等)并做出推荐。在线供应商经常使用它们来建议购买新产品。

5
如何在协同过滤中使用SVD?
我对在协作过滤中使用SVD感到有些困惑。假设我有一个社交图,并且从边缘构建了一个邻接矩阵,然后使用SVD(让我们忘记正则化,学习率,稀疏性优化等),如何使用此SVD来改进我的建议? 假设我的社交图对应于instagram,而我的任务是仅基于社交图来推荐服务中的用户。我首先要建立一个邻接矩阵,取SVD,,选择前特征值,然后呢?AA\mathbf A (m×m)(m×m)(m\times m)A=UsVA=UsV\mathbf A = \mathbf{U s V}kkk 我大概会创建一组新的矩阵: 那么该怎么办?UnewsnewVnew∼m×k∼k×k∼k×mUnew∼m×ksnew∼k×kVnew∼k×m\begin{align} \mathbf U_{new} &\sim m\times k \\ \mathbf s_{new} &\sim k\times k \\ \mathbf V_{new} &\sim k\times m \end{align} 我在网上浏览过,大多数链接都专注于计算SVD,但是没有人告诉您如何使用它。所以我该怎么做?

3
R:尽管数据集中没有NaN,随机森林仍在“外部函数调用”错误中抛出NaN / Inf [关闭]
我正在使用插入符号在数据集上运行交叉验证的随机森林。Y变量是一个因素。我的数据集中没有NaN,Inf或NA。但是,当运行随机森林时,我得到 Error in randomForest.default(m, y, ...) : NA/NaN/Inf in foreign function call (arg 1) In addition: There were 28 warnings (use warnings() to see them) Warning messages: 1: In data.matrix(x) : NAs introduced by coercion 2: In data.matrix(x) : NAs introduced by coercion 3: In data.matrix(x) : NAs introduced by …

3
将SVD应用于协作过滤问题时会发生什么?两者有什么区别?
在协作过滤中,我们没有填写值。假设用户没有看电影,那么我们必须在其中放一个“ na”。 如果要使用此矩阵的SVD,则必须在其中放入一些数字-假设为0。缩小的尺寸空间)。但预测的偏好本身-用户对某项商品的偏好将为零。(因为这就是我们在未知列上输入的内容)。 因此,我陷入了协作过滤与SVD问题的困扰。它们似乎几乎相同,但不完全相同。 它们之间有什么区别?当我将SVD应用于协作过滤问题时会发生什么?我做到了,结果在寻找附近用户方面似乎可以接受,这很好,但是如何?

4
潜在功能的含义?
我试图理解推荐系统的矩阵分解模型,并且我总是读“潜在特征”,但这意味着什么?我知道功能对训练数据集意味着什么,但我无法理解潜在功能的概念。我所能找到的有关该主题的每篇论文都太浅了。 编辑: 如果您至少可以指出一些指导我想法的论文。

3
动态推荐系统
一个推荐系统将测量不同用户的收视率和产量的建议关于这可能是他感兴趣的项目给定用户之间的相关性。 但是,口味会随着时间而变化,因此旧评分可能无法反映当前的偏好,反之亦然。您可能曾经将“优秀”放到一本书中,现在将其评为“不太讨厌”,依此类推。而且,利益本身也会发生变化。 推荐系统如何在不断变化的环境中工作? 一种选择是切断“旧”等级,假设您正确定义了“旧”,它可能就可以正常工作(您甚至可以说等级永不过期并假装问题不存在)。但这不是最好的选择:当然,口味会演变,这是正常的生活流程,并且没有理由为什么我们不能使用曾经正确的过去评级的额外知识。 另一种选择是以某种方式容纳这些额外的知识。因此,我们不仅可以为您当前的兴趣找到一个“即时匹配”,还可以为您建议您接下来可能喜欢的事情(而不是现在可能喜欢的事情)。 我不确定我是否解释得足够好。基本上,我赞成第二种方法,并且谈论的是一种推荐系统,该系统将测量口味轨迹和产量建议之间的相关性,从而满足个人需求。好吧,我们称之为个人成长-因为它们将来自那些“口味轨迹”(而不仅仅是“口味快照”)与您的相似。 现在的问题是:我想知道是否已经存在类似于“选项2”的东西,如果存在,我想知道它是如何工作的。如果不存在,欢迎您讨论它的工作方式!:)

4
有什么统计方法可以推荐像Netflix上的电影?
我正在寻找一种动态模型来向用户推荐电影。每当用户观看电影或对电影进行评级时,建议均应更新。为了简单起见,我考虑考虑两个因素: 用户过去其他电影的评分 用户观看某些过去的电影的时间 如何建立这样的模型?学术文献对此有何建议? 我是该领域的新手,我猜想线性再模型可以提供良好的结果,而不希望花一些复杂的方法来避免在参数估计中施加不必要的不​​确定性。但是,也许已经有了实践中常用的确定方法?


1
协作过滤的最新技术
我正在研究一个用于协同过滤(CF)的项目,即完成部分观察到的矩阵或更一般的张量。我是该领域的新手,最终,对于这个项目,我不得不将我们的方法与当今其他著名的方法进行比较,将提议的方法与它们进行比较,即CF中的最新技术。 我的搜索显示了以下方法。确实,我是通过查看其中的一些论文及其参考文献,或者在进行比较时查看实验部分来发现它们的。我很高兴知道新提出的方法并与SoTA进行比较,那么以下哪个是一个不错的选择?如果没有他们,我很高兴认识一个好的代表。 基于矩阵分解: 加权低秩近似(ICML 2003) 为协作过滤建模用户评级配置文件(NIPS 2003) 协同过滤的多重乘数模型(ICML 2004) 用于协作预测的快速最大保证金矩阵分解(ICML 2005) 概率矩阵分解(NIPS 2007) 贝叶斯概率矩阵分解(ICML 2008) 基于回归的潜在因子模型(KDD 2009) 具有高斯过程的非线性矩阵分解(ICML 2009) 动态Poission分解(ACM会议推荐系统大会2015) 基于张量分解 使用多维方法将上下文信息整合到推荐系统中(ACM信息系统交易(TOIS)2005) 贝叶斯概率张量因式分解(SIAM Data Mining 2010) 通过黎曼优化实现低秩张量完成(BIT数值数学54.2(2014))

2
将部分排名列表转换为全局排名
我正在研究以下问题。我有一堆用户和N本书。每个用户都会为他阅读的所有图书(可能是N本书的子集)创建一个有序的排名,例如,Book 1> Book 40> Book 25。 现在,我想将这些个人用户排名转换为所有书籍的单一排序排名。 是否有任何好的或标准的方法可以尝试?到目前为止,我正在考虑将Bradley-Terry模型应用于成对比较,但是我想知道是否还有其他功能。


3
缺少值的矩阵的SVD
假设我具有Netflix风格的推荐矩阵,并且我想建立一个模型来预测给定用户的未来电影收视率。使用Simon Funk的方法,可以使用随机梯度下降法来最小化完整矩阵与逐项*用户对用户矩阵之间的Frobenius范数,并结合L2正则化项。 在实践中,人们如何处理推荐矩阵中的缺失值,这是整个计算的重点?通过阅读Simon的博客文章,我的猜测是,他仅使用非缺失项(由(例如)推荐矩阵的1%组成)来构建模型(可以明智地选择超参数和正则化)来预测其他99%的矩阵? 实际上,您真的跳过所有这些值吗?还是在进行随机梯度下降之前尽可能多地推断?处理缺失值的一些标准最佳实践是什么?

1
PROC Mixed和LME / LMER在R自由度上的区别
注意:这个问题是一个转贴,因为我的上一个问题出于法律原因不得不删除。 在比较SAS的PROC MIXED与R中lme的nlme软件包的功能时,我偶然发现了一些相当混乱的差异。更具体地说,不同测试的自由度在PROC MIXED和之间有所不同lme,我想知道为什么。 从以下数据集(以下给出的R代码)开始: ind:指示进行测量的个人的因子 fac:进行测量的器官 trt:表示治疗的因素 y:一些连续响应变量 这个想法是建立以下简单模型: y ~ trt + (ind):ind作为随机因子 y ~ trt + (fac(ind)):fac嵌套在ind作为随机因子 需要注意的是最后一个模型应引起奇异性,因为只有1的值y对每一个组合ind和fac。 第一模型 在SAS中,我建立以下模型: PROC MIXED data=Data; CLASS ind fac trt; MODEL y = trt /s; RANDOM ind /s; run; 根据教程,R中使用的相同模型nlme应为: > require(nlme) > options(contrasts=c(factor="contr.SAS",ordered="contr.poly")) > m2<-lme(y~trt,random=~1|ind,data=Data) 两种模型对系数及其SE均给出相同的估计,但是在对F的影响进行F检验时trt,它们使用的自由度不同: SAS : Type …
12 r  mixed-model  sas  degrees-of-freedom  pdf  unbiased-estimator  distance-functions  functional-data-analysis  hellinger  time-series  outliers  c++  relative-risk  absolute-risk  rare-events  regression  t-test  multiple-regression  survival  teaching  multiple-regression  regression  self-study  t-distribution  machine-learning  recommender-system  self-study  binomial  standard-deviation  data-visualization  r  predictive-models  pearson-r  spearman-rho  r  regression  modeling  r  categorical-data  data-visualization  ggplot2  many-categories  machine-learning  cross-validation  weka  microarray  variance  sampling  monte-carlo  regression  cross-validation  model-selection  feature-selection  elastic-net  distance-functions  information-theory  r  regression  mixed-model  random-effects-model  fixed-effects-model  dataset  data-mining 

1
为什么非负性对于协作过滤/推荐系统很重要?
在我所看到的所有现代推荐器系统中,都依赖于矩阵分解,在用户电影矩阵上执行非负矩阵分解。我能理解为什么非负性对于可解释性和/或想要稀疏因子很重要。但是,如果您只关心预测性能,例如在netflix奖金竞赛中,为什么要施加非负性限制?与在因数分解中也允许负值相比,这似乎更加糟糕。 本文是在协同过滤中使用非负矩阵分解的一个被高度引用的示例。

3
如何创建同时集成了协作过滤和内容功能的推荐系统?
我正在创建一个推荐系统,并希望合并“相似”用户的等级和商品功能。输出是预测的等级[0-1]。我正在考虑使用神经网络(首先)。 因此,输入是项目特征和每个用户的评分的组合。对于项目A和用户1,可以在组合数据A1上训练系统。这将是一个培训示例。 如果用户1也对电影B评分,该怎么办?那么,数据B1也会成为训练示例吗?以这种方式用用户1的特征重复训练是否有问题? 您对解决问题的更好方法有何建议?

2
通过具有Logistic损失函数的矩阵分解进行协同过滤
考虑协作过滤问题。我们有#users * #items个大小的矩阵如果用户i喜欢项目j,则如果用户i不喜欢项目j,则,并且如果没有关于(i,j)对的数据。我们希望为将来的用户项对预测。中号中号M中号我,Ĵ= 1中号一世,Ĵ=1个M_{i,j} = 1中号我,Ĵ= 0中号一世,Ĵ=0M_{i,j} = 0中号我,Ĵ= ?中号一世,Ĵ=?M_{i,j}=?中号我,Ĵ中号一世,ĴM_{i,j} 标准协作过滤方法是将M表示为2个矩阵乘积,从而ü× Vü×VU \times V| | 中号- U× V||2||中号-ü×V||2||M - U \times V||_2 是最小的(例如,最小化已知元素的均方误差 中号中号M)。 对我来说,逻辑损失函数似乎更合适,为什么所有算法都使用MSE?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.