《指南奇异值分解协同过滤.docx》由会员分享,可在线阅读,更多相关《指南奇异值分解协同过滤.docx(14页珍藏版)》请在三一办公上搜索。
1、奇异值分解协同过滤指南Chih-Chao Ma计算机科学,国立台湾大学,台北,台湾系摘要作为电子商务市场爆炸性的增长,它是重要的,以提供用于各种消费者定制的建议。协同过 滤是模型和分析的偏好的客户,并给出适当的建议的一项重要技术。奇异值分解SVD)是 用于协同作业共同过滤流行的算法之一。然而,直接采用传统的奇异值分解算法协同过滤可 能会导致性能不佳。在这份报告中,我们讨论了初学者可能会遇到的问题和当前有效的SVD 变式协同过滤。1介绍协同过滤是通过大量用户的口味给出信息的集合预测用户的偏好和利益的技术。它的基本假 设是谁同意在过去人们也会同意,在未来。协同过滤可以用于一个推荐系统可以自动提示用
2、 户他/她的优选产品。1.1问题定义假设一个数据库收集的m个对象作为数字形式的分数N个用户的喜好。例如,用户可以得 分电影,他或她已经观看由1评级-5颗星。通常情况下,用户不进球数据库中的所有对象。 此外,一些用户可能会进球多的对象,但其他人只是入球数。设VER N * M是数据库中收集的分数的矩阵,并N * M我仁0,1是其指示灯,这样我 IJ=1,如果对象j被拿下由用户I和0,如果得分缺失。在大多数情况下,V是稀疏和不平 衡,使得分数为每个用户或对象的数量不相等的大方差。单位为V工作中存在的成绩作为 协同过滤的训练数据算法,以及在目标是预测在数据库中缺少的分数。让AE读nXm为一 个稀疏矩
3、阵,包括所有的缺失票或部分作为其非零项。的协同过滤算法的目的是预测值A.中协同过滤的性能可以由误差测量的预测值和地面真值之间。一个常见的和高效率的措施是均 方根误差(RMSE)。考虑预测矩阵N * M PE读nXm和地面真相的答案矩阵AER,N * M。令jE0,1是A的均方根误差预测P和答案A之间的指示器 被定义为RMSE(F, A)=EXi一 Rj),此外误差测量,形成和分布的函数矩阵的可能也影响了算法的评估。例如,如果分数在A 的随机从所有现有的成绩采样在数据库中,一个谁的用户提供了更多的分数,在数据库中往 往有更多的分数在A。测试数据生成的一个很好的例子是Netflix的奖贝内特和兰宁
4、,2007,这是一个盛大的竞 赛协同过滤的人们如何喜欢或不喜欢的电影。用于Netflix的奖该数据库包含了超过100 百万分数480, 189用户和17,770电影。Netflix的测试数据奖,看不见的竞争者, 从每个的最新分数选取用户。更确切地说,他们选择所作的最新比分固定数量的每一个用户, 而不管分数由用户给出的总数。然后,这些最新分数的集合被随机分为三组,命名为探头, 测验和测试集。探针组的地面真值的分数被给予竞争对手以及在数据库中的其他较旧的分 数。竞争对手然后要求预测测验和测试集的分数。通常,竞争者使用训练数据的一部分来测 试他们的算法在脱机模式。验证数据集从整个训练数据划分是必要的
5、。产生这些集,以便验证和测试数据有一个西米-拉尔分布。由于测试数据是从最新的得分 在所选数据库,本次评选从前期预测未来成绩的目标相匹配vious的。验证和测试数据之间 的相似性确保了一个算法的性能在验证和测试一致。对于每一个用户的,未知的分数来进行 预测的数目大致相同。因此,预测谁在过去只给了数十种用户的错误倾向是由于缺少信息的 信息量大。这种情况是具有挑战性的协同过滤算法。1.2相关工作几种传统的方法可用于协同过滤,和它们出现在Netflix的奖的竞争。我们简要介绍这些方 法以及他们的优势和劣势。一些方法的详细信息显示在后面的章节。最直观的方式来预测由用户给定的对象的得分是请问谁取得了该对象
6、的其他用户。而不是仅 仅采用平均值所有用户之间得分的对象,我们认为只有那些用户相似目标用户。这种方法被 称为K最近邻,简称为KNN。该KNN算法可以直接应用到分数Paterek,2007,或以另一 种算法的残差作为后处理方法贝尔等人,2007A。KNN方法的关键点是相似的定义。平时 的相似度是由用户和对象的特征值来计算其表示它们的特性在数值,但这些功能是很难找 到。另一种类型的方法的直接查找每个用户的特征值和对象,并且通过使用这些预测函数预测未 知的分数功能。通常这样的算法涉及到一个矩阵分解的浓度结构为用户和对象的特征的矩阵 元。这些种算法包括非负矩阵分解和奇异值分解,其中有众多的变体和也起着
7、重要的作用在 Netflix的奖在今年的进步一等奖2007贝尔等人,2007年b。这些类型的方法假定的得分值 依赖于一个预定的预测功能。除了上述广泛使用的算法,也有其他这给在Netflix的奖的竞争性能好方法。其中一人使用 一种称为限制玻尔兹曼机Salakhutdi模型月等人,2007,这已被证明在Netflix的奖表现良 好,无论是通过自身或在与其他算法的线性组合。另一种方法是回归,它通过采取分数在预 测未知的分数训练数据的观察。另一方面,如果一个人想结合几种算法更好的精度的结果, 回归也是有用的,发现线性组合的权重。1.3总结在这份报告中,我们专注于奇异值分解,这是最流行的算法Netfli
8、x的奖。第2显示了奇异 值分解的细节算法,包括用于信息检索的常规方法和变体更适用于协同过滤。我们发现,选 择的优化方法是很重要的SVD算法来提供良好的性能。在第3节我们给出了算法的实验结 果。该给出结论在第4节。2奇异值分解奇异值分解,简写为奇异值分解,是因式分解之一协同过滤算法Zhang等,2005。这种类 型的算法查找用户和对象的特点,并基于这些预测因素。一些分解算法对每个单独的附加限 制特征值,或多个用户的特征矢量之间的,但奇异值分解不设限制,更容易实现。2.1提法假设的V e R n Xm是m个对象和N个用户的评分矩阵,IE N * M 0,1是它的指标。 SVD的算法找到两个矩阵UE
9、R FXn的和MER FXm的用户和对象的特征矩阵。即,每 个用户或对象具有一个f维特征向量和f被称为奇异值分解的维数。预测函数p被用来预 测V中的值。一个分数的值V ij是估计P (U I,M j),其中U I和M j表示的特征向量 用户i和对象物J,分别。一旦U和M的发现,丢失的分数在V均可由预测函数来预测。U和M的优化是通过最小平方的总和进行现有的成绩和他们的预测值之间的误差:E =工 %(*好-P(%Mj) 成 5Z 1阳+ 瑚工 IIMrll ? 1=1 J = 1i=lJ = 1其中区和公里的正规化系数,以防止过度拟合。最常用的预测函数是特征向量的点积。也就是说,P(U I,M十)
10、=U I T M。U和M的 优化从而成为一个矩阵分解问题,其中 VUTM。但在大多数应用中,分数V中被限制在 一个有限区间A, B,其中a和b是最小和在数据域定义的最大分值。例如,如果用户评价 对象为1-5颗星,那么分数界于区间1,5。一种方法是将剪辑的点积的值。例如,我们可 以将绑定I TM法官在间隔U的值0,B - A和预测函数变为加有界点积。因此,预测函数 为:qif UiTMj 饥a UiTMj if0 UiTMj b-a.当使用预测函数(3)中,目标函数和它的负梯度有以下几种形式: n mE =+3E _dUi =dE _珂=配叫,屿)2(4)f=l J =1i hj m夺牛-ii峋
11、已i = lJ = 1m勇(氐幻* i = L(5)j=in云珞灿-p.-(6)i=i人们可以通过梯度下降比执行U和M的优化:算法1 (奇异值分解的批学习)选择学习率p,正规化系数区公里。1,设置矩阵U,M的初始值。2,重复(一)计算梯度V U和V米X(5)和(6)。(二)集合 Uu - p V U,MM - p V 米直到验证RMSE开始增加。可调节参数是学习速率p和正规化系数区和千米为用户和对象的特点,分别。学习率会影响 学习时间和过大的值可能会导致分歧。在一般情况下,一个较小的学习速率提供更好的性能, 但学习时间也更长。是影响性能的另一个设定为特征的起点值。一种方式是在特定范围内使用随机
12、值,但不稳定 如果这些值是太过随意,可能会出现性能。在算法1中,起点可以是现有的所有分数V平 均:了 “ + 戏()for each 亳(7)其中a为下界的分数,f是SVD算法的维数,和N (R)是一个随机噪声与在-R, R的均匀分布。根据预测函数(3),它很可能预测到所有的值到全球平均水平V 一些噪声的算法的起点。如果没有随机噪声(7),用户或物体的特征,因为它们总是有将是相同的在优化过程中相同的梯度。R的值 小通常是不够的。一批学习是SVD的标准方法。然而,这是不利于一个大型的,但稀疏的 训练矩阵V,这是很常见的合作过滤。梯度的数值有这样的情况下,大的方差,和一个小的 学习率是必需的,以防
13、止发散。在2.2节中,我们显示出一些更适合变种协同过滤。2.2 SVD的变种我们已经提到的那批学习可能无法正常使用。相反,人们可以使用增量学习,其中仅修改U 中和M的一些特征值扫描后的训练数据的一部分。例如,如果一个用户i被视为在同一时 间,与此相关的用户的变量是:(1)U I:用户i的特征向量,(2)每个M j表示使用我IJ=1:被砍下我的用户对象的特征向量。如果考虑仅与用户I而言,目标函数变为:1 mrL m=?如峪(玲-p ,Mj),+ 瑚 mil2 +52(ii Mill2) j=与负梯度dEt dUidEim昭)-知队,j=i如(Kj- Mg) - 5汀网)(10)勇一场虬-,j =
14、 1,爬.要注意的是,如果我IJ= 0,则M j的梯度为0。的所以变量反对没有进球用户我不更新。这种增量学习方法是从一批学习不同,作为E项的总和比我所有的用户不会导致(4)给出 的目标函数E:n n m= 习工顼皿-浏齐:叫尸noi = li=l J =1I nf m tii=l;=1i=l每个对象的特征向量M j的一个额外的正规化系数I =1 I IJ,这等于为对象物J现有分数的 数量。因此,一个对象,更多的分数在这种增量学习方法更大的正规化系数。增量学习的一个极端的例子是看每个单节得分后更新功能。也就是说,我们考虑下面的目标 函数和负梯度每个V IJ这是不缺:=分(玲-P(U打网)+奇1|
15、心+苛|1捋|伫 (12)=- 心蚂)昭-虹(13)=(14)我们称这种类型的学习,完全增量学习的,而那个在(8),它参考多个分数在一时间成为不 完整的增量学习。E项的IJ超过现有的所有选票的总和n m n mmm)(15)i=l J=1i=l j=l2 n m m n+耙网)+耙5伽圳)f=i ,=ij=if=】在这种情况下,每个用户和对象具有正系数,它是亲正比与该用户或物体存在的分数的数量。 下面的算法描述U和M的优化与增量精神的学习。算法2进行不完全的增量学习,并 算法3不完整的增量学习,其中更新功能VAL-检查每个单节得分后的UE。U和的M在这 些的出发点算法还可以(7)。算法2(奇异
16、值分解的不完全增量学习)选择学习率p,正规化系数区公里。1,设置矩阵U,M的初始值。2,重复(a) For i = 1 to nI. Compute gradients V U i by (9).li. Compute gradients V M j by (10) for j = 1 to m.lii. Set U i U i - p V U i .Iv. Set M j M j p V M j for j = 1 to m.直到验证RMSE开始增加。算法3 (奇异值分解的完全增量学习)选择学习率p,正规化系数区公里。1,设置矩阵U,M的初始值。2,重复(a)对于每个现有的得分V IJ在训练
17、数据i. Compute gradients V U i and V M j by (13) and (14).ii. Set U i U i - p V U i , M j M j - p V M j .直到验证RMSE开始增加。算法2和3的原因不同的优化效果和性能,目标函数(11)和(15)的总和是不同的,当正规化被使用。如果修改目标函数(8)至m丘=(16)项=i. m| m+ y Aj (|F)+ 瑚工与(Wj|f L j=ij=i然后目标函数的总和将是相同的。在第3节中,我们将使用这种方法不完整和完整的增量之 间的比较学习的实验。而是采用增量学习的,我们还可以增加学习速度一批学习通过
18、增加梯度下降过程中的动量A 的。即,算法1被修改为下面的算法:算法4 (SVD批次的学习与动量)选择学习率p,正规化系数区公里。1, 设置矩阵U,M的初始值。2, 设置矩阵的运动乙U0 FXN, M0 FXm的。3, 重复(a) Set AU A AU, AM A AM .(b) Compute gradients V U and V M by (5) and (6).(c) Set AU AU - p V U , AM AM - p V M(d) Set U U + AU , M M + AM .直到验证RMSE开始增加。一批学习通常是从发散使用同样的学习时受到率增量学习,但学习速度的一个较
19、小的值也使 得算法不可行的时间。动量词可以积累布展变量目,使下有小的学习率优化速度更快。在小 规模的数据集,一批学习可以超越增量学习加入动量项。然而,一批学习不能作出合理 在大规模数据集的演出甚至与气势。一个可以执行线性搜索,以找到更好的学习速率梯度脱 气味。这种方法需要更少的迭代,但其计算时间是再由于线路搜索的开销。2.3进一步改进有了适当的优化设置,奇异值分解算法能够给出很好的性能。然而,一些变种必须做出更准 确的潜力预测。一个简单的一种是增加每用户偏置。读nX1和每个对象偏置8 上的预 测功能Paterek,2007:A/y, Qi J = a + l/iT,(17)其中,a i是用户的
20、偏置i和8 j是目标j的偏置。的偏差被更新像的特征值。对于“完全增量精神的学习,“使用单一的分数V IJ在同一时间提供了以下负偏置a i和8 J的梯度:1_一,胃=- P(。队 A%-:皿讷)(18)+引*叫r+单(球+的 右E右=(Vij 1 Afy,缶),(19)=(峪/ 西)-g(20)其中KB,偏见的正规化系数,类似于公里,区。的当然,偏压的学习速率可以是彼此不同 的。的奇异值分解算法的另一个变种,称为受约束的奇异值分解,增加了额外的限制每个用户的特征向量U ISalakhutdinov和Mnih,2008。在该算法中,用户特征矩阵U ER FXn被替换为一个矩阵YER FXn个大小相
21、同的,并且对象的约束矩阵WER FXm 的转变的用户特征值:二匕+七2k=i 4忘(21)其中,W k是矩阵W的第k列。换句话说,P M的特征向量K =1 I IK W K U I是用户依赖 的特征向量Y I加一个平面偏移P,这是在平均得分由用户我的对象对象约束特征向量。每个W K有助于用户功能U I如果用 户I积分对象K表。在此设定下,预测函数变为:PS叫=。+(匕+等穿 &=1 如)并且Y和W的值也可以通过用梯度下降来更新使用正规化系数k个Y和k瓦特然而,优化 了较高的时间复杂度为完整的增量学习。我们进一步给出讨论并提出了可行的解决方案,称 为复合SVD,在马,2008。化合物SVD算法相
22、结合的偏见和约束的情况下,并且它提供了比SVD算法显著更好的性能, 完成增量学习。(23)3实验我们使用Movielens数据集Miller等,2003, Netflix的数据集贝内特和兰宁,2007,并 通过Netflix的数据采样的三个较小的数据集设置用于评估。每个数据集被分成两个不连续 的训练集和测试集。演出由试验测得均方根误差(1),呈随着训练时间。3.1数据集该Movielens数据集是由GroupLens Konstan等人,1997,所提供的收集并提供多种协 同过滤数据的研究小组在不同的域中。该数据集包含了 1,000,209比分为6,040 用户和3,706电影。每个用户提供了
23、至少20分。由于数据集不不拿出一个训练和测试分 裂,我们随机选择三个分数每个用户作为测试数据。因此,训练集和测试集的比例是相似的 Netflix的数据集。其他数据集是由Netflix的奖给出第一节所提及。有100,480,507的分数为480,189 用户和17,770电影。每个用户在开头处至少20分,但竞争主办方故意扰乱设置数据, 以便一些用户可能有不到20分。该用于实验的试验数据是完全由Netflix的提供的探针组奖, 其中包括1,408, 395的分数。的训练数据的剩余99, 072, 112的分数。除了上述两个数据集,我们品尝三个小数据集的不同,从Netflix的数据集耳鼻喉科属性。我
24、们合并的训练集和测试集Netflix公司,并随机抽样的用户和对象的1 %作为第一个数据 集小1。然后我们删除它们没有什么分数小1的用户和对象,并选择138的分数作为测试 集,使得小1的培训/测试比率和Netflix是相似的。考试成绩对用户均匀分布,这是相同的 制剂中Movielens和Netflix数据集。该第二个数据集small2由用户和对象,用1 %的最高数量分数中的Netflix的,因此,它比小1和Netflix致密。第三数据集small3包含相同的对象 作为那些small2。但是,它包含的用户提供了 56最高数目的分数在small2,所以数目 分数small3和小1接近。我们还选择13
25、8的分数作为测试数据的small2并用相同的方式 small3。表1列出了数据集的统计信息。表1:数据集统计Dataset# user# object# training score# test scoredensityVAlomelensG?0403,706982,08918,1204.61%Netflix48(118917,77099,0723121408,3951.18%smalll2,9171679,7341382.00%smallS4,802178702,95613882.24%smalls561789,80913898.40%3.2实验结果我们实行的SVD算法用C,因为他们是最耗时
26、在计算。我们使用MATLAB进行数据预处理 和后处理的所以方便的矩阵运算。对于不同的SVD算法时,测试均方根误差被暗算了训练 时间。用于比较的算法列举如下:AVGB: 一个简单的基线预测,预测比分P IJ为用户i和对象j的p J+双,其中p j为对象的 J在训练数据中的平均分,并B I是使用者的平均偏置我计算如下mN 1 DdCeC0.010.02 o.oa 0.M Cl 05r估配叫TiPW朽Hgd勃ujll.ShDhR . SVD BATCH0 02OEM 0.06 Q.OET 01TMifirci 而归 fwtJgil 卧同脉成日口淄日1&1520Trjmnn Fun?网闪时引$ 8SV
27、D:算法3,使用增量学习与正规化条款。SVDNR:这是一样的算法,SVD但正规化系数设置为0 cients,该算法可以作为另一种基准。SVDUSER:奇异值分解算法,它有相同梯度的奇异值分解,但使用不完整的增量学习的扫 描用户的所有成绩,而不是每个单节得分后更新特征值。SVDBATCH:算法4,它使用批处理有学习的动力0.9学习。CSVD:化合物SVD算法,其中包括了每个用户和perobject偏见和特征向量的约束。实现 细节在马,2008中描述。首先,我们给批学习和增量学习之间的比较。我们应用SVDNR和SVDBATCH上的数据集, 其中SVDBATCH的正规化系数被设置为0。测试均方根误差
28、相对于以四个数据集的训练时 间小1,small2, small3和Movielens示于图1。在SVDNR学习速率是0.005为每个数据集。 对于该算法 SVDBATCH,学习率是 0.0005, 0.0003, 0.001 和 0.0002 为小 1,small2, small3 和Movielens元。这些值给出在最短的时间最低的均方根误差未做算法 发散。一批具有很高的学习势头学习也有类似的表演在小数据集增量学习,但均方根误差的减少通 常是不稳定。一批学习被认为是低效的中型或大型数据集像Movielens或Netflix的。在图1 中,SVDBATCH需要更多的训练时间以得到相同的性能Mo
29、vielens数据集。此外,SVDBATCH需要超过10,000秒,以获得最低的均方根误差为Netflix的数据集,而 SVDNR大约需要300秒时间来达到类似的均方根误差。然后,我们将展示SVDNR,SVD,SVDUSER的表演,CSVD两个更大的数据集Movielens 和Netflix。对于每一个数据集,该矩阵M,U在SVDNR,SVD和SVDUSER以及M,Y 在CSVD由(7)进行初始化。约束矩阵W和偏见的a,8的值CSVD都初始化为0。作为 参数,学习率|J V在SVDNR和SVD是0.003的Movielens数据集和0.001 Netflix的数据 设置,但SVDUSER采用不
30、同的学习率进行比较。正规化系数区,公里是0 SVDNR,而SVD 和SVDUSER使用导致最佳的表现,这两者都是0.05正规化系数DatasetAVGBSVDNRSVDCSVDMovielens0.93130.87960.87130.8706Netflix0.98790.92800.92290.9178作为其用户的特点假设并不能有效的一个更为密集的数据。该SVDUSER的行为表明不完 整的增量学习是一个坏选择。它仍然可以导致类似的表演,如果同样的梯度时,但较小的学 习速率和更多的训练时间是必要的。如果学习率不是足够小,均方根误差的减小甚至不稳定 的,因此它是硬决定一个算法的终止条件。一批学习也
31、有同样的问题,增量学习呢。在我们 的实验中,批次习ING需要一个非常小的学习速率,以达到相同的性能作为完整的增量学习,甚至需要几天的时间才能完成优化的Netflix的。总之,完全增量学 习是在SVD算法协同过滤的优化,更好的复合SVD算法可以进一步提高传统的表演 SVD算法的稀疏数据集如Netflix。最后,我们将展示提高SVD的尺寸的效果。我们使用奇异值分解算法与尺寸f = 20,30, 50和100的正规化系数区和公里均为0.015,这是适合于各数维中的实验。其结果示于图3。 的增加尺寸确实提高性能,但训练时间也成正比到维数。在Netflix的奖大赛,SVD的样算法的尺寸有珠盟友设置为一个
32、较大的值较低的均方根误 差。另一方面,训练数据Netflix公司在我们的实验中仅包含99,072,112的分数,因 为我们需要一个验证组,但最好是与完整的训练数据与运行算法100,480,507的分数, 利用由培训/确认找到了最佳参数0 6755o. -o ILLM主宣U.87 L 0o.5 Eo.: D o 山 SSCE8 s9 7o.0.6510153025Training Time IsecondE)300 910M自血 DaflSS&t 0 3520040G600800 WOOTrainiJiqlime (Eeconds)0 920.&15102030405060TrainrgTinw
33、(G9ccindGj*: SVD , = Ci ft)3jSVDU3EJ? (r = 012SVDUSER ir = 0 0Q15; SVDUSER (r = 00i)1)0 925卜拍卧匚洎蚣叙SVD (r=O.0Q1) 敢口USER (r = QQ01)阳口 USER (r = 0.0005ISVDUSER (r -D G0D3SVDUSER (r = 0.00025 u田 53 O.SQ o100020003000Training Time (GKondGl0.01 -这种方法由0.005降低测试均方根误差。对于Netflix公司奖的竞争中,我们使用算法 CSVD与尺寸f=256,其次是
34、在马,2008中描述的后处理方法。的均方根误差 我们最好的结果是0.8868。Netflix DatasetUJEWct3 _y u.22 9.90.9LI059%SVD(f=2DJ -SVD(f=3O) ,SVD(f50) SVD (f= 100)200040D060003000 WDOO 12000140D0Training Time (seconds)4结论细心的执行奇异值分解是有效的协同过滤。我们的实验表明,在一般情况下,批处理学习或 不完整的增量学习需要较小的学习速率,并具有不稳定的性能比完整的增量学习。我们发现, 增量学习,尤其是完全增量学习哪些更新看着一个单一的训练成绩后的值,是
35、合作的最佳选 择数以百万计的训练实例的过滤。参考文献R. Bell, Y. Koren, and C. Volinsky. Modeling relationships at multiple scales to improve accuracy of large recommender systems. In KDD 07: Proceedings of the 13th ACM SIGKDD international conference on Knowledge discovery and data mining, pages 95 - 104, New York, NY USA, 2
36、007a. ACM. ISBN 978-1-59593-609-7. doi:http:/doi.acm.org/10.1145/1281192.1281206.R. Bell, Y. Koren, and C. Volinsky. The BellKor solution to the Netflix Prize. 2007b. URL J. Bennett and S. Lanning. The Netflix Prize. Proceedings of KDD Cup and Workshop, 2007.J. A. Konstan, B. N. Miller, D. Maltz, J.
37、 L. Herlocker, L. R. Gordon, and J. Riedl. GroupLens: applying collaborative filtering to Usenet news. Com-munications of the ACM, 40(3):77 - 87, 1997. ISSN 0001-0782. doi: http:/doi.acm.org/10.1145/245108.245126.C.-C. Ma. Large-scale collaborative filtering algorithms. Master s thesis,National Taiw
38、an University, 2008. URLhttp:/www.csie.ntu.edu.tw/r95007/thesis/svdnetflix/thesis.pdf.B. N. Miller, I. Albert, S. K. Lam, J. A. Konstan, and J. Riedl. Movielens unplugged: experiences with an occasionally connected recommender system. In IUI 03: Proceedings of the 8th international conference on Int
39、elligent user interfaces, pages 263 - 266, New York, NY, USA, 2003. ACM. ISBN 1-58113-586-6. doi:http:/doi.acm.org/10.1145/604045.604094.A. Paterek. Improving regularized Singular Value Decomposition for collabora-tive filtering. Proceedings of KDD Cup and Workshop, 2007.R. Salakhutdinov and A. Mnih
40、. Probabilistic Matrix Factorization. In J. Platt,D. Koller, Y. Singer, and S. Roweis, editors, Advances in Neural Information Processing Systems 20, pages 1257 - 1264. MIT Press, Cambridge, MA, 2008.R.Salakhutdinov, A. Mnih, and G. Hinton. Restricted Boltzmann Machines for collaborativefiltering. I
41、n Proceedings of the 24th international conference on Machine learning, pages 791-798, New York, NY, USA, 2007. ACM. ISBN 978-1-59593-793-3. doi: http:/doi.acm.org/10.1145/1273496.1273596.S.Zhang, W. Wang, J. Ford, F. Makedon, and J. Pearlman. Using Singular V alue Decomposition approximation for collaborative filtering. Seventh IEEE International Conference on E-Commerce Technology, 2005. CEC 2005., pages 257 - 264, July 2005. ISSN 1530-1354. doi: 10.1109/ICECT,2005.102.