CN103782290A - 建议值的生成 - Google Patents

建议值的生成 Download PDF

Info

Publication number
CN103782290A
CN103782290A CN201280044875.0A CN201280044875A CN103782290A CN 103782290 A CN103782290 A CN 103782290A CN 201280044875 A CN201280044875 A CN 201280044875A CN 103782290 A CN103782290 A CN 103782290A
Authority
CN
China
Prior art keywords
user
project
vector
stage
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201280044875.0A
Other languages
English (en)
Inventor
Y.梅沙尔基纳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Irdeto BV
Original Assignee
Irdeto BV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Irdeto BV filed Critical Irdeto BV
Publication of CN103782290A publication Critical patent/CN103782290A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Strategic Management (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Mathematical Physics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Mathematical Optimization (AREA)
  • Finance (AREA)
  • Operations Research (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Human Resources & Organizations (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Accounting & Taxation (AREA)
  • Game Theory and Decision Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

描述了一种基于用于其它用户项目对的已知建议值来生成用于特定用户项目对的建议值的方法。用户项目对对应于m个用户中的一个用户和n个项目中的一个项目,使得用于所述特定用户项目对的所述建议值是用于所述m个用户中的特定用户的所述n个项目中的特定项目的建议值。所述m个用户中的每一个用户与对应用户向量相关联。所述n个项目中的每一个项目与对应项目向量相关联。所述方法包括以下步骤:生成与所述特定用户相关联的所述用户向量;生成与所述特定项目相关联的所述项目向量;以及基于与所述特定用户相关联的所述用户向量和与所述特定项目相关联的所述项目向量的点积来生成用于所述特定用户项目对的所述建议值。所述方法包括用于在一系列阶段中的每一个阶段的步骤(a)到(c)。步骤(a)涉及从所述m个用户识别所选择的用户,以及从所述n个项目识别所选择的项目,以便定义用户项目对的子集,其具有已知建议值的给定密度。在每一个随后的阶段中,减小在所述子集中的已知建议值的密度。对于还没有在任何前面的阶段中选择的每一个所选择的用户,步骤(b)涉及基于用于在对应于所述选择的用户的所述子集中的用户项目对的已知建议值并基于在任何前面的阶段中计算的任何对应项目向量来计算所述相关联的用户向量。对于还没有在任何前面的阶段中选择的每一个所选择的项目,步骤(c)涉及基于用于在对应于所述选择的项目的所述子集中的用户项目对的已知建议值并基于在任何前面的阶段中计算的任何对应用户向量来计算所述相关联的项目向量。

Description

建议值的生成
技术领域
本发明涉及基于用于其它用户项目对的已知建议值来生成用于特定用户项目对的建议值的方法。用户项目对包含m个用户中的一个用户和n个项目中的一个项目,使得用于特定用户项目对的建议值是用于特定用户的特定项目的建议值。这样的建议值可以用在许多建议系统中。
背景技术
建议系统根据很可能是特别的用户感兴趣的项目生成建议。对于基于等级的建议系统,等级数据被存储在用户项目矩阵中。通常,仅填充了该矩阵中的一小部分。根据该数据,系统应当能够根据建议值预测剩下的等级。作为潜在因子模型的实现的矩阵因式分解技术对基于等级的建议系统不陌生。作为数学技术,矩阵因式分解被定义为用于完全填充的矩阵。其用于部分填充的矩阵的扩展暗示了丢失数据中的大部分的恢复,从而导致优化问题,对于所述优化问题,约束条件的选择是主要问题。
作为潜在因子模型的实现的矩阵因式分解技术用在许多建议系统的开发中。例如,见Billsus and Pazzani的"Learning collaborative information filters" (International Conference on Machine Learning, Morgan Kaufmann Publishers, 1998), Billsus等人的"Adaptive interfaces for ubiquitous web access"  (Communications of the ACM, 45(5):34-38, 2002), 或Koren的"The BellKor 2009 Solution to the Netflix Grand Prize"(2009年8月,在http://www.netflixprize.com 在线可得)。在潜在因子模型中,用户和项目根据已知等级被假定为由                                                
Figure 2012800448750100002DEST_PATH_IMAGE001
中的向量表示。根据该已知等级,这些技术产生表征项目和用户两者的因子和余因子。因子描述用户特征,而余因子描述项目特征。矩阵因式分解将用户向量和项目向量映射到潜在因子空间。因子空间由主因子张成,而余因子空间由主余因子张成。这些空间都具有等于主因子(主余因子)的数量的相同的维度。
数据可以被映像为云。云的位置和形状由质心和主轴/主分量来确定。参考参考系被附接至云的质心。协方差矩阵确定主分量。如果变量在k维中高,而在其它维中低,则数据可以被有效地看作k维云。因此,该云由其在由主分量确定的一维空间上的投影来表示。
每个分等矩阵确定两个云,其中,对应的主分量是因子和余因子,并且变量由奇异值描述。知道了奇异值、主因子和主余因子,可以再生矩阵;这是奇异值分解的本质。
投影的主要优点是可以用较小数量的变量来描述系统,而主要信息仍在数据库中。通过将小于特定阈值的奇异值置为零来减小问题的维数。
在实践中,分等矩阵被表示为秩为1的矩阵之和。每一个矩阵对应于一个因子(余因子)。通过去除非必要因子来减小因子的数量。对应因子和用户向量的内积越大,该特征与该用户越相关。因此,因为用户和项目的全部都按照共同的因子(余因子)表达,所以它们可以容易地进行比较。缺点是不容易解译因子和余因子。
如果找到因子和余因子,使得它们的张量积(秩为1的矩阵)之和接近已知等级是可能的,则该乘积之和同时给出了对丢失等级的估计。这产生了非线性优化问题。存在一些可用的迭代方法,其允许求解该非线性优化问题。非线性优化问题的通常方面是:主要启发式求解过程是可用的,其不保证找到全局最优值。因此局部最优值可以出现。求解过程的其它方面是结果最优值非常取决于起始点的选择。此外,由于分等矩阵的稀疏性,对应的优化问题是不确定的,并且解是不唯一的。因此,有必要的是,定义约束条件的集合并指定目标函数。
现在将在数学上描述一种现有技术方法。在系统中存在m个用户和n个项目。R是m×n的分等矩阵,其部分地用用户等级填充。在图1中示出了一个示例,其中,系统具有m=10的用户和n=10的项目。在图1的示例中,仅27%的等级是已知的。在稀疏填充的矩阵R中,只有当用户i评定了项目j时,rij才是已知的。所观察的等级的集合由K表示,所以K={(i, j, rij)|rij是已知的}相对较小。
因子由表示,并且余因子由
Figure 842231DEST_PATH_IMAGE004
表示,i=1 … k。如果因子和余因子是已知的,由ui和vi的对应条目组成的k维向量的点积(或标量积)给出了用户项目关系或等级:
在用于生成预测的现有的方法中,在稀疏填充的矩阵R的已知条目与因子ui和余因子vi的乘积之间的差值如下求最小值:
Figure 559652DEST_PATH_IMAGE006
        (1)
Tikhonov正则化用来防止过填充:
  (2)
其中,
Figure 141812DEST_PATH_IMAGE008
控制正则化:
Figure 956184DEST_PATH_IMAGE008
越大,越强调正则项。
可以通过随机梯度下降法或交替最小二乘法来求解该优化。例如,见:Koren的"The BellKor 2009 Solution to the Netflix Grand Prize" (2009年8月,在http://www.netflixprize.com 在线可得)。实现经常包含通过k个因子的环路。对于每一个已知等级rij,在每一个迭代步骤s处,系统计算预测误差:
Figure DEST_PATH_IMAGE009
并且在梯度的相反方向上修改参数:
Figure 716329DEST_PATH_IMAGE010
其中
Figure DEST_PATH_IMAGE011
是学习速率,而
Figure 668849DEST_PATH_IMAGE012
是Tikhonov正则化参数。参数都取0与1之间的值,其可以用实验方法来选择。初始值
Figure DEST_PATH_IMAGE013
可以随机地取得。现有的方法开始于从实时值减去平均值,并接着求解优化问题。见"The BellKor 2008 Solution to the Netflix Prize" by Bell etal. (2008,在http://www.netflixprize.com在线可得)。这种方法给出了精确预测的结果,但结论是预测值停留在平均值附近。当平均值根据静态误差产生相对好的预测的时候,这种预测一定远离建议系统的实际目标。不期望的是,预测平均值;期望的是,具有区分“好”项目和“坏”项目的机会。此外,矩阵因式分解技术假定在行中间和在列中间存在线性相关性。从平均值开始的偏离应当被该相关性覆盖。如果一个等级行具有比其它等级行更高的平均值,则它可以通过简单的线性关系来表达。
优化问题是不确定的,因为数据集合是稀疏填充的。现有的方法不区分带有大量等级的用户和带有较少等级的用户。问题的另一方面是初始化。优化过程可能容易导致局部最优值。因此,有必要的是,定义约束条件的集合并指定目标函数。在现有的方法中,如何确定秩k也是问题。
本发明寻求提供一种生成(或预测)未知建议值的替换的方式,其提供了超过现有技术的方法的各种优点。
发明内容
根据本发明的第一方面,提供了一种基于用于其它用户项目对的已知建议值来生成用于特定用户项目对的建议值的方法。用户项目对对应于m个用户中的一个用户和n个项目中的一个项目,使得用于所述特定用户项目对的建议值是用于m个用户的特定用户的n个项目的特定项目的建议值。m个用户中的每一个用户与对应用户向量相关联。n个项目中的每一个项目与对应项目向量相关联。该方法包括以下步骤:生成与特定用户相关联的用户向量;生成与特定项目相关联的项目向量;以及基于与特定用户相关联的用户向量和与特定项目相关联的项目向量的点积来生成用于特定用户项目对的建议值。该方法包括用于在一系列阶段中的每一个阶段的下面的步骤(a)到(c)。每一个阶段具有各自的项目阈值和各自的用户阈值。用于一个阶段的项目阈值小于用于任何前面的阶段的项目阈值,并且用于一个阶段的用户阈值小于用于任何前面的阶段的用户阈值。步骤(a)涉及从m个用户识别所选择的用户,并且从n个项目识别所选择的项目,以便定义用户项目对的子集。对于每一个所选择的用户,用于在子集中的用户项目对的对应已知建议值的数量大于用户阈值。对于每一个所选择的项目,用于在子集中的用户项目对的对应已知建议值的数量也大于项目阈值。对于还没有在任何前面的阶段中选择的每一个所选择的用户,步骤(b)涉及基于用于在对应于所述选择的用户的子集中的用户项目对的已知建议值并基于在任何前面的阶段中计算的任何对应项目向量来计算相关联的用户向量。对于还没有在任何前面的阶段中选择的每一个所选择的项目,步骤(c)涉及基于用于在对应于所述选择的项目的子集中的用户项目对的已知建议值并基于在任何前面的阶段中计算的任何对应用户向量来计算相关联的项目向量。
因此,本发明的方法将优化问题分裂为一系列阶段。每一个阶段帮助构建能够生成用于特定用户项目对的建议值的全预测模型。第一阶段使用来自用已知表示值(即,等级)更稠密填入的用户项目空间的区域的数据的块(即,子集)。与更稠密填入的用户和项目相关的参数(即,用户向量和项目向量)在系列中的第一阶段期间是固定的。第二阶段将用于在用户项目空间中的已知表示值的填入级别的较低的阈值与数据的块一起使用。先前计算的参数(即,用户向量和项目向量)用来帮助计算用于落在第二较不稠密填入的数据块中的用户和项目的其它类似的参数。在随后的阶段中的参数计算不影响在使用更稠密填入的数据在任何先前的阶段中计算的参数。将数据分裂为块减小了问题的不确定性,并且提供了求解这种优化问题的新的迭代方法。用于任何预测的重要的考虑是质量。直观地,更稠密填充的数据应当产生更可靠的预测,并且这概念已经用在目前的方法中。目前的方法也允许根据数据密度引入可靠性概念。
在一个实施例中,对于系列中的至少一个阶段,在步骤(a)中,对于每一个未选择的用户,用于不在子集中的用户项目对的已知建议值的数量小于或等于用户阈值,并且对于每一个未选择的项目,用于不在子集中的用户项目对的已知建议值的数量小于或等于项目阈值。未选择的用户是未被选择来定义用户项目对的子集的来自m个用户的用户。未选择的项目是未被选择来定义用户项目对的子集的来自n个项目的项目。更有利地,该方法用于系列中的每一个阶段。在该有利的实施例中,序列的第一阶段使用了用已知建议值最稠密填入的用户项目空间的区域的全部。第二阶段附加地包含用户项目空间的稍微不稠密填入的区域的全部等等。因此,该实施例对用于给定用户项目对将一般产生建议值的非常高质量的预测。
对于系列中的至少一个阶段,步骤(b)和(c)可以一起包括求在以下两者之间的差值的最小值:1)在子集中的用于每一个用户项目对的已知建议值,以及2)用于所选择的用户的用户向量和用于所选择的项目的项目向量的对应点积。因此,在该实施例中,方法要求在系列中的一个或多个阶段下求解求最小值(或优化)问题。存在求解求最小值问题的许多已知方式(例如,最小二乘法、迭代技术),所以该实施例使用了由本领域技术人员充分理解的方法。
对于系列中的至少一个阶段,可以存在步骤(b)和(c)的一个或多个迭代,直到满足了停止标准。因此,在该实施例中,迭代技术用在个别的阶段中,也用来定义阶段本身。
对于系列中的至少一个阶段,步骤(b)和(c)的多个迭代可以从步骤(b)开始。在这种情况下,步骤(b)的第一次迭代进一步包括基于用于还没有在任何前面的阶段中选择的那些所选择的项目的随机初始化的项目向量来计算所述相关联的用户向量。可替换地,对于系列中的至少一个阶段,步骤(b)和(c)中的多个迭代可以从步骤(c)开始。在这种情况下,步骤(c)中的第一次迭代进一步包括基于用于还没有在任何前面的阶段中选择的那些所选择的用户的随机初始化的用户向量来计算所述相关联的项目向量。随机初始化是初始化项目向量或用户向量的一种可能的方式。
对于系列中的至少一个阶段,跟随步骤(c)的先前的迭代的步骤(b)的任何迭代可以进一步包括基于在步骤(c)的先前的迭代中计算的项目向量来计算所述相关联的用户向量。类似地,对于系列中的每一个阶段,跟随步骤(b)的先前的迭代的步骤(c)的任何迭代进一步包括基于在步骤(b)的先前的迭代中计算的任何用户向量来计算所述相关联的项目向量。因此,在这些实施例中,最近计算的项目向量用来计算任何用户向量,并且最近计算的用户向量用来计算任何项目向量。
步骤(b)和/或步骤(c)可以包括求解线性等式的系统。减小对线性等式集合的优化问题使得以有效且可容易理解的方式求解完成该优化成为可能。
在一个实施例中,对于每一个阶段,项目阈值等于用户阈值,使得对于每一个阶段仅要求单个阈值。这对于对称数据集合有用。可替换地,如果期望,对于给定阶段,项目阈值可以不同于用户阈值。
在一个实施例中,每一个用户向量包括k个元素并且每一个项目向量包括k个元素。对于系列中的至少一个阶段,与所选择的用户相关联的用户向量和与所选择的项目相关联的项目向量均具有设置为零的恒定数量为C的元素,其中,C大于等于1。这使得能够在系列中的阶段中的一个或多个阶段中减小问题的维数。
该方法可以进一步包括以下步骤:接收用于用户项目对的新的已知建议值,其中,新的已知建议值影响对于系列中的阶段s到S中的每一个阶段在步骤(a)中选择哪些用户和项目,其中,阶段S表示系列中的最终阶段;并且,对于系列中的阶段s到S中的每一个阶段,再次执行步骤(a)到(c),以便基于新的已知建议值更新计算的用户向量和项目向量。因此,本方法可以适于建议值的动态进化数据集的更实际的情况(即,在等级中涉及动态的情况)。
根据本发明的第二方面,提供了一种计算机程序,其当由处理器执行时使处理器执行第一方面的方法。
根据本发明的第三方面,提供了一种承载第二方面的计算机程序的数据承载媒介。数据承载媒介可以是存储媒介或传输媒介。
根据本发明的第四方面,提供了一种包括处理器的设备,该处理器被配置为执行第一方面的方法。
附图说明
现在将参考附图,仅通过举例来描述本发明的实施例,其中:
图1示出了带有一些已知等级以及其它丢失的等级的示例性分等矩阵R。
图2是使用图1的分等矩阵R和k=4的矩阵A的示例性构造。
图3图示了用在图2中的矩阵A的构造中的矩阵U的分量。
图4图示了用在图2中的矩阵A的构造中的矩阵V的分量。
图5图示了用于每一个块的优化问题中的变量的数量。
图6示意性地图示了在迭代过程的步骤2的一个迭代期间用于每一列的求解的线性等式的系统。
图7示意性地图示了在迭代过程的步骤3的一个迭代期间用于每一行的求解的线性等式的系统。
图8a-8b图示了对于带有k=2、m=9和n=9的系统,用来求解出U和V的迭代过程中的前几个的步骤。
图9示出了原始数据与图8中图示的迭代过程的最终结果的比较。
图10是示出了在用于估计目的的第二电影镜头(MovieLens)数据集合的每一个块中的最小数量的等级ps的表格。
图11示出了用于第二电影镜头数据集合的各种估计的预测的均值平均误差(Mean Average Error)。
图12示出了用于第二电影镜头数据集合的各种估计的预测的均方根误差。
图13示意性地图示了根据本发明的实施例的建议系统。
图14示意性地图示了可以用来形成数据处理系统的示例计算机系统,所述数据处理系统形成了建议系统和/或一个或多个用户计算机系统的整体或部分。
具体实施方式
在下面的描述中和在附图中,描述了本发明的特定实施例。然而,将理解的是,本发明不限于所描述的实施例,并且一些实施例可以不包括下面描述的特征的全部。然而,将明显的是,在不脱离如在所附权利要求中陈述的更宽的精神和范围的情况下在本文中可以进行各种修改和改变。
奇异值分解、Schur分解和反向工程方法均在下面进行简要的描述,以便提供对于本发明所描述的实施例的数学背景。
奇异值分解
让A是m×n的完全填充的矩阵,其奇异值分解
Figure DEST_PATH_IMAGE015
                     (3)
包含两个正交矩阵Um×m和Vn×n和对角矩阵。对角矩阵
Figure 661261DEST_PATH_IMAGE016
是在其对角上具有非负奇异值的m×n的矩阵。假定减少奇异值的阶给出了唯一确定的矩阵
矩阵A通过仅选择k个最大奇异值和它们对应的来自U和V的向量来近似,即所谓的为A的秩k近似。通过将
Figure 592308DEST_PATH_IMAGE017
的其它条目放入零,A可以被如下近似:
Figure 346638DEST_PATH_IMAGE018
            (4)
其中U1和V1是U和V的适当的分段,使得U1是m×k矩阵,且V1是n×k矩阵。该技术允许在具有满矩阵A的良好近似的同时减小问题维度。
Schur分解
让A是秩为k的m×n矩阵,使得A11是k×k非零子式。然后,A可以被以下面的四个块的结构写为:
Figure DEST_PATH_IMAGE019
         (5)
因为A11是带有非零行列式的k×k矩阵,所以它是可逆矩阵。Schur分解把块矩阵因式分解为下三角形、块对角和上三角形矩阵:
Figure 772065DEST_PATH_IMAGE020
      (6)
其中,I是单位矩阵,因为A是秩为k的m×n矩阵,仅存在k个独立的行/列。剩下的(m-k)行和(n-k)列是相关的,并且可以被写为k个独立的行/列的线性组合。因此,Schur补(Schur compliment)等于零:
Figure DEST_PATH_IMAGE021
                 (7)。
反向工程方法
现在以颠倒的次序考虑奇异值分解和Schur分解。对于完全填充的矩阵,秩总是已知的且可以找到表征矩阵的最大非零子式(即,A11)。对于稀疏填充的矩阵,秩是未知的,但假定它是已知的并让它是k。因此,存在至少一个满秩k×k的块;更高维度的所有块都不是满秩。假定能够找到该块。然后,该块可以用作A11以构建块矩阵(5)。对于该块对角矩阵,奇异值分解如下:
Figure 233133DEST_PATH_IMAGE022
      (8)
其中,
Figure DEST_PATH_IMAGE023
因为矩阵的秩被假定为k,所以存在k个非零奇异值。将该奇异值分解插入Schur分解给出了独立于A22的A的分解。
因为矩阵中的最大非零子式的大小是已知的,所以可以定义因子的数量。此外,A21确定了所有因子,并且A12确定了所有余因子。因为Schur分解,所以不需要知道或构建A22,因为块A22中的所有条目可以被计算为乘积A21A11 -1A12。这些想法提供了用于填充分等矩阵R中的空条目的在本文中被称作“反向工程”的方法。
递增矩阵因式分解
矩阵因式分解技术的使用对于该类型的问题不是新的,但该实施例的焦点是在本文中被称作“递增矩阵因式分解”的新方法。该方法基于两个因式分解方法:奇异值分解和Schur分解。先前的工作已经集中在矩阵因式分解技术上,这些技术在它们的优化步骤中对于所有数据集合具有相同的维数,而没有区分带有不同等级量的用户和项目。因此,对于一些用户,优化问题是超定的,而对于其它用户,优化问题是欠定的。在该实施例中,引入了递增过程,其允许减小问题的维数和不确定性两者,并且产生具有考虑动态适应性的高性能的建议系统。
矩阵A首先被构建为:
Figure DEST_PATH_IMAGE025
此处R是稀疏填充的m×n矩阵,其包含所有已知等级;I是k×k单位矩阵;U和V分别是m×k和n×k矩阵。图2示出了用于k=4并用于图1中示出的矩阵R的矩阵A的示例。在图3和图4中分别示出了矩阵U和V的对应示例。图3图示了存在k=4的因子ui,每一个因子ui的长度m=10。相同的矩阵U可以被考虑为由m=10个用户向量组成,每一个用户向量的长度k=4。类似地,图4图示了存在k=4的余因子vi,每一个余因子vi的长度n=10。相同的矩阵V可以被考虑为由n=10个项目向量组成,每一个项目向量的长度k=4。
如果A的秩等于I的秩(即,等于k),则矩阵A的Schur分解与先前陈述的相同。用于A的奇异值分解如下:
因此,找到U和V使得R≈UVT意味着可以找到因子和余因子(或,等价地,用户向量和项目向量)。在该情况下,二次优化问题被以如下方式写为:
Figure DEST_PATH_IMAGE027
其中,K是R中的已知等级的集合。这等价于优化问题(1)。换句话说,期望的是,求在R中的已知等级与对应的用户向量和项目向量的点积之间的差值的最小值。
重要地,取决于用于每一个用户和每一个项目的已知值的数量而将矩阵R分裂为S个块B1 …BS。在本实施例中,该分裂过程通过置换矩阵R的行和列来完成。虽然行和列的置换有助于等级数据的数学处理的时候,将理解的是,该置换不是必要的。关键点是数据通过数据密度的效力来分裂为块。在已经将矩阵R分裂为块的情况下,来自块B1的所有用户和所有项目都具有至少M1个等级,来自块B2的所有用户和所有项目都具有至少M2个等级,其中,M2<M1,等等。因此,在该实施例中,用户阈值等于项目阈值,使得对于每一个阶段s仅要求单个阈值Ms。因此,B1是最密的数据块,B2是第二最密的数据块……以及BS是最不密的数据块:
Figure 304360DEST_PATH_IMAGE028
本方法涉及一系列阶段。
本方法的第一阶段开始于最密块B1,并且使用下面描述的迭代过程来找到U1和V1,使得:
Figure DEST_PATH_IMAGE029
然后,在方法的第二阶段中,取得下一个最密的块B2,并且增加了来自先前步骤的块B1
Figure 633317DEST_PATH_IMAGE030
然后,有必要找到U2和V2,其满足:
其中,U1和V1是从块B1给出的。如果
Figure 906167DEST_PATH_IMAGE032
是满秩块,则这等价于优化问题:
Figure DEST_PATH_IMAGE033
对于所有块重复该递增过程。在每一个块中,因子和余因子的数量是固定的,并且使用来自先前的块的预测。
附加地,所提出的递增方法通过有规律地更新建议系统来产生得到动态改变的建议系统的可能性。当新的等级出现时,用户项目对也许能够被从初始块Bs移动到更密的块Bs-1。在这种情况下,仅仅有必要的是重新计算用于块Bs-1, …,BS的因子U和余因子V的对应矩阵。因此,将仅影响Us-1 …US和Vs-1 …VS。用于更高密度数据块的因子U和余因子V的矩阵将保持未受影响。
通过使用递增矩阵因式分解技术,假定用户的体验线性地取决于其它用户的体验,并且同样,假定项目等级也线性地相关。此外,独立用户/项目的集合具有维度k。因此,用于项目的等级取决于用户行为,并且取决于如何关于其它项目对项目进行评定。这可以给出在等级量表之外的预测值(例如,对于1到5的等级量表,高于5或小于1)。实际上,这是本方法的优点之一,因为真正地区分了项目,例如,带有等级5.9的项目应当比带有等级5.2的项目更受用户重视。没有必要使用基本线预测,因为该方法自身同时针对每一个用户和每一个项目注意来自平均值的偏差。
迭代过程
对于每一个块Bs(s=1 … S),求解优化问题以找到对应的Us和Vs(即,对应于该块中的用户和项目的用户向量和项目向量)。如下面描述的,反向工程方法提供了非常简单的迭代方法。然而,将理解的是,这是求解优化问题的示例性方式,并且不应当被看作是限制。
图5示出了优化问题中的变量的数量是k(ns-ns-1+ms-ms-1),并且等式的数量是Ns,其中Ns是用于第s个块中的所有项目和用户的已知等级的数量。为了找到该问题的最优值,应用了求解两个线性等式系统的下面的四步迭代过程。V的条目由vjl表示,U的条目由uil表示,并且R的条目由rij表示。
步骤1:如果s=1,则Us进行随机初始化。否则(即,s>1),U1 … Us-1是从先前的步骤中已知的。Us指代用于在块s中的用户的用户向量。
步骤2:固定Us,其中
Figure 822039DEST_PATH_IMAGE034
。然后,对于每一列j=ns-1+1 … ns,存在线性等式的系统(见图6):
Figure DEST_PATH_IMAGE035
其中
Figure 900853DEST_PATH_IMAGE036
在每一个系统中的未知的数量是ks,等式的数量取决于在R的对应列j中的已知值pj的数量,即,
Figure DEST_PATH_IMAGE037
。因此,存在三种情况:
·情况1:如果秩(D)=秩(D|d)<k,则对应系统具有许多解,并且应当添加正则化项或应当将独立变量设置为零。
·情况2:如果秩(D)=秩(D|d)=k,则对应系统具有唯一的解。
·情况3:如果秩(D)=秩(D|d)>k或者秩(D)≠秩(D|d),则对应系统没有解,并且找到了最小范数解||Dx-d||。
步骤3:固定Vs,其中。Vs指代用于在块s中的项目的项目向量。然后,对于每一行i=ms-1+1 … ms,存在线性等式的系统(见图7):
Figure DEST_PATH_IMAGE039
其中
并且再次存在用于步骤2的上面描述的三种可能的情况。
步骤4:重复步骤2和3,直到满足停止标准。迭代过程转换非常快,并且在几次迭代后,它合理地停止。
在用于带有k=2、m=9和n=9的系统的图8a-bd中示出了迭代过程的第一部分的示例。首先,作为迭代过程的每一个步骤1,U的值进行随机初始化。在图8b中清楚地示出了随机初始化的U的值。然后,在迭代过程的步骤2中,固定这些随机值并求解线性等式的系统,以便找到V的值。作为一个示例,图8a和8b一起示出了如何针对j=7设立线性等式的系统。存在按用户编号1、2、3、5和9的对于项目j=7的五个等级,所以,求解五个线性等式的系统,以便找到对于项目j=7的V的元素。在图8b的右手侧示出了对于j=7的线性等式的实际系统。一旦已经针对每一列j求解了类似的线性等式的系统,该情况如图8c所示,其中,U的值仍固定在它们初始的随机值处,并且已经通过求解线性方程的n个系统找到了V的值。在该阶段处,迭代过程的步骤2的第一次迭代已经完成,并且该过程因此移动到步骤3的第一次迭代上。在该步骤中,根据先前的步骤固定V的值,并且求解线性等式的系统,以便找到U的值。图8d示出了如何针对i=4设立线性等式的系统。存在对于项目编号1、2、3和9的按用户i=4的四个等级,所以,求解四个线性等式的系统,以便找到对于用户i=4的U的元素。一旦已经找到U的所有值,执行检查以看是否已经满足步骤4的停止标准。如果是,则迭代过程完成。如果否,则开始新的迭代。
在图9中示出了迭代过程的结果。特别是,图9示出了在原始等级数据与预测的等级之间的比较。在图9中也示出了U和V。
虽然迭代过程的上面的示例描述了执行由步骤3(其中,Us通过固定Vs来找到)跟随的步骤2(其中,Vs通过固定Us来找到),但将理解的是,可以替换地以颠倒的次序执行这些步骤。在该颠倒的实施例中,步骤1将涉及对于s=1的Vs的随机初始化。在该实施例中,Us将不需要进行随机初始化。
通常,k的值取决于所讨论的数据集合。k可以在某种程度上取决于数量为m的用户的数量为n的项目。此外,k取决于数据集合中的已知等级的密度。k是用实验方法选择的。
考虑到迭代过程的步骤2和3中的情况1-3,可以以不同的方式观看在等式的数量和未知的数量之间的平衡。在每一个系统中的等式的数量取决于在对应的行或列中的已知值的数量pi。因此,也可以使变量k的数量取决于该数量并且它可以针对不同的行和列而变化。因此,对于特别的块s,用于该块的k的值(即,ks)可以小于k。在实践中,这通过将用户向量和项目向量的k个元素中的一些元素设置为零来完成,以便减小问题的维数。因此,存在正好用来定义因子的数量的机制。因为期望的是避免不确定性,所以更好的是避免对应系统具有许多解的情况1。所有等级被使用两次,以便找到因子和余因子,使得ks的上限如下定义:
Figure DEST_PATH_IMAGE041
该等式给出了在图8和9中示出的用于9×9示例的k≤2的上限。在实践中,对于最密的块,通过实验选择的ks比上限小得多。然而,对于用户和项目具有非常少的已知值(即,关于ks的上限较小)的最后几个的块,用户向量和项目向量的长度可以通过将一些值设置为零来有效地减小。ks的下限取决于数据的质量和它包含的独立信息的量。k的值由超过所有块s的ks的最大值给出。
预测的可靠性被定义为块中的信息的数量和质量。块方法允许区分预测的可靠性。块越密,存在用于每个项目和每个用户有越多的等级,应当找回越多的因子,并且与较不密的块相比预测结果越可靠且越精确。
因此,最可靠且最精确的块是第一个块B1,并且较不可靠的块是最后的BS
估计
存在可以用于估计的三个公开可得的电影镜头数据集合(http://www.qrouplens.org/node/73)。第二电影镜头数据集合用于此处的估计。该数据集合包含如从用户明确反馈的等级、关于带有不同性质和不同大小的用户和项目的信息。此外,该数据集合包含时间戳,其不用在本方法中。数据集合中的所有用户已经按1到5的量表评定了至少20部电影。在该数据集合中存在来自6040个用户的关于3593个项目的1000209个等级。此处呈现的结果是通过使用下面预先定义的参数来找到的:
·块是基于用于特别的块中的每个用户和每个项目的等级的最小数量来定义的(见图10中示出的表格)。因此,对于第一个块,该值是173,对于第二个块,该值是153等等,直到等级的最小数量是13的最后的块。生成用于所有用户但不用于所有项目的预测,因为用于用户的等级的最小数量最初是20。总共存在九个块。第一个块是等级最稠密填入的,并且第九个块是最稀疏填充的。图10的表格中的第一列给出了在每一个块中的用户的取整数,并且表格中的第一行给出了在每一个块中的项目的取整数。
·因子的数量等于9。
·Tikhonov正则化常数取为等于0.05。
这些参数值给出了用于该特别的数据集合的最佳结果。最优值设定通过手动调整来找到。模型运行100次,其中,每次随机地去除20%。
均值平均误差(MAE)和均方根误差(RMSE)用作用于估计目的的静态测量。
Figure 684898DEST_PATH_IMAGE042
图11示出了在三种情况(“预测的”“按比例缩放的”和“取整的”)下的用于所有等级的MAE和用于正等级(预测值≥3的等级)的MAE。“预测的”值是直接从模型取得的那些值。如先前提到的,预测的等级可以高于5或低于1。因此“按比例缩放的”值按比例缩放,使得所有等级在1与5之间。当然,如图11所示,这减小了MAE。“取整的”值已经被取整为最近的整数。图11示出了取整甚至进一步减小了MAE。这发生是因为在测试数据集合中仅存在整数。因此,平均起来,预测的值接近于真实的值。正等级已经分开进行了估计,因为,对于建议系统,更重要的是,正确地预测“好”项目而非预测“坏”项目。通常,数据集合是正的并包含83%的正等级。用于正等级(使用156,000个数据点)的MAE小于用于所有等级(使用200,000个数据点)的MAE。
图12示出了在两种情况(“预测的”和“按比例缩放的”)下用于所有等级的RMSE和用于正等级的RMSE。不包括“取整的”预测,因为取整造成了由于RMSE的本性而导致的更大的特定误差,并且大误差被赋予比小误差更大的权重。
图11和12示出了MAE和RMSE随着每一个块内的数据密度变得更稀疏而增加。这确认了预测的可靠性取决于在给定的数据块内的等级的密度。
5%左右的预测的等级高于5或低于1。绝对值在0与20之间变化。预测的等级包含约15%的小于或等于2的值以及约20%的大于等于4的值。这对应于原始数据集合中的等级分布,并且允许区分“好”项目和“坏”项目。
无等级建议系统
在也适合于基于等级的建议系统的情况下,应当注意的是,本方法也可以用于无等级建议系统。无等级建议系统是包含没有等级的信息的系统。例如,用于影片的基于等级的建议系统也允许用户按1到5的量表评定他们已经观看的影片。相反,用于影片的无等级建议系统可以通过具有用于被认为是已经观看过的影片的1的“等级”来简单地指示用户是否已经观看过特别的影片,其中,所有其它条目是空的。空的用户项目对可以已经被用户观看,或者可以还没有被用户观看。无等级建议系统的另一个示例关注事务。这样的系统将包含用户被认为已经购买项目或已经使用特定服务的条目。
本方法也可以用于二进制建议系统,其中,例如,0的条目可以指示用户不喜欢该项目的用户项目对,并且1的条目可以指示用户喜欢该项目的用户项目对。
复杂性测量
在本方法中,对于每一个块求解一次优化问题,所以优化的总数等于块S的总数。这不是很多。对于每一个块Bs,待求解的线性等式的数量是ns-ns-1+ms-ms-1,其中,最大维度(pmax)s等于在块中呈现的行或列中的已知元素的最大数量。因此,用来计算因子和余因子的计算复杂性是O(N4),其中,N=max{m, n}。迭代的数量被忽略,因为它相对较小。在膝上型电脑(2.4GHz)上,对于第二电影镜头数据集合,该方法可以在小于一分钟内执行。
此外,没有必要计算并存储在R中的所有丢失的条目。仅存储A12和A21,总共制造k(n+m)个条目。根据该存储的信息,可以再生在R中的任何所要求的丢失的条目。因此,该方法的输出是因子和余因子。
总结
根据上面描述的实施例,已经呈现了新的矩阵因式分解方法,其允许递增生成从等级数据矩阵的最密部分开始的预测。将等级数据分裂为块允许通过使用迭代过程来对于每一个块求解优化问题。问题的维数也以这种方式来减小。该方法具有较低的复杂性。
在本实施例中,系统的可靠性已经与在每次迭代时考虑的块的密度相链接,从而使得可靠性成为该方法的固有部分。如直观地预期的,块越密,预测越精确。最受欢迎的项目和最有经验的用户包含足够的信息来定义关键的因子和余因子,而其它用户和项目可以仅由一些因子和余因子来表征,减小了问题的不确定性。
所描述的实施例已经通过使用公开可用的电影镜头数据集合来估计,并且示出了良好的性能。所获得的结果胜过对相同的数据集合进行估计的现有方法。用于对比的现有方法在 Mackey等人的"Mixed Membership Matrix Factorization"(2010, Proceedings of the 27th International Conference on Machine Learning, Haifa, Israel)以及Sappa等人的"Predicting Missing Ratings in Recommender Systems: Adapted Factorization Approach"(International Journal of Electronic Commerce / Winter 2009ü10, Vol. 14, No. 2, pp. 89ü108)中进行了描述。
所描述的实施例的方法良好且有效地应付了动态情况。随着时间的推移,新的等级出现,并且作为矩阵中的条目的用户项目对可以从初始块移动至更密的块。在这种情况下,仅仅需要重新计算用于当前的块和比它更稀疏的块的因子U和余因子V,而不接触其它(更密的)块。
实现
图13示意性地图示了根据本发明的实施例的系统1300。系统1300包括经由网络1304可通信地连接到建议系统1306的一个或多个用户计算机系统1302。虽然图13图示了如包括三个用户计算机系统1302的系统1300,但将理解的是,系统1300可以包括任何其它数量的用户计算机系统1302。
用户计算机系统1302和建议系统1306均可以包括一个或多个计算机系统,下面将参考图14描述其示例。
网络1304可以是能够在用户计算机系统1302与建议系统1306之间传送数据的任何网络。例如,网络1304可以包括以下的一个或多个:互联网、局域网、广域网、城域网、广播网、卫星通信网、电话网等等。
在操作中,用户(其可以是人类或机器)可以利用用户计算机系统1302来(经由网络1304)将项目的等级(或建议值)提供给建议系统1306。建议系统1306可以以上面描述的方式处理这种等级。此外,建议系统1306可以生成项目的建议值,并且(经由网络1304)将项目的建议值(再次以上面描述的方式)提供给用户计算机系统1302的用户。建议系统1306可以被布置为响应于接收用户计算机系统1302的用户已经(经由网络1304)提供给建议系统1306的用于建议值的对应请求而提供这种建议值。例如,建议系统1306可以作为主机运行包括一个或多个网页的网站,经由所述网站,用户可以提供特别的项目的建议值和/或请求,并且接收建议系统1306已经生成的项目建议值。
图14示意性地图示了示例计算机系统1400,其可以用来形成数据处理系统,所述数据处理系统形成了建议系统1306和/或用户计算机系统1302中的一个或多个用户计算机系统的整体或部分。
系统1400包括计算机1402。计算机1402包括:存储媒介1404、存储器1406、处理器1408、存储媒介接口1410、输出接口1412、输入接口1414以及网络接口1416,其都通过一个或多个通信总线1418链接在一起。
存储媒介1404可以是任何形式的非易失性数据存储装置,诸如硬盘驱动、磁盘、光盘、ROM等等中的一个或多个。存储媒介1404可以存储供处理器1408执行以便使计算机1402运行的的操作系统。存储媒介1404也可以存储形成本发明的实施例的部分的一个或多个计算机程序(或软件或指令或代码)。
存储器1406可以是适合于存储形成本发明的实施例的部分的数据和/或计算机程序(或软件或指令或代码)的任何随机访问存储器(存储单元或易失性存储媒介)。
处理器1408可以是适合于执行一个或多个计算机程序(诸如,存储在存储媒介1404上和/或在存储器1406中的那些)的任何数据处理单元,所述一个或多个计算机程序具有指令,所述指令当由处理器1408执行时使处理器1408执行根据本发明的实施例的方法,并且将系统1400配置为根据本发明的实施例的系统。处理器1408可以包括单个数据处理单元或多个数据处理单元,所述多个数据处理单元并行地、彼此合作地或彼此独立地进行操作。处理器1408在执行用于本发明的实施例的数据处理操作时可以将数据存储到存储媒介1404和/或存储器1406,和/或从存储媒介1404和/或存储器1406读取数据。
存储媒介接口1410可以是用于向计算机1402的外部的或从计算机1402可移除的数据存储装置1422提供接口的任何单元。例如,数据存储装置1422可以是光盘、磁盘、固态存储装置等等中的一个或多个。存储媒介接口1410因此可以根据其从处理器1408接收的一个或多个命令从数据存储装置1422读取数据,或者将数据写入到数据存储装置1422。
输入接口1414被布置为接收至系统1400的一个或多个输入。例如,该输入可以包括从系统1400的用户或操作员接收的输入;该输入可以包括从在系统1400的外部的装置或形成系统1400一部分的装置接收的输入。用户可以通过连接到输入接口1414或与输入接口1414通信的系统1400的一个或多个输入装置来提供输入,所述输入装置诸如是鼠标(或其它指示装置)1426和/或键盘1424。然而,将理解的是,用户可以通过一个或多个附加的或替换的输入装置来提供到计算机1402的输入。系统可以包括连接到输入接口1414或与输入接口1414通信的麦克风1425(或其它音频收发器或音频输入装置),麦克风1425能够提供表示音频数据(或音频信号)的到输入接口1414的信号。计算机1402可以将经由输入接口1414从该/每一个输入装置1424、1425、1426接收的输入存储在存储器1406中,以供处理器1408随后访问并处理,或可以将它直接传到处理器1408,使得处理器1408可以因此响应输入。
输出接口1412可以被布置为将图形/视觉输出提供给系统1400的用户或操作员。同样地,处理器1408可以被布置为命令输出接口1412形成表示期望的图形输出的图像/视频信号,并且将该信号提供给连接到输出接口1412的系统1400的监视器(或屏幕或显示单元)1420。附加地或替换地,输出接口1412可以被布置为将音频输出提供给系统1400的用户或操作员。同样地,处理器1408可以被布置为命令输出接口1412形成表示期望的音频输出的音频信号,并且将该信号提供给连接到输出接口1412的系统1400的一个或多个扬声器1421。
最终,网络接口1416提供了供计算机1402从一个或多个数据通信网络(诸如互联网或局域网)下载数据和/或将数据上传到一个或多个数据通信网络(诸如互联网或局域网)的功能。
将理解的是,在图14中图示的且在上面描述的系统1400的体系结构仅是示例性的,并且带有不同的体系结构以及附加的和/或替换的部件的其它计算机系统1400可以用在本发明的实施例中,并且可以不呈现上面提到的所有部件。例如,输入装置(例如,键盘1424、麦克风1425和鼠标1426)和/或输出装置(例如,监视器1420和扬声器1421)中的一些或全部可以与计算机1402成一整体,虽然其它的可以是(例如,经由电缆和/或无线地)通信地耦合至计算机1402的外围装置。
将理解的是,本发明的实施例可以通过使用各种不同的信息处理系统来实现。特别是,虽然图14及其讨论提供了示例性计算体系结构,这仅呈现来提供在讨论本发明的各种方面时的有用参考。当然,体系结构的描述已经为了讨论的目的进行了简化,并且它只是可以用于本发明的实施例的许多不同类型的体系结构中的一个。将理解的是,在逻辑块之间的界限仅是例证性的,并且替换的实施例可以合并逻辑块或元素,或者可以把功能的替换分解施加于各种逻辑块或元素。
将理解的是,系统1400可以是任何类型的计算机系统,诸如以下的一个或多个:游戏控制台、机顶盒、个人计算机系统、大型机、小型机、服务器、工作站、笔记本、个人数字助理以及移动电话。
将理解的是,在本发明的实施例由计算机程序来实现的范围内,承载计算机程序的存储媒介和传输媒介因此形成本发明的方面。计算机程序可以具有一个或多个程序指令或程序代码,其当由计算机(或处理器)执行时执行本发明的实施例。如本文中使用的术语“程序”可以是为在计算机系统上执行而设计的指令序列,并且可以包括子例程、函数、过程、对象方法、对象实现、可执行应用、小应用程序、小服务程序、源代码、目标代码、共享库、动态链接库和/或为在计算机系统上执行而设计的其它指令序列。存储媒介可以是磁盘(诸如硬盘驱动或软盘)、光盘(诸如CD-ROM、DVD-ROM或蓝光光盘)或者存储器(诸如ROM、RAM、EEPROM、EPROM、闪存存储器或便携式/可移除存储器装置)等等。传输媒介可以是通信信号、数据广播、在两个或更多的计算机之间的通信链路等等。

Claims (15)

1. 一种基于用于其它用户项目对的已知建议值来生成用于特定用户项目对的建议值的方法,其中,用户项目对对应于m个用户中的一个用户和n个项目中的一个项目,使得用于所述特定用户项目对的所述建议值是用于所述m个用户中的特定用户的所述n个项目中的特定项目的建议值,其中,所述m个用户中的每一个用户与对应用户向量相关联,并且所述n个项目中的每一个项目与对应项目向量相关联,所述方法包括以下步骤:
生成与所述特定用户相关联的所述用户向量;
生成与所述特定项目相关联的所述项目向量;以及
基于与所述特定用户相关联的所述用户向量和与所述特定项目相关联的所述项目向量的点积来生成用于所述特定用户项目对的所述建议值;
所述方法由用于在一系列阶段中的每一个阶段的下面的步骤来表征,每一个阶段具有各自的项目阈值和各自的用户阈值,用于一个阶段的所述项目阈值小于用于任何前面的阶段的所述项目阈值,并且用于一个阶段的所述用户阈值小于用于任何前面的阶段的所述用户阈值:
(a)从所述m个用户识别所选择的用户,并且从所述n个项目识别所选择的项目,以便定义用户项目对的子集,其中,对于每一个所选择的用户,用于在所述子集中的用户项目对的对应已知建议值的数量大于所述用户阈值,并且其中,对于每一个所选择的项目,用于在所述子集中的用户项目对的对应已知建议值的数量大于所述项目阈值;
(b)对于还没有在任何前面的阶段中选择的每一个所选择的用户,基于用于在对应于所述选择的用户的所述子集中的用户项目对的已知建议值并基于在任何前面的阶段中计算的任何对应项目向量来计算所述相关联的用户向量;以及
(c)对于还没有在任何前面的阶段中选择的每一个所选择的项目,基于用于在对应于所述选择的项目的子集中的用户项目对的已知建议值并基于在任何前面的阶段中计算的任何对应用户向量来计算所述相关联的项目向量。
2. 权利要求1所述的方法,对于所述系列中的至少一个阶段,在步骤(a)中:
对于每一个未选择的用户,用于不在所述子集中的用户项目对的已知建议值的数量小于或等于所述用户阈值,所述未选择的用户是未被选择来定义用户项目对的所述子集的来自所述m个用户的所述用户;以及
对于每一个未选择的项目,用于不在所述子集中的用户项目对的已知建议值的数量小于或等于所述项目阈值,所述未选择的项目是未被选择来定义用户项目对的所述子集的来自所述n个项目的所述项目。
3. 权利要求1或权利要求2所述的方法,其中,对于所述系列中的至少一个阶段,所述步骤(b)和(c)一起包括求用于在所述子集中的每一个用户项目对的已知建议值与用于所述选择的用户的所述用户向量和用于所述选择的项目的所述项目向量的对应点积之间的差值的最小值。
4. 权利要求中的前述任意一项所述的方法,其中,对于所述系列中的至少一个阶段,存在所述步骤(b)和(c)的一个或多个迭代,直到满足了停止标准。
5. 权利要求4所述的方法,其中,对于所述系列中的至少一个阶段,所述步骤(b)和(c)的所述多个迭代从所述步骤(b)开始,其中,所述步骤(b)的所述第一次迭代进一步包括基于用于还没有在任何前面的阶段中选择的那些所选择的项目的随机初始化的项目向量来计算所述相关联的用户向量。
6. 权利要求4所述的方法,其中,对于所述系列中的至少一个阶段,所述步骤(b)和(c)中的所述多个迭代从所述步骤(c)开始,其中,所述步骤(c)的所述第一次迭代进一步包括基于用于还没有在任何前面的阶段中选择的那些所选择的用户的随机初始化的用户向量来计算所述相关联的项目向量。
7. 权利要求4至6中的任意一项所述的方法,其中,对于所述系列中的至少一个阶段,跟随所述步骤(c)的先前的迭代的所述步骤(b)的任何迭代进一步包括基于在所述步骤(c)的所述先前的迭代中计算的项目向量来计算所述相关联的用户向量。
8. 权利要求4至7中的任意一项所述的方法,其中,对于所述系列中的至少一个阶段,跟随所述步骤(b)的先前的迭代的所述步骤(c)的任何迭代进一步包括基于在所述步骤(b)的所述先前的迭代中计算的任何用户向量来计算所述相关联的项目向量。
9. 权利要求中的前述任意一项所述的方法,其中,所述步骤(b)包括求解线性等式的系统,并且其中,所述步骤(c)包括求解线性等式的系统。
10. 权利要求中的前述任意一项所述的方法,其中,对于每一个阶段,所述项目阈值等于所述用户阈值,使得对于每一个阶段仅要求单个阈值。
11. 权利要求中的前述任意一项所述的方法,其中,每一个用户向量包括k个元素并且每一个项目向量包括k个元素,并且其中,对于所述系列中的至少一个阶段,与所述选择的用户相关联的所述用户向量和与所述选择的项目相关联的所述项目向量均具有设置为零的恒定数量C的元素,其中,C大于等于1。
12. 权利要求中的前述任意一项所述的方法,进一步包括以下步骤:
接收用于用户项目对的新的已知建议值,其中,所述新的已知建议值影响对于所述系列中的阶段s到S中的每一个阶段在步骤(a)中选择哪些用户和项目,其中,阶段S表示所述系列中的最终阶段;以及
对于所述系列中的阶段s到S中的每一个阶段,再次执行所述步骤(a)到(c),以便基于所述新的已知建议值更新所述计算的用户向量和项目向量。
13. 一种计算机程序,其当由处理器执行时使处理器执行根据权利要求1至12中的的任意一项的方法。
14. 一种数据承载媒介,承载根据权利要求13的计算机程序。
15. 一种设备,包括处理器,处理器被配置为执行根据权利要求1至12中的任意一项的方法。
CN201280044875.0A 2011-07-15 2012-07-03 建议值的生成 Pending CN103782290A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP11174265A EP2546759A1 (en) 2011-07-15 2011-07-15 Generation of recommendation values
EP11174265.6 2011-07-15
PCT/EP2012/062925 WO2013010787A1 (en) 2011-07-15 2012-07-03 Generation of recommendation values

Publications (1)

Publication Number Publication Date
CN103782290A true CN103782290A (zh) 2014-05-07

Family

ID=46508014

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280044875.0A Pending CN103782290A (zh) 2011-07-15 2012-07-03 建议值的生成

Country Status (4)

Country Link
EP (2) EP2546759A1 (zh)
CN (1) CN103782290A (zh)
WO (1) WO2013010787A1 (zh)
ZA (1) ZA201205185B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109304032A (zh) * 2018-08-17 2019-02-05 深圳市乐易网络股份有限公司 游戏系统的自适应进化方法、装置及服务器
US20230023029A1 (en) * 2021-07-14 2023-01-26 Walmart Apollo, Llc Method and apparatus pertaining to machine learning and matrix factorization to predict item inclusion

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10579752B2 (en) 2014-05-12 2020-03-03 Micro Focus Llc Generating a model based on input
US20170228810A1 (en) * 2014-09-26 2017-08-10 Hewlett-Packard Enterprise Development LP Item recomendation
US11004011B2 (en) * 2017-02-03 2021-05-11 Adobe Inc. Conservative learning algorithm for safe personalized recommendation
US11995564B2 (en) * 2018-06-21 2024-05-28 Samsung Electronics Co., Ltd. System and method for generating aspect-enhanced explainable description-based recommendations

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101287082A (zh) * 2008-05-16 2008-10-15 华东师范大学 一种引入节目热门度权重的协作过滤推荐方法
CN101329683A (zh) * 2008-07-25 2008-12-24 华为技术有限公司 推荐系统及方法
CN101482884A (zh) * 2009-01-21 2009-07-15 华东师范大学 一种基于用户偏好评分分布的协作推荐系统
US20090299996A1 (en) * 2008-06-03 2009-12-03 Nec Laboratories America, Inc. Recommender system with fast matrix factorization using infinite dimensions

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101287082A (zh) * 2008-05-16 2008-10-15 华东师范大学 一种引入节目热门度权重的协作过滤推荐方法
US20090299996A1 (en) * 2008-06-03 2009-12-03 Nec Laboratories America, Inc. Recommender system with fast matrix factorization using infinite dimensions
CN101329683A (zh) * 2008-07-25 2008-12-24 华为技术有限公司 推荐系统及方法
CN101482884A (zh) * 2009-01-21 2009-07-15 华东师范大学 一种基于用户偏好评分分布的协作推荐系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MATTHEW BRAND: "Fast online SVD revisions for lightweight recommender systems", 《SIAM INTERNATIONAL CONFERENCE ON DATA MINING》, 1 January 2003 (2003-01-01), pages 37 - 46, XP007920511 *
YEHUDA KOREN ET AL: "MATRIX FACTORIZATION TECHNIQUES FOR RECOMMENDER SYSTEMS", 《IEEE COMPUTER SOCIETY》, 31 August 2009 (2009-08-31), pages 42 - 49 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109304032A (zh) * 2018-08-17 2019-02-05 深圳市乐易网络股份有限公司 游戏系统的自适应进化方法、装置及服务器
CN109304032B (zh) * 2018-08-17 2022-02-22 深圳市乐易网络股份有限公司 游戏系统的自适应进化方法、装置及服务器
US20230023029A1 (en) * 2021-07-14 2023-01-26 Walmart Apollo, Llc Method and apparatus pertaining to machine learning and matrix factorization to predict item inclusion

Also Published As

Publication number Publication date
EP2546759A1 (en) 2013-01-16
WO2013010787A1 (en) 2013-01-24
EP2732387A1 (en) 2014-05-21
ZA201205185B (en) 2014-08-27

Similar Documents

Publication Publication Date Title
JP2021523474A (ja) グラフデータ処理方法、グラフデータの計算タスクの配布方法、装置、コンピュータプログラム、及びコンピュータ機器
Zhou et al. Large-scale parallel collaborative filtering for the netflix prize
CN102298569B (zh) 并行化的在线学习方法
EP4181026A1 (en) Recommendation model training method and apparatus, recommendation method and apparatus, and computer-readable medium
CN103782290A (zh) 建议值的生成
CN106471525A (zh) 增强神经网络以生成附加输出
CN110378434A (zh) 点击率预测模型的训练方法、推荐方法、装置及电子设备
CN108431832A (zh) 利用外部存储器扩增神经网络
CN114117216A (zh) 推荐概率预测方法及装置、计算机存储介质和电子设备
CN110008397A (zh) 一种推荐模型训练方法及装置
CN115496204A (zh) 一种跨域异质场景下的面向联邦学习的评测方法及装置
CN114511387A (zh) 产品推荐方法、装置、电子设备及存储介质
US10313457B2 (en) Collaborative filtering in directed graph
CN114493674A (zh) 一种广告点击率预测模型及方法
CN111027709B (zh) 信息推荐方法、装置、服务器及存储介质
CN114493781A (zh) 用户行为预测方法、装置、电子设备及存储介质
El Alami et al. Toward an effective hybrid collaborative filtering: a new approach based on matrix factorization and heuristic-based neighborhood
CN114528992A (zh) 一种基于区块链的电子商务业务分析模型的训练方法
JP2021135683A (ja) 学習装置、推論装置、学習方法及び推論方法
US8321262B1 (en) Method and system for generating pricing recommendations
CN111784377A (zh) 用于生成信息的方法和装置
CN117556745B (zh) 空间自适应流体仿真方法、设备及存储介质
JPWO2018168971A1 (ja) 情報処理装置、方法、プログラム、icチップ及び学習済モデル
CN112200234B (zh) 模型分类的过程中防止模型窃取的方法及装置
CN116127183A (zh) 业务推荐方法、装置、计算机设备和存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent of invention or patent application
CB02 Change of applicant information

Address after: Holland Hoofddorp

Applicant after: Ai Dide Technology Co., Ltd.

Address before: Holland Hoofddorp

Applicant before: Irdeto B.V.

COR Change of bibliographic data

Free format text: CORRECT: APPLICANT; FROM: IRDETO B.V. TO: IRDETO B. V.

Free format text: CORRECT: ADDRESS; FROM:

WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20140507

WD01 Invention patent application deemed withdrawn after publication