推荐项目的方法和装置制造方法

文档序号:6627650阅读:169来源:国知局
推荐项目的方法和装置制造方法
【专利摘要】本发明的实施例提供了一种推荐项目的方法,包括:确定N个偏好值,N个偏好值中的每个偏好值指示:多个用户中的目标用户在X个上下文类型指示的条件下,对多个项目中的目标项目的选择偏好程度;根据N个偏好值,确定偏好值张量,根据偏好值张量,确定X+2个矩阵因子;根据X+2个矩阵因子中的至少一个矩阵因子进行项目推荐。本发明的实施例可以通过根据数据稀疏的偏好值张量确定逼近张量的多个矩阵因子,然后根据至少一个矩阵因子来进行项目推荐。由于多个矩阵因子中每个矩阵因子的秩都小于最初的偏好值张量的秩,从而在进行上下文推荐时,既能保证了推荐的准确度又有效地降低了计算的复杂性。
【专利说明】推荐项目的方法和装置

【技术领域】
[0001] 本发明涉及信息【技术领域】,并更具体地,涉及一种推荐项目的方法和装置。

【背景技术】
[0002] 推荐系统通过建立用户与项目之间的二元关系,利用已有的选择过程或相似性关 系挖掘每个用户潜在感兴趣的对象,进而进行个性化推荐。
[0003] 近些年来,Adomavicius和化zhilin等人指出,把上下文信息融入推荐系统 将有利于提高推荐精确度,并提出被广泛引用的上下文感知推荐系统(context-aware recommender systems, CARS)的概念,上下文信息例如可W是用户选择项目的时间,地点、 也情等上下文的条件等。
[0004] 现有技术采用多维向量模型表示上下文信息来进行推荐。具体而言,在上下文的 条件下,利用皮尔逊(Pearson)相关系数计算所有用户对同一项目的偏好相似度,再根据 偏好相似度的计算结果将项目推荐给相似度高的用户。
[0005] 然而,上下文相关维度太多时会造成数据稀疏的问题,换句话说,在所有的用户 中,只有很少的用户对同一项目具有偏好。因此在数据稀疏的情况下,利用化arson相关系 数进行计算通常不能获得较高准确度,进而影响推荐的准确度,如果要提高准确度,要进行 很复杂的计算过程。


【发明内容】

[0006] 本发明的实施例提供了一种推荐项目的方法和装置,能够在进行上下文推荐时, 既能保证推荐的准确度又能有效地降低计算的复杂性。
[0007] 第一方面,提供了一种方法,包括:确定N个偏好值,N个偏好值中的每个偏好值指 示:多个用户中的目标用户在X个上下文类型指示的条件下,对多个项目中的目标项目的 选择偏好程度;根据N个偏好值,确定偏好值张量,其中,偏好值张量具有X+2个维度,X+2 个维度为:基于多个项目确定的一个维度、基于多个用户确定的一个维度W及X个上下文 维度,其中,X个上下文类型中的第X个上下文类型具有i,个选项,在X个上下文维度中,第 X个上下文维度是基于第X个上下文类型的个选项确定的,偏好值张量中包括分别基于 N个偏好值确定的N个元素,偏好值张量包含的元素个数大于N,X和N均为正整数,X的取 值从1到X ;根据偏好值张量,确定X+2个矩阵因子,其中,X+2个矩阵因子一一对应于X+2 个维度,X+2个矩阵因子中每个矩阵因子的秩小于偏好值张量的秩,X+2个矩阵因子的积用 于逼近偏好值张量;根据X+2个矩阵因子中的至少一个矩阵因子进行项目推荐。
[0008] 结合第一方面,在第一方面的第一种可能的实现方式中,根据偏好值张量,确定 X+2个矩阵因子,包括:根据N个差值的平方确定误差函数;通过对误差函数进行迭代计算, 确定X+2个矩阵因子;其中,X+2个矩阵因子的积为偏好值张量的逼近张量,偏好值张量的 全部元素与逼近张量的全部元素一一对应,N个差值分别为N个偏好值元素在逼近张量中 对应的N个元素与N个偏好值元素的差。
[0009] 结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式 中,通过对误差函数进行迭代计算,确定X+2个矩阵因子,包括:获取X+1个矩阵因子W及预 设的特征向量个数;通过W预定迭代次数的迭代计算,根据X+1个矩阵因子W及预设的特 征向量个数,确定至少一个特征向量;根据至少一个特征向量确定剩余的矩阵因子,使得误 差函数的值小于预定迭代阔值。
[0010] 结合第一方面的第一种或第二种可能的实现方式,在第一方面的第H种可能的实 现方式中,该方法还包括;确定权重张量,权重张量包括N个元素,N个元素分别为与N个差 值一一对应的N个权值,根据N个差值的平方确定误差函数,包括;通过对N个权值对N个 差值的平方和进行加权,确定误差函数。
[0011] 结合第一方面、第一方面的第一种至第H种中的任一种可能的实现方式,在第一 方面的第四种可能的实现方式中,根据X+2个矩阵因子中的至少一个矩阵因子进行项目推 荐,包括:从X+2个矩阵因子中,确定与当前项目推荐相关的多个矩阵因子;根据多个矩阵 因子相乘的结果,确定待推荐项目的排序;根据对待推荐项目的排序和预定的排序加权的 结果,进行项目推荐。
[0012] 结合第一方面、第一方面的第一种至第四种中的任一种可能的实现方式,在第一 方面的第五种可能的实现方式中,在确定N个偏好值之前,该方法还包括;确定M个偏好值, 其中M大于N ;根据上下文类型项目相关度W及用户项目相关度,预过滤M个偏好值,得到N 个偏好值。
[0013] 第二方面,提供了一种装置,包括;第一确定模块,确定N个偏好值,N个偏好值中 的每个偏好值指示:多个用户中的目标用户在X个上下文类型指示的条件下,对多个项目 中的目标项目的选择偏好程度;第二确定模块,根据第一确定模块确定的N个偏好值,确定 偏好值张量,其中,偏好值张量具有X+2个维度,X+2个维度为;基于多个项目确定的一个维 度、基于多个用户确定的一个维度W及X个上下文维度,其中,X个上下文类型中的第X个 上下文类型具有iy个选项,在X个上下文维度中,第X个上下文维度是基于第X个上下文 类型的iy个选项确定的,偏好值张量中包括分别基于N个偏好值确定的N个元素,偏好值 张量包含的元素个数大于N,X和N均为正整数,X的取值从1到X ;第H确定模块,根据第 二确定模块确定的偏好值张量,确定X+2个矩阵因子,其中,X+2个矩阵因子一一对应于X+2 个维度,X+2个矩阵因子中每个矩阵因子的秩小于偏好值张量的秩,X+2个矩阵因子的积用 于逼近偏好值张量;推荐模块,根据第H确定模块确定的X+2个矩阵因子中的至少一个矩 阵因子进行项目推荐。
[0014] 结合第二方面,在第二方面的第一种可能的实现方式中,第H确定模块具体用于: 根据N个差值的平方确定误差函数;通过对误差函数进行迭代计算,确定X+2个矩阵因子; 其中,X+2个矩阵因子的积为偏好值张量的逼近张量,偏好值张量的全部元素与逼近张量的 全部元素--对应,N个差值分别为N个偏好值元素在逼近张量中对应的N个元素与N个 偏好值兀素的差。
[0015] 结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式 中,在确定所述X+2个矩阵因子的方面,第H确定模块具体用于;获取X+1个矩阵因子W及 预设的特征向量个数;通过W预定迭代次数的迭代计算,根据X+1个矩阵因子W及预设的 特征向量个数,确定至少一个特征向量;根据至少一个特征向量确定剩余的矩阵因子,使得 误差函数的值小于预定迭代阔值。
[0016] 结合第二方面的第一种或第二种可能的实现方式,在第二方面的第H种可能的实 现方式中,该装置还包括;第四确定模块,确定权重张量,权重张量包括N个元素,N个元素 分别为与N个差值一一对应的N个权值,相应地,在确定所述误差函数的方面,第H确定模 块具体用于通过对N个权值对N个差值的平方和进行加权,确定误差函数。
[0017] 结合第二方面、第二方面的第一种至第H种中的任一种可能的实现方式,在第二 方面的第四种可能的实现方式中,推荐模块具体用于:从X+2个矩阵因子中,确定与当前项 目推荐相关的多个矩阵因子;根据多个矩阵因子相乘的结果,确定待推荐项目的排序;根 据对待推荐项目的排序和预定的排序加权的结果,进行项目推荐。
[0018] 结合第二方面、第二方面的第一种至第四种中的任一种可能的实现方式,在第二 方面的第五种可能的实现方式中,该装置还包括;第五确定模块,在确定N个偏好值之前, 确定M个偏好值,其中M大于N ;预过滤模块,根据上下文类型项目相关度W及用户项目相 关度,预过滤M个偏好值,得到N个偏好值。
[0019] 本发明的实施例可W通过根据数据稀疏的偏好值张量确定逼近张量的多个矩阵 因子,然后根据至少一个矩阵因子来进行项目推荐。由于多个矩阵因子中每个矩阵因子的 秩都小于最初的偏好值张量的秩,从而在进行上下文推荐时,既能保证了推荐的准确度又 有效地降低了计算的复杂性。

【专利附图】

【附图说明】
[0020] 为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使 用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于 本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可W根据该些附图获得其他 的附图。
[0021] 图1是根据本发明的一个实施例的推荐系统的示意性结构图。
[0022] 图2是根据本发明的另一实施例的推荐项目的方法的示意性流程图。
[0023] 图3是根据本发明的另一实施例的推荐项目的装置的软硬件架构。
[0024] 图4是根据本发明的另一实施例的推荐项目的装置的示意性结构图。
[0025] 图5是根据本发明的另一实施例的推荐项目的方法的示意性流程图。
[0026] 图5A是根据本发明的另一实施例的推荐电影的方法的示意图。
[0027] 图6是根据本发明的另一实施例的推荐项目的装置的示意性结构图。

【具体实施方式】
[0028] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发 明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实 施例,都应属于本发明保护的范围。
[0029] 图1是根据本发明的一个实施例的推荐系统的示意性结构图。图1的系统100可 W包括推荐项目的装置110和用户设备120。推荐项目的装置110和用户设备120可W采 用各种连接方式,例如可W是分离的,也可W是一体的。
[0030] 应理解,用户设备(肥,化er Equipment)包括但不限于桌面个人电脑、移动台 (MS,Mobile Station)、移动终端(Mobile Terminal)、移动电话(Mobile Telephone)、手机 化andset)及便携设备(port油Ie equipment)等,该用户设备可W经互联网或无线接入网 (RAN, Radio Access Network)与一个或多个核也网进行通信,例如,用户设备可W是移动 电话(或称为"蜂窝"电话)、具有无线通信功能的计算机等,用户设备还可W是便携式、袖 珍式、手持式、计算机内置的或者车载的移动装置。推荐项目的装置可W为内容提供商的服 务器,比如音乐网站或电子购物网站的服务器等。
[0031] 此外,本发明实施例适用所有的个性化服务推荐场景,结合多维上下文信息,将多 维因子分解算法时间复杂度从指数级将为线性时间复杂度。在更短的时间内提供更好的推 荐准确性和多样性,减少了算法训练的时间。本发明实施例提供的方法特别适用于电影推 荐、音乐推荐、商品推荐、广告推荐、套餐推荐等所有个性化推荐系统。
[0032] 图2是根据本发明的另一实施例的推荐项目的方法的示意性流程图。图2的方法 200由推荐项目的装置执行,包括:
[0033] 210、确定N个偏好值,N个偏好值中的每个偏好值指示;多个用户中的目标用户在 X个上下文类型指示的条件下,对多个项目中的目标项目的选择偏好程度;
[0034] 220、根据N个偏好值,确定偏好值张量,其中,偏好值张量具有X+2个维度,X+2个 维度为:基于多个项目确定的一个维度、基于多个用户确定的一个维度W及X个上下文维 度,
[00巧]其中,X个上下文类型中的第X个上下文类型具有i,个选项,在X个上下文维度 中,第X个上下文维度是基于第X个上下文类型的个选项确定的,偏好值张量中包括分别 基于N个偏好值确定的N个元素,偏好值张量包含的元素个数大于N,X和N均为正整数,X 的取值从1到X ;
[0036] 230、根据偏好值张量,确定X+2个矩阵因子,其中,X+2个矩阵因子一一对应于X+2 个维度,X+2个矩阵因子中每个矩阵因子的秩小于偏好值张量的秩,X+2个矩阵因子的积用 于逼近偏好值张量;
[0037] 240、根据X+2个矩阵因子中的至少一个矩阵因子进行项目推荐。
[0038] 应理解,本发明的实施例中的项目可W是一个泛指概念,可W指任何物品,商品或 服务等,例如衣服、音乐电影等。也可W为特指的具体的事物。另外,文中的"张量"具有维 度,模W及元素等方面。例如矩阵是一个二维张量。WMXN的矩阵为例,M和N分别为两个 维度的模,并且该矩阵中包含MXN个元素。对本实施例中的偏好值张量来说,"基于多个项 目确定的一个维度"是指多个项目中的每个项目指示该个项目维度的每个模;"基于多个用 户确定的一个维度"是指多个用户中的每个用户指示该个用户维度的每个模;在所述X个 上下文维度中,第X个上下文维度是基于第X个上下文类型的个选项确定的,是指:每个 上下文维度的选项指示该上下文维度的每个模。在偏好值张量中,N个元素中的每个元素都 对应每个维度的一个模,但是不同的元素可W对应与同一个维度的不同模。根据N个偏好 值,确定偏好值张量,可W是:将N个偏好值作为偏好值张量相应位置的元素;也可W是将 N个偏好值等比例放大或缩小,例如将N个偏好值作归一化处理后,作为偏好值张量中相应 位置的元素。N个偏好值中每个偏好值可W指示同一目标用户,也可W指示不同目标用户; 类似的,也可W指示同一目标项目,也可W指示不同的目标项目。
[0039] 还应理解,根据偏好值张量,确定X+2个矩阵因子,可W是利用数值计算的方 法,例如进行迭代计算;也可W是其他的方式,例如,可W是基于张量分解的方式,例如, CP(candecomp/parafac)分解方式、高阶SVD化i曲er Order SVD)分解方式,等等。根据X+2 个矩阵因子中的至少一个矩阵因子进行项目推荐,可W是根据获取的上下文类型的信息和 /或用户的信息,将上下文类型和/或用户对应的矩阵因子相乘,然后根据用户、项目W及 上下文类型的选项对应的偏好值来进行推荐,例如,可W推荐偏好值最大的项目,或者,根 据偏好值对项目进行排序,然后按照排序推荐所有项目或者部分项目。总之可W按照预设 的推荐规则来进行推荐。
[0040] 本发明的实施例可W通过根据数据稀疏的偏好值张量确定逼近张量的多个矩阵 因子,然后根据至少一个矩阵因子来进行项目推荐。由于多个矩阵因子中每个矩阵因子的 秩都小于最初的偏好值张量的秩,从而在进行上下文推荐时,既能保证了推荐的准确度又 有效地降低了计算的复杂性。
[0041] 换句话说,本发明的实施例提供了一种通用的上下文感知个性化推荐方法。将多 维上下文信息融入模型中,利用矩阵组织上下文信息;对特征矩阵进行因子分解,用低秩的 矩阵逼近原来的矩阵。同时又将将因子分解问题转化为优化问题,例如,利用交替最小二乘 方法单独求解模型每个参数,将算法时间复杂度降为线性(随非零特征值个数线性增长), 在更短的时间内提供更好的推荐准确性和多样性。与传统随机梯度下降方法对比,无需对 学习率进行调优,减少了算法训练的时间。
[0042] 根据本发明的实施例,根据偏好值张量,确定X+2个矩阵因子,包括:根据N个差值 的平方确定误差函数;通过对误差函数进行迭代计算,确定X+2个矩阵因子;其中,X+2个矩 阵因子的积为偏好值张量的逼近张量,偏好值张量的全部元素与逼近张量的全部元素一一 对应,N个差值分别为N个偏好值元素在逼近张量中对应的N个元素与N个偏好值元素的 差。
[0043] 应理解,误差函数的映射关系可W是和差值的平方正相关的,可W是线性的,也可 W是非线性的。由于采用了迭代计算的方式,使得计算过程在技术上更加便于实现,同时采 用了误差函数可W保证计算的精确度。
[0044] 根据本发明的实施例,通过对误差函数进行迭代计算,确定X+2个矩阵因子,包 括;获取X+1个矩阵因子W及预设的特征向量个数;通过W预定迭代次数的迭代计算,根据 X+1个矩阵因子W及预设的特征向量个数,确定至少一个特征向量;根据至少一个特征向 量确定剩余的矩阵因子,使得误差函数的值小于预定迭代阔值。
[0045] 应理解,获取X+1个矩阵因子可W是预设的。也可W是文中剩余的矩阵因子,换句 话说剩余的矩阵因子可W再次作为文中X+1个矩阵因子中的一个矩阵因子来进行迭代计 算。由于迭代计算的具有收敛的特性,使得获取的X+1个矩阵因子,可W是任意的矩阵因 子。由于误差函数的迭代阔值也是预先设定的,因此可W进一步的调整计算的精确度。此 夕F,采用特征向量使得矩阵因子的秩更小,极大的减小了复杂性并保证了精确度,根据预定 的特征向量个数来进行计算,又能够进一步地减小计算量。
[0046] 可选地,作为另一实施例,图2的方法还包括;确定权重张量,权重张量包括N个元 素,N个元素分别为与N个差值--对应的N个权值,根据N个差值的平方确定误差函数, 包括;通过对N个权值对N个差值的平方和进行加权,确定误差函数。
[0047] 由于权值张量使得对于不同的偏好值有不同权重,例如,有推荐参考价值的偏好 者具有较高的权值,因此更能增加推荐的准确度。
[0048] 根据本发明的实施例,根据X+2个矩阵因子中的至少一个矩阵因子进行项目推 荐,包括:从X+2个矩阵因子中,确定与当前项目推荐相关的多个矩阵因子;根据多个矩阵 因子相乘的结果,确定待推荐项目的排序;根据对待推荐项目的排序和预定的排序加权的 结果,进行项目推荐。
[0049] 由于对计算的结果做了进一步的处理,考虑到了其他具有推荐参考价值的因素, 更能提高推荐的准确性。而且,对排序结果加权又能更好的保证精确度。
[0050] 可选地,作为另一实施例,,图2的方法还包括:确定M个偏好值,其中M大于N ;根 据上下文类型项目相关度W及用户项目相关度,预过滤M个偏好值,得到N个偏好值。
[0051] 由于采用了预过滤的方式,过滤掉了一些不具有参考价值的偏好值,不但能提高 计算的准确性,更能减少计算的复杂度与计算量。
[0052] 下面结合图3来进一步说明本发明实施例提供的装置。
[0053] 图3是根据本发明的另一实施例的推荐项目的装置的软硬件架构。应理解,推荐 项目的装置的硬件层可W采用只要满足运算能力需求的所有硬件产品,比如多节点集群、 单节点服务器设备、移动设备等。推荐项目的装置实现各个功能可W采用的计算平台包括 但不限于化doop、Spark等平台,或者其他满足实际运算需求的计算平台。本发明的实施例 对储存数据的数据库也没有强制性要求,例如可采用化ase,MySQL, Sybase,化acle等数据 库,或者直接存储在化doop分布式文件系统化adoop Distributed File System,皿F巧等 文件系统中。此外,推荐项目的装置还包括应用层。
[0054] 图4是根据本发明的另一实施例的推荐项目的装置的示意性结构图。推荐项目的 装置400与图2的方法对应。而且,本实施例的推荐项目的装置可W根据图3所描述的系 统框架,包括硬件层、计算平台层、数据库层W及应用层。该应用层可W W软件的方式来实 现,包括第一确定模块410、第二确定模块420、第H确定模块430 W及推荐模块440,其中:
[0055] 第一确定模块410,确定N个偏好值,N个偏好值中的每个偏好值指示;多个用户中 的目标用户在X个上下文类型指示的条件下,对多个项目中的目标项目的选择偏好程度;
[0056] 第二确定模块420,根据第一确定模块确定的N个偏好值,确定偏好值张量,其中, 偏好值张量具有X+2个维度,X+2个维度为;基于多个项目确定的一个维度、基于多个用户 确定的一个维度W及X个上下文维度,
[0057] 其中,X个上下文类型中的第X个上下文类型具有个选项,在X个上下文维度 中,第X个上下文维度是基于第X个上下文类型的个选项确定的,偏好值张量中包括分别 基于N个偏好值确定的N个元素,偏好值张量包含的元素个数大于N,X和N均为正整数,X 的取值从1到X ;
[0058] 第H确定模块430,根据第二确定模块确定的偏好值张量,确定X+2个矩阵因子, 其中,X+2个矩阵因子一一对应于X+2个维度,X+2个矩阵因子中每个矩阵因子的秩小于偏 好值张量的秩,X+2个矩阵因子的积用于逼近偏好值张量;
[0059] 推荐模块440,根据第H确定模块确定的X+2个矩阵因子中的至少一个矩阵因子 进行项目推荐。
[0060] 图4的装置400还可W包括上下文处理模块,用于处理和管理上下文,为了区分某 一上下文是否W前已经发生过,对已经存在的上下文做出标识。通常在将上下文融入推荐 模型前,会将上下文标记为已经存在的上下文。
[0061] 图4的装置400还可W包括数据库,用于项目相关的信息检索,数据库中的信息包 括关于上下文、用户、规则和项目的信息。
[0062] 图4的装置400还可W包括用户交互模块,用于将推荐模块推荐的项目信息显示 给用户,并接收来自用户的反馈信息。为了减少移动设备的负担,用户交互模块也可W存放 在用户的移动设备上,而由服务器执行其余模块,该样可W突破了因鹿大的地图数据量而 导致的移动设备在运算速度和内存有限的局限,空间信息实现了完全共享。
[0063] 本发明的实施例可W通过根据数据稀疏的偏好值张量确定逼近张量的多个矩阵 因子,然后根据至少一个矩阵因子来进行项目推荐。由于多个矩阵因子中每个矩阵因子的 秩都小于最初的偏好值张量的秩,从而在进行上下文推荐时,既能保证了推荐的准确度又 有效地降低了计算的复杂性。
[0064] 根据本发明的实施例,第H确定模块具体用于;根据N个差值的平方确定误差函 数;通过对误差函数进行迭代计算,确定X+2个矩阵因子;其中,X+2个矩阵因子的积为偏好 值张量的逼近张量,偏好值张量的全部元素与逼近张量的全部元素一一对应,N个差值分别 为N个偏好值元素在逼近张量中对应的N个元素与N个偏好值元素的差。
[0065] 根据本发明的实施例,在确定所述X+2个矩阵因子时,第H确定模块具体用于;获 取X+1个矩阵因子W及预设的特征向量个数;通过W预定迭代次数的迭代计算,根据X+1个 矩阵因子W及预设的特征向量个数,确定至少一个特征向量;根据至少一个特征向量确定 剩余的矩阵因子,使得误差函数的值小于预定迭代阔值。
[0066] 可选地,作为另一实施例,图4的装置还包括;第四确定模块,确定权重张量,权重 张量包括N个元素,N个元素分别为与N个差值--对应的N个权值,相应地,在确定所述 误差函数的方面,第H确定模块具体用于通过对N个权值对N个差值的平方和进行加权,确 定误差函数。
[0067] 根据本发明的实施例,推荐模块具体用于:从X+2个矩阵因子中,确定与当前项目 推荐相关的多个矩阵因子;根据多个矩阵因子相乘的结果,确定待推荐项目的排序;根据 对待推荐项目的排序和预定的排序加权的结果,进行项目推荐。
[0068] 可选地,作为另一实施例,图4的装置还包括;第五确定模块,确定M个偏好值,其 中M大于N ;预过滤模块,根据上下文类型项目相关度W及用户项目相关度,预过滤M个偏 好值,得到N个偏好值。
[0069] 推荐项目的装置400各个模块的操作和功能可W参考上述图2的方法,为了避免 重复,在此不再费述。为了便于理解,下面结合图5更具体地描述本发明的实施例。
[0070] 图5是根据本发明的另一实施例的推荐项目的方法的示意性流程图。图5的方法 500与图2的方法对应。在本实施例中,偏好值张量共有X+2个维度。为了方便描述,将X+2 个维度记为D维,每个维度具有Si个选项,其中,i表示维度的序数。选项的概念可是是指 项目维度中的项目、用户维度中的用户W及每个上下文类型的选项。另外,本实施例结合图 5A所示出的推荐电影的例子进行直观的说明。
[0071] 510、获取偏好值。
[0072] 例如,推荐电影的上下文类型为也情和伙伴,H个用户A、B和C,项目为H个电影 TI、NH、SW和ST。换句话说,用户在不同的也情和不同的伙伴的条件下对不同的电影往往有 不同的偏好值。
[0073] 获取该H个用户在在上述2个上下文类型下的7个偏好值,其中也情该个上下文 类型具有H个选项S、N和H,分别表示用户的不同的也情;H个伙伴A、B和C,在本实施例 中使伙伴上下文类型具有A、C、AB、BC和AC五个选项。得到的7个偏好值与上下文类型, 用户和项目之间的对应关系的列表如图5A所示。应理解,列表的关系是为了更直观地说明 多维张量的特征。
[0074] 520、预过滤偏好值。
[00巧]具体地,在2个上下文类型下的7个偏好值之后,可W计算用户的每个上下文类型 的上下文选项和项目之间的相关度来预过滤7个偏好值,例如,通过相关度计算W后,判断 出列表中的某一个或多个对应关系,不具有参考的价值,则将该对应关系从列表中去除,即 在构建的张量时不考虑该信息。在本实施例中,假定7个偏好值W及对应关系都是具有参 考价值的。
[0076] 530、确定偏好值张量。
[0077] 如上,一般地,构建的张量可W表示为7;,,...。。,其中,该张量中的元素为当 用户U在第j维上下文类型的环境下对项目i产生的事件的归一化偏好值。W该电影推荐 为例,将7个偏好值进行归一化来确定偏好值张量。
[0078] 540、确定权重张量。
[0079] 例如,7个偏好值中有一些偏好值及其对应关系有比较重要的推荐价值,在实际计 算中,可W将该偏好值及其对应关系的权重设定的较高。反之,可W设定的较低。然后构建 权重张量,权重张量中的权值和偏好值张量中的偏好值--对应。
[0080] 550、确定矩阵因子。
[0081] 具体地,该矩阵因子为偏好值张量的逼近张量的矩阵因子,可W利用交替最小二 乘(Alternating Least Square, AL巧的方法进行逼近,逼近的目标为:基于权值和预设 的规则,使得预测的矩阵和原来的矩阵之间的误差平方的损失函数最小,例如损失函数如 下:
[0082] 化.,放〇)=.等。巧,''毎把'却'.J 4 =Ij--如二!
[0083] 具体的实现方式很多,例如W数值计算的方式。在本实施例中采用迭代计算的方 式来进行说明。将作为变量,即待确定的量;使其余的量都作为确定的量,例如,可W是 设定的值。然后采用迭代的方式收敛于最终的结果。迭代计算所基于的数学推导如下:L为 凸函数。对于矩阵的列,令
[0084] 2 *芝。到思)(M培。…。游如 Ij=I:…,!口 =4
[0085] 由此,可W计算出每个矩阵因子。其中,每个矩阵因子是由特征向量构成的。将D 维包含上下文信息的张量矩阵重矩阵乍为输入信息。设定隐含特征向量的 个数K W及迭代次数E。目的是输出大小为KX Si的低秩矩阵{mW} ...,D。下面的算法 可W作为一个具体的例子:
[0086]

【权利要求】
1. 一种推荐项目的方法,其特征在于,包括: 确定N个偏好值,所述N个偏好值中的每个偏好值指示:多个用户中的目标用户在X个 上下文类型指示的条件下,对多个项目中的目标项目的选择偏好程度; 根据所述N个偏好值,确定偏好值张量,其中,所述偏好值张量具有X+2个维度,所述 X+2个维度为:基于所述多个项目确定的一个维度、基于所述多个用户确定的一个维度以 及X个上下文维度, 其中,所述X个上下文类型中的第x个上下文类型具有ix个选项,在所述X个上下文 维度中,第x个上下文维度是基于第x个上下文类型的ix个选项确定的,所述偏好值张量 中包括分别基于所述N个偏好值确定的N个元素,所述偏好值张量包含的元素个数大于N, X和N均为正整数,x的取值从1到X ; 根据所述偏好值张量,确定X+2个矩阵因子,其中,所述X+2个矩阵因子一一对应于所 述X+2个维度,所述X+2个矩阵因子中每个矩阵因子的秩小于所述偏好值张量的秩,所述 X+2个矩阵因子的积用于逼近所述偏好值张量; 根据所述X+2个矩阵因子中的至少一个矩阵因子进行项目推荐。
2. 根据权利要求1所述的方法,其特征在于,所述根据所述偏好值张量,确定X+2个矩 阵因子,包括: 根据N个差值的平方确定误差函数; 通过对所述误差函数进行迭代计算,确定所述X+2个矩阵因子; 其中,所述X+2个矩阵因子的积为所述偏好值张量的逼近张量,所述偏好值张量的全 部元素与所述逼近张量的全部元素一一对应,所述N个差值分别为所述N个偏好值元素在 所述逼近张量中对应的N个元素与所述N个偏好值元素的差。
3. 根据权利要求2所述的方法,其特征在于,所述通过对所述误差函数进行迭代计算, 确定所述X+2个矩阵因子,包括: 获取X+1个矩阵因子以及预设的特征向量个数; 通过以预定迭代次数的迭代计算,根据所述X+1个矩阵因子以及预设的特征向量个 数,确定至少一个特征向量; 根据所述至少一个特征向量确定剩余的矩阵因子,使得所述误差函数的值小于预定迭 代阈值。
4. 根据权利要求2或3所述的方法,其特征在于,还包括: 确定权重张量,所述权重张量包括N个元素,所述N个元素分别为与所述N个差值一一 对应的N个权值, 所述根据N个差值的平方确定误差函数,包括: 通过对所述N个权值对所述N个差值的平方和进行加权,确定所述误差函数。
5. 根据权利要求1-4中的任一项所述的方法,其特征在于,所述根据所述X+2个矩阵因 子中的至少一个矩阵因子进行项目推荐,包括: 从所述X+2个矩阵因子中,确定与当前项目推荐相关的多个矩阵因子; 根据所述多个矩阵因子相乘的结果,确定待推荐项目的排序; 根据对所述待推荐项目的排序和预定的排序加权的结果,进行项目推荐。
6. 根据权利要求1-5中的任一项所述的方法,其特征在于,在所述确定N个偏好值之 前,还包括: 确定M个偏好值,其中M大于N ; 根据上下文类型项目相关度以及用户项目相关度,预过滤所述M个偏好值,得到所述N 个偏好值。
7. -种推荐项目的装置,其特征在于,包括: 第一确定模块,确定N个偏好值,所述N个偏好值中的每个偏好值指示:多个用户中的 目标用户在X个上下文类型指示的条件下,对多个项目中的目标项目的选择偏好程度; 第二确定模块,根据所述第一确定模块确定的N个偏好值,确定偏好值张量,其中,所 述偏好值张量具有X+2个维度,所述X+2个维度为:基于所述多个项目确定的一个维度、基 于所述多个用户确定的一个维度以及X个上下文维度, 其中,所述X个上下文类型中的第x个上下文类型具有ix个选项,在所述X个上下文 维度中,第x个上下文维度是基于第x个上下文类型的ix个选项确定的,所述偏好值张量 中包括分别基于所述N个偏好值确定的N个元素,所述偏好值张量包含的元素个数大于N, X和N均为正整数,x的取值从1到X ; 第三确定模块,根据所述第二确定模块确定的偏好值张量,确定X+2个矩阵因子,其 中,所述X+2个矩阵因子一一对应于所述X+2个维度,所述X+2个矩阵因子中每个矩阵因子 的秩小于所述偏好值张量的秩,所述X+2个矩阵因子的积用于逼近所述偏好值张量; 推荐模块,根据所述第三确定模块确定的X+2个矩阵因子中的至少一个矩阵因子进行 项目推荐。
8. 根据权利要求7所述的装置,其特征在于,所述第三确定模块具体用于: 根据N个差值的平方确定误差函数;通过对所述误差函数进行迭代计算,确定所述X+2 个矩阵因子;其中,所述X+2个矩阵因子的积为所述偏好值张量的逼近张量,所述偏好值张 量的全部元素与所述逼近张量的全部元素一一对应,所述N个差值分别为所述N个偏好值 元素在所述逼近张量中对应的N个元素与所述N个偏好值元素的差。
9. 根据权利要求8所述的装置,其特征在于,在确定所述X+2个矩阵因子的方面,所述 第三确定模块具体用于: 获取X+1个矩阵因子以及预设的特征向量个数;通过以预定迭代次数的迭代计算,根 据所述X+1个矩阵因子以及预设的特征向量个数,确定至少一个特征向量; 根据所述至少一个特征向量确定剩余的矩阵因子,使得所述误差函数的值小于预定迭 代阈值。
10. 根据权利要求8或9所述的装置,其特征在于,还包括: 第四确定模块,确定权重张量,所述权重张量包括N个元素,所述N个元素分别为与所 述N个差值--对应的N个权值, 相应地,在确定所述误差函数的方面,所述第三确定模块具体用于通过对所述N个权 值对所述N个差值的平方和进行加权,确定所述误差函数。
11. 根据权利要求7-10中的任一项所述的装置,其特征在于,所述推荐模块具体用于: 从所述X+2个矩阵因子中,确定与当前项目推荐相关的多个矩阵因子; 根据所述多个矩阵因子相乘的结果,确定待推荐项目的排序; 根据对所述待推荐项目的排序和预定的排序加权的结果,进行项目推荐。
12.根据权利要求7-11中的任一项所述的装置,其特征在于,还包括: 第五确定模块,在所述确定N个偏好值之前,确定M个偏好值,其中M大于N ; 预过滤模块,根据上下文类型项目相关度以及用户项目相关度,预过滤所述M个偏好 值,得到所述N个偏好值。
【文档编号】G06F17/30GK104331411SQ201410483829
【公开日】2015年2月4日 申请日期:2014年9月19日 优先权日:2014年9月19日
【发明者】涂丹丹, 刘权 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1