CN104854580B - 一种推荐方法和设备 - Google Patents
一种推荐方法和设备 Download PDFInfo
- Publication number
- CN104854580B CN104854580B CN201380001312.8A CN201380001312A CN104854580B CN 104854580 B CN104854580 B CN 104854580B CN 201380001312 A CN201380001312 A CN 201380001312A CN 104854580 B CN104854580 B CN 104854580B
- Authority
- CN
- China
- Prior art keywords
- layer
- parameter
- data
- score
- data layer
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种推荐方法和设备,通过并行计算提高了海量数据环境下推荐系统的推荐效率,并且通过考虑用户隐式反馈提高了推荐系统的推荐效果,其中推荐方法包括:将评分数据集中的评分数据分别放置到至少一个数据层;依据预设的推荐系统模型以及数据层中的评分数据,并行计算数据层中推荐系统模型的参数,并将每一层数据层的参数作为对应的下一层数据层的初值,直至获取推荐系统模型的最优参数;根据最优参数与推荐系统模型获取每个用户对每个产品的评分预测值,并根据评分预测值向用户推荐产品。
Description
技术领域
本发明涉及信息处理领域,尤其涉及一种推荐方法和设备。
背景技术
随着网络的不断发展,网络信息量也呈现了爆炸式的增长,信息推荐方法的出现使得用户能够在海量网络信息中获取自己感兴趣的信息,现有的信息推荐方法是将用户的显示反馈信息与隐式反馈信息融合在数据模型中,通过随机梯度下降算法求解损失函数最小化的优化问题,以串行计算的方式解出数据模型中的参数,并依据此参数对用户尚未评分的产品进行预测并对用户进行推荐预测的用户感兴趣的产品,由于同时考虑了用户的显示反馈和隐式反馈,因此这种方法有较高的推荐精度。
发明人发现现有的信息推荐方法由于采用的是串行计算的方式,并不适合在海量数据环境下进行数据处理,在海量数据环境下效率极低,同时也会影响向用户推荐的效果。
发明内容
本发明实施例提供了一种推荐方法和设备,通过并行计算提高了海量数据环境下推荐系统的推荐效率,并且通过考虑用户隐式反馈提高了推荐系统的推荐效果。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明实施例提供了一种推荐方法,包括:
将评分数据集中的评分数据分别放置到至少两个数据层,其中,所述评分数据与用户以及产品分别一一对应,且每一个所述数据层中的任意两个所述评分数据对应的用户以及产品均不相同;
依据预设的推荐系统模型以及所述数据层中的评分数据,并行计算所述数据层中推荐系统模型的参数,并将每一层数据层的参数作为对应的下一层数据层的初值,直至获取所述推荐系统模型的最优参数;其中,所述推荐系统模型为每个用户对每个产品的评分预测值与所述平均分和所述推荐系统模型的参数之间的对应关系;
根据所述最优参数与所述推荐系统模型获取每个用户对每个产品的评分预测值,并根据所述评分预测值向所述用户推荐产品。
根据第一种可能的实现方式,结合第一方面,所述推荐系统模型包括提供了隐式反馈的推荐系统模型、未提供隐式反馈的推荐系统模型、考虑时空特性的推荐系统模型和非对称的潜在因素的推荐系统模型。
根据第二种可能的实现方式,结合第一方面或者第一种可能的实现方式,所述推荐系统包括:
第一推荐系统模型
或者,第二推荐系统模型
在所述第一推荐模型和所述第二推荐模型中,表示用户u对产品i的评分预测值,μ表示所述评分数据集中的所有评分数据的平均值,bu表示所述用户u相对用户平均评分的偏移量,bi表示所述产品i相对产品平均评分的偏移量,qi表示产品因素矢量,T表示转置运算符号,pu表示用户因素矢量,
进一步的,在所述第一推荐模型中,|N(u)|表示用户u提供了隐式偏好的所有产品的集合大小,N(u)表示用户u提供了隐式偏好的所有产品的集合;表示与产品j相关联的因素矢量,其用于表征隐式反馈信息。
根据第三种可能的实现方式,结合第二种可能的实现方式,所述的方法,还包括:
根据所述评分预测值与所述评分数据的均方误差和所述推荐系统模型的参数之间的关系得到所述推荐系统模型的代价函数,其中所述代价函数包括:
第一代价函数
或者,第二代价函数
其中,||*||2表示矢量*的所有元素的平方和,λ1与λ2为正则化因子。
根据第四种可能的实现方式,结合第一方面、第一种至第三种可能的实现方式中的任一项,所述依据预设的推荐系统模型以及所述数据层中的评分数据,并行计算所述数据层中推荐系统模型的参数,并将每一层数据层的参数作为对应的下一层数据层的初值,直至获取所述推荐系统模型的最优参数,包括:
A:计算所述评分数据集中的所有所述评分数据的平均分;
B:依次采用并行计算的方式计算每一层所述数据层的参数,并将每一层所述数据层计算所得的参数作为下一层数据层的参数初值;其中,所述第一层所述数据层的参数初值由系统设置;
C:根据最后一层所述数据层计算所得的参数判断所述推荐系统模型是否收敛,若收敛,则计算结束,得到所述最优参数;若不收敛,则将最后一层所述数据层计算所得的参数作为第一层所述数据层的参数初值,重复所述步骤B、C。
根据第五种可能的实现方式,结合第四种可能的实现方式,所述步骤B,包括:
B1:根据每一层所述数据层的参数初值和所述推荐系统模型得到所述该层数据层的评分数据的初始估计值,进而根据所述该层数据层的评分数据和所述初始估计值得到所述该层数据层的评分误差;
B2:根据所述评分误差获取所述该层数据层计算所得的参数;
B3:将所述该层数据层计算所得的参数作为下一层数据层的参数初值,根据步骤B1和B2得到下一层数据层计算所得的参数,直至得到最后一层所述数据层计算所得的参数。
根据第六种可能的实现方式,结合第四种或第五种可能的实现方式,所述根据最后一层所述数据层计算所得的参数判断所述推荐系统模型是否收敛,包括:
将本次计算所得到的最后一层所述数据层计算所得的参数和前一次计算所得到的最后一层所述数据层计算所得的参数均代入所述代价函数进行计算,若代入所述代价函数进行计算的的结果之差不大于预设的门限值,则本次计算所得到的最后一层所述数据层计算所得的参数是收敛的,否则,本次计算所得到的最后一层所述数据层计算所得的参数是不收敛的。
根据第七种可能的实现方式,结合第五种可能的实现方式,所述根据所述评分误差获取所述该层数据层计算所得的参数,进一步包括:
将所述第一推荐模型中的表达式作为一个等效参数,并用辅助变量zu来表示所述等效参数,即
然后根据所述辅助变量zu的梯度Δzui=2eui·qi-λ2zu,获取所述辅助变量zu,即得到所述等效参数;以及根据所述辅助变量zu获取所述参数qi,即qi←qi+γ2·(eui·zu-λ2qi),其中,←符号表示更新符号,即用更新符号右边的计算值替代更新符号左边的变量值,更新符号右边出现的参数均为相应的参数的初值,更新符号左边出现的参数均为参数的更新值。
第二方面,提供了一种推荐设备,包括:
数据放置单元,用于将评分数据集中的评分数据分别放置到至少两个数据层,其中,所述评分数据与用户以及产品分别一一对应,且每一个所述数据层中的任意两个所述评分数据对应的用户以及产品均不相同;
并行计算单元,用于依据预设的推荐系统模型以及所述数据层中的评分数据,并行计算所述数据层中推荐系统模型的参数,并将每一层数据层的参数作为对应的下一层数据层的初值,直至获取所述推荐系统模型的最优参数;其中,所述推荐系统模型为每个用户对每个产品的评分预测值与所述平均分和所述推荐系统模型的参数之间的对应关系;
预测推荐单元,用于根据所述最优参数与所述推荐系统模型获取每个用户对每个产品的评分预测值,并根据所述评分预测值向所述用户推荐产品。
根据第一种可能的实现方式,结合第二方面,所述推荐系统模型包括提供了隐式反馈的推荐系统模型、未提供隐式反馈的推荐系统模型、考虑时空特性的推荐系统模型和非对称的潜在因素的推荐系统模型。
根据第二种可能的实现方式,结合第二方面或者第一种可能的实现方式,所述推荐系统包括:
第一推荐系统模型
或者,第二推荐系统模型
在所述第一推荐模型和所述第二推荐模型中,表示用户u对产品i的评分预测值,μ表示所述评分数据集中的所有评分数据的平均值,bu表示所述用户u相对用户平均评分的偏移量,bi表示所述产品i相对产品平均评分的偏移量,qi表示产品因素矢量,T表示转置运算符号,pu表示用户因素矢量,
进一步的,在所述第一推荐模型中,|N(u)|表示用户u提供了隐式偏好的所有产品的集合大小,N(u)表示用户u提供了隐式偏好的所有产品的集合;表示与产品j相关联的因素矢量,其用于表征隐式反馈信息。
根据第三种可能的实现方式,结合第二种可能的实现方式,还包括:代价函数生成单元,用于根据所述评分预测值与所述评分数据的均方误差和所述推荐系统模型的参数之间的关系得到所述推荐系统模型的代价函数,其中所述代价函数包括:
第一代价函数
或者,第二代价函数
其中,||*||2表示矢量*的所有元素的平方和,λ1与λ2为正则化因子。
根据第四种可能的实现方式,结合第二方面、第一种至第三种可能的实现方式中的任一项,所述并行计算单元,包括:
平均分计算子单元,用于计算所述评分数据集中的所有所述评分数据的平均分;
分层计算子单元,用于依次采用并行计算的方式计算每一层所述数据层的参数,并将每一层所述数据层计算所得的参数作为下一层数据层的参数初值;其中,所述第一层所述数据层的参数初值由系统设置;
收敛判断子单元,用于根据最后一层所述数据层计算所得的参数判断所述推荐系统模型是否收敛,若收敛,则计算结束,得到所述最优参数;若不收敛,则将最后一层所述数据层计算所得的参数作为第一层所述数据层的参数初值,并将所述参数初值传输至所述分层计算子单元重复进行分层计算。
根据第五种可能的实现方式,结合第四种可能的实现方式,所述分层计算子单元进一步用于,
评分误差生成模块,用于根据每一层所述数据层的参数初值和所述推荐系统模型得到所述该层数据层的评分数据的初始估计值,进而根据所述该层数据层的评分数据和所述初始估计值得到所述该层数据层的评分误差;
参数计算模块,用于根据所述评分误差获取所述该层数据层计算所得的参数;
计算控制模块,用于将所述该层数据层计算所得的参数作为下一层数据层的参数初值,通过所述评分误差生成模块和所述参数计算模块得到下一层数据层计算所得的参数,直至得到最后一层所述数据层计算所得的参数。
根据第六种可能的实现方式,结合第四种或第五种可能的实现方式,所述收敛判断子单元进一步用于,将本次计算所得到的最后一层所述数据层计算所得的参数和前一次计算所得到的最后一层所述数据层计算所得的参数均代入所述代价函数进行计算,若代入所述代价函数进行计算的结果之差不大于预设的门限值,则本次计算所得到的最后一层所述数据层计算所得的参数是收敛的,否则,本次计算所得到的最后一层所述数据层计算所得的参数是不收敛的。
根据第七种可能的实现方式,结合第五种可能的实现方式,所述参数计算模块进一步用于,
将所述第一推荐模型中的表达式作为一个等效参数,并用辅助变量zu来表示所述等效参数,即
然后根据所述辅助变量zu的梯度Δzui=2eui·qi-λ2zu,获取所述辅助变量zu,即得到所述等效参数;以及根据所述辅助变量zu获取所述参数qi,即qi←qi+γ2·(eui·zu-λ2qi),其中,←符号表示更新符号,即用更新符号右边的计算值替代更新符号左边的变量值,更新符号右边出现的参数均为相应的参数的初值,更新符号左边出现的参数均为参数的更新值。
第三方面,提供了一种推荐设备,包括处理器和存储器,其中,
所述处理器用于,将评分数据集中的评分数据分别放置到至少两个数据层,其中,所述评分数据与用户以及产品分别一一对应,且每一个所述数据层中的任意两个所述评分数据对应的用户以及产品均不相同;
以及依据预设的推荐系统模型以及所述数据层中的评分数据,并行计算所述数据层中推荐系统模型的参数,并将每一层数据层的参数作为对应的下一层数据层的初值,直至获取所述推荐系统模型的最优参数;其中,所述推荐系统模型为每个用户对每个产品的评分预测值与所述平均分和所述推荐系统模型的参数之间的对应关系;
以及根据所述最优参数与所述推荐系统模型获取每个用户对每个产品的评分预测值,并根据所述评分预测值向所述用户推荐产品;
所述存储器用于保存评分数据集以及处理器所执行的程序和执行的结果。
根据第一种可能的实现方式,结合第三方面,所述推荐系统模型包括提供了隐式反馈的推荐系统模型、未提供隐式反馈的推荐系统模型、考虑时空特性的推荐系统模型和非对称的潜在因素的推荐系统模型。
根据第二种可能的实现方式,结合第三方面或者第一种可能的实现方式,所述推荐系统包括:
第一推荐系统模型
或者,第二推荐系统模型
在所述第一推荐模型和所述第二推荐模型中,表示用户u对产品i的评分预测值,μ表示所述评分数据集中的所有评分数据的平均值,bu表示所述用户u相对用户平均评分的偏移量,bi表示所述产品i相对产品平均评分的偏移量,qi表示产品因素矢量,T表示转置运算符号,pu表示用户因素矢量,
进一步的,在所述第一推荐模型中,|N(u)|表示用户u提供了隐式偏好的所有产品的集合大小,N(u)表示用户u提供了隐式偏好的所有产品的集合;表示与产品j相关联的因素矢量,其用于表征隐式反馈信息。
根据第三种可能的实现方式,结合第二种可能的实现方式,所述处理器还用于,根据所述评分预测值与所述评分数据的均方误差和所述推荐系统模型的参数之间的关系得到所述推荐系统模型的代价函数,其中所述代价函数包括:
第一代价函数
或者,第二代价函数
其中,||*||2表示矢量*的所有元素的平方和,λ1与λ2为正则化因子。
根据第四种可能的实现方式,结合第三方面、第一种至第三种可能的实现方式中的任一项,所述处理器用于,
A:计算所述评分数据集中的所有所述评分数据的平均分;
B:依次采用并行计算的方式计算每一层所述数据层的参数,并将每一层所述数据层计算所得的参数作为下一层数据层的参数初值;其中,所述第一层所述数据层的参数初值由系统设置;
C:根据最后一层所述数据层计算所得的参数判断所述推荐系统模型是否收敛,若收敛,则计算结束,得到所述最优参数;若不收敛,则将最后一层所述数据层计算所得的参数作为第一层所述数据层的参数初值,重复所述步骤B、C。
根据第五种可能的实现方式,结合第四种可能的实现方式,所述处理器进一步用于,
B1:根据每一层所述数据层的参数初值和所述推荐系统模型得到所述该层数据层的评分数据的初始估计值,进而根据所述该层数据层的评分数据和所述初始估计值得到所述该层数据层的评分误差;
B2:根据所述评分误差获取所述该层数据层计算所得的参数;
B3:将所述该层数据层计算所得的参数作为下一层数据层的参数初值,根据步骤B1和B2得到下一层数据层计算所得的参数,直至得到最后一层所述数据层计算所得的参数。
根据第六种可能的实现方式,结合第四种或第五种可能的实现方式,所述处理器用于,
将本次计算所得到的最后一层所述数据层计算所得的参数和前一次计算所得到的最后一层所述数据层计算所得的参数均代入所述代价函数进行计算,若代入所述代价函数进行计算的的结果之差不大于预设的门限值,则本次计算所得到的最后一层所述数据层计算所得的参数是收敛的,否则,本次计算所得到的最后一层所述数据层计算所得的参数是不收敛的。
根据第七种可能的实现方式,结合第五种可能的实现方式,所述处理器用于根据所述评分误差获取所述该层数据层计算所得的参数,进一步包括:
所述处理器将所述第一推荐模型中的表达式作为一个等效参数,并用辅助变量zu来表示所述等效参数,即
然后根据所述辅助变量zu的梯度Δzui=2eui·qi-λ2zu,获取所述辅助变量zu,即得到所述等效参数;以及根据所述辅助变量zu获取所述参数qi,即qi←qi+γ2·(eui·zu-λ2qi),其中,←符号表示更新符号,即用更新符号右边的计算值替代更新符号左边的变量值,更新符号右边出现的参数均为相应的参数的初值,更新符号左边出现的参数均为参数的更新值。
本发明实施例提供的推荐方法和设备,通过并行计算提高了海量数据环境下推荐系统的推荐效率,并且通过考虑用户隐式反馈提高了推荐系统的推荐效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种推荐方法流程示意图;
图2为本发明实施例提供的一种推荐方法的详细流程图;
图3A为本发明实施例所提供的一种评分数据的放置方法流程图;
图3B为本发明实施例所提供的另一种评分数据的放置方法流程图;
图4为本发明实施例所提供的最优参数的求解流程示意图;
图5A为本发明实施例所提供的一种参数更新方法的示意图;
图5B为本发明实施例所提供的另一种参数更新方法的示意图;
图6为本发明实施例提供的一种推荐设备结构图;
图7为本发明实施例提供的另一种推荐设备的结构图;
图8为本发明实施例提供的一种推荐设备的硬件装置图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,为本发明实施例提供的一种推荐方法的流程示意图,包括:
S101:将评分数据集中的评分数据分别放置到至少两个数据层,其中,评分数据与用户以及产品分别一一对应,且每一个数据层中的任意两个评分数据对应的用户以及产品均不相同;
S102:依据预设的推荐系统模型以及数据层中的评分数据,并行计算数据层中推荐系统模型的参数,并将每一层数据层的参数作为对应的下一层数据层的初值,直至获取推荐系统模型的最优参数;其中,推荐系统模型为每个用户对每个产品的评分预测值与平均分和推荐系统模型的参数之间的对应关系;
示例性的,推荐系统模型可以包括提供了隐式反馈的推荐系统模型、未提供隐式反馈的推荐系统模型、考虑时空特性的推荐系统模型和非对称的潜在因素的推荐系统模型;
示例性的,推荐系统模型还可以包括:
第一推荐系统模型
或者,第二推荐系统模型
在第一推荐模型和第二推荐模型中,表示用户u对产品i的评分预测值,μ表示评分数据集中的所有评分数据的平均值,bu表示用户u相对用户平均评分的偏移量,bi表示产品i相对产品平均评分的偏移量,qi表示产品因素矢量,T表示转置运算符号,pu表示用户因素矢量;
进一步的,在第一推荐模型中,|N(u)|表示用户u提供了隐式偏好的所有产品的集合大小,N(u)表示用户u提供了隐式偏好的所有产品的集合;表示与产品j相关联的因素矢量,其用于表征隐式反馈信息。
相应的,根据推荐系统模型得到的预测值与评分数据的均方误差和推荐系统模型的参数之间的关系得到推荐系统模型的代价函数,其中代价函数包括:
第一代价函数
或者,第二代价函数
其中,||*||2表示矢量*的所有元素的平方和,λ1与λ2为正则化因子。
示例性的,依据预设的推荐系统模型以及数据层中的评分数据,并行计算数据层中推荐系统模型的参数,并将每一层数据层的参数作为对应的下一层数据层的初值,直至获取推荐系统模型的最优参数,包括:
A:计算评分数据集中的所有评分数据的平均分;
B:依次采用并行计算的方式计算每一层数据层的参数,并将每一层数据层计算所得的参数作为下一层数据层的参数初值;其中,第一层数据层的参数初值由系统设置;
进一步的,步骤B,包括:
B1:根据每一层数据层的参数初值和推荐系统模型得到该层数据层的评分数据的初始估计值,进而根据该层数据层的评分数据和初始估计值得到该层数据层的评分误差;
B2:根据评分误差获取该层数据层计算所得的参数;
B3:将该层数据层计算所得的参数作为下一层数据层的参数初值,根据步骤B1和B2得到下一层数据层计算所得的参数,直至得到最后一层数据层计算所得的参数。
C:根据最后一层数据层计算所得的参数判断推荐系统模型是否收敛,若收敛,则计算结束,得到最优参数;得到最优参数,若不收敛,则将最后一层数据层计算所得的参数作为第一层数据层的参数初值,重复步骤B、C。
示例性的,根据最后一层数据层计算所得的参数判断推荐系统模型是否收敛,包括:
将本次计算所得到的最后一层数据层计算所得的参数和前一次计算所得到的最后一层数据层计算所得的参数均代入代价函数进行计算,若代入代价函数进行计算的的结果之差不大于预设的门限值,则本次计算所得到的最后一层数据层计算所得的参数是收敛的,否则,本次计算所得到的最后一层数据层计算所得的参数是不收敛的。
S103:根据最优参数与推荐系统模型获取每个用户对每个产品的评分预测值,并根据评分预测值向用户推荐产品;
本实施例提供了一种推荐方法,通过并行计算提高了海量数据环境下推荐系统的推荐效率,并且通过考虑用户隐式反馈提高了推荐系统的推荐效果。
如图2所示,为本实施例提供的一种推荐方法的详细流程图,包括;
S201:将评分数据集中的评分数据分别放置到至少两个数据层;
示例性的,评分数据集可以通过获取用户对产品的评分数据得到,也可以通过用户的浏览、购买记录信息得到,不仅可以得到用户对产品的显示反馈,也可以获取到用户偏好的隐式反馈,本发明实施例对此不做任何限制,优选的,评分数据集可以通过用户对产品的评分数据获得,本领域技术人员可以理解的,用户对产品的评分数据不仅显示的反馈了用户对产品的评价,而且也通过用户对产品评分的行为隐式的反馈了用户对产品的偏好,优选的,在本实施例中,评分数据集可以通过矩阵形式表示,其中,矩阵的不同行表示不同用户,矩阵的不同列表示不同产品;
进一步的,评分数据与用户以及产品分别一一对应,本领域技术人员可以理解的,由于评分数据所放置的数据层可以通过矩阵的形式进行表示,同时评分数据集也可以通过矩阵的形式进行表示,其中,矩阵的不同行表示不同用户,矩阵的不同列表示不同产品,于是可以将评分数据集中的评分数据分别放置到至少两个数据层矩阵,并且所有数据层矩阵均与评分数据集的矩阵具有相同的行数和相同的列数,当每一个数据层中的任意两个评分数据对应的用户以及产品均不相同,即每一个数据层矩阵中的任意两个评分数据均不在同一行且均不在同一列的时候,就可以满足同一层数据层中的所有评分数据之间互相没有依赖关系,因此可以对同一层数据层中的评分数据进行并行计算,具体的放置步骤本发明实施例不作任何限定,任何能够使得每一个数据层矩阵中的任意两个评分数据均不在同一行且均不在同一列的放置方法均在本发明实施例的保护范围内;
可选的,如图3A所示,本实施例优选的一种放置方法包括:
3A01:选取评分数据集中的一个评分数据,将其放在第一层数据层矩阵中对应于该评分数据的用户和产品的位置上,此时,最后一层数设置为lmax=1,其中,选取的方式本实施例不做限定,后续从评分数据集中选取数据的方式与第一次选取的方式相同,在此不作赘述;
3A02:选取下一个评分数据,并从第一层数据层矩阵开始到最后一层对应的数据层矩阵,依次与其中的所有评分数据进行比较,是否满足评分数据在数据层矩阵中的对应位置所在的行和列均没有评分数据,若满足,则该评分数据放置于最先满足的数据层矩阵,若直至最后一层lmax对应的数据层矩阵也不满足,则最后一层数更新为lmax←lmax+1,其中←符号表示将符号左边的数据更新为符号右边的数据,下同,并且将该评分数据放置于更新后的最后一层数据层;
3A03:对评分数据集中剩余的评分数据依次重复步骤302直至评分数据集中所有的评分数据均放置完毕。
例如,评分数据集为:
通过如图3A所示的放置方法,示例性的,具体操作过程如下:评分数据集中选出一个评分数据rui,将其放入第一层,然后再选择第二个评分数据ru′i′,判断u′和u是否为同一个用户以及i′和i是否为同一个产品,当u′≠u且i′≠i时,该评分数据ru′i′放入第一层,否则将其放入第二层。随后再取出第三个评分数据ru″i″,如果该评分数据所对应的用户u′′和产品i′′与放置在第一层的用户和产品均不相同时,则将其放入第一层,否则与第二层的评分数据对应的用户和产品进行比较,当满足u′′≠ulayer2且i′′≠ilayer2时,则将其放入第二层,否则放入第三层,这里ulayer2表示第二层的用户,ilayer2表示第二层的产品。依此类推,直到集合κ的所有评分数据均放置完毕。
可以依次得到5个数据层,从第一层数据层到最后一层也就是第五层数据层依次为:
(u1,i1,3)(u2,i2,2)(u3,i3,5)(u4,i5,3)(u5,i6,5)(u6,i4,3) l1(Layer1)
(u1,i4,2)(u2,i5,1)(u3,i1,4)(u4,i3,2)(u5,i2,1) l2(Layer2)
(u2,i4,2)(u3,i5,5)(u6,i1,1)(u7,i3,3) l3(Layer3)
(u3,i6,2)(u6,i2,2)(u7,i4,5) l4(Layer4)
(u7,i5,2) l5(Layer5)
通过矩阵形式表示可以是:
其中,矩阵中出现的*表示该位置对应的用户没有对该位置对应的产品进行评分,可以得到A=l1+l2+l3+l4+l5。
可选的,如图3B所示,本实施例优选的另一种放置方法包括:
3B01:选取评分数据集中的一个评分数据,将其放在第一层数据层中对应于该评分数据的用户和产品的位置上,此时,最后一层数lmax=1,
3B02:从评分数据集中选取的第二个评分数据开始,将该评分数据依次从最后一层数据层直至第一层数据层进行比较,直至能够从最后一层到第一层数据层中找出最后一个满足该评分数据在数据层矩阵中对应位置的所在行和所在列上没有其他评分数据,则该评分数据放置于最后一个满足的数据层的对应位置,若从最后一层数到第一层均没有满足的数据评分矩阵,则最后一层数更新为lmax←lmax+1,并且将该评分数据放置于更新后的最后一层数对应的数据层;
3B03:对评分数据集中剩余的评分数据依次重复步骤3B02直至评分数据集中所有的评分数据均放置完毕。
例如,仍以矩阵A为例,通过如图3B所示的放置方法,示例性的,具体操作过程如下:
从评分数据集中选出一个评分数据rui,将其放入第一层,然后再选择第二个评分数据ru′i′,判断u′和u是否为同一个用户以及i′和i是否为同一个产品,当u′≠u且i′≠i时,该评分数据ru′i′放入第一层,否则将其放入第二层。随后再取出第三个评分数据ru″i″,将其与第二层已放置的评分数据进行比较(如果有第二层的话),如果该评分数据所对应的用户u′′和产品i′′与放置在第二层的用户u′和产品i′均不相同时,则继续将其与第一层已放置的评分数据进行比较,当与第一层已放置的评分数据也满足u′′≠u且i′′≠i时则将其放入第一层,否则放置第二层,而当该评分数据所对应的用户u′′和产品i′′与放置在第二层的用户u′和产品i′满足u′′=u′或者i′′=i′任意一个条件时,则直接将其放入第三层。依此类推,直到评分数据集中的所有评分数据均放置完毕,可以依次得到7个数据层,从第一层数据层到最后一层也就是第七层数据层依次为:
(u1,i1,3)(u2,i2,2) l1(Layer1)
(u1,i4,2)(u3,i1,4)(u5,i2,1) l2(Layer2)
(u2,i4,2)(u3,i3,5)(u6,i1,1) l3(Layer3)
(u2,i5,1)(u4,i3,2)(u6,i2,2) l4(Layer4)
(u3,i5,5)(u6,i4,3)(u7,i3,3) l5(Layer5)
(u3,i6,2)(u4,i5,3)(u7,i4,5) l6(Layer6)
(u5,i6,5)(u7,i5,2) l7(Layer7)
通过矩阵形式表示为:
其中,矩阵中出现的*表示该位置对应的用户没有对该位置对应的产品进行评分,可以得到A=l1+l2+l3+l4+l5+l6+l7。
S202:依据预设的推荐系统模型以及数据层中的评分数据,并行计算数据层中推荐系统模型的参数,并将每一层数据层的参数作为对应的下一层数据层的初值,直至获取推荐系统模型的最优参数;
示例性的,预设的系统模型可以是考虑用户隐式反馈的潜在因素模型,也可以是仅仅基于现实反馈的潜在因素模型,还可以包括考虑时空特性的推荐系统模型、非对称的潜在因素模型等,本发明实施例对此不做任何限定,
进一步的,在本实施例中,构建了一个改进的考虑用户隐式反馈的第一推荐系统模型,如式(1),以及一个未考虑用户隐式反馈的第二推荐系统模型,如式(2):
(1)
(2)
式(1)和式(2)中,表示用户u对产品i的评分预测值,μ表示评分数据集中的所有评分数据的平均值,bu表示用户u相对用户平均评分的偏移量,bi表示产品i相对产品平均评分的偏移量,qi表示产品因素矢量,T表示转置运算符号,pu表示用户因素矢量;
进一步在式(1)中,|N(u)|表示用户u提供了隐式偏好的所有产品的集合大小,N(u)表示用户u提供了隐式偏好的所有产品的集合;表示与产品j相关联的因素矢量,其用于表征隐式反馈信息。而且bu,bi,qi,pu和yj为用户的推荐系统模型的未知参数;
示例性的,根据推荐系统模型得到的预测值与评分数据的均方误差和推荐系统模型的参数之间的关系得到推荐系统模型的代价函数,以及根据步骤S201得到的分层数据矩阵的评分数据,通过对上述模型有关的代价函数最优化问题的求解得到上述模型的未知参数,即并行计算数据层中推荐系统模型的参数,并将每一层数据层的参数作为对应的下一层数据层的初值,直至获取推荐系统模型的最优参数,其中,最优参数就是上述模型的未知参数最优值,具体的,在本实施例中,第一推荐系统模型和第二推荐系统模型有关的代价函数可以分别表示为式(3)的第一代价函数和式(4)的第二代价函数:
(3)
(4)
其中,||*||2表示矢量*的所有元素的平方和,λ1与λ2为正则化因子。
本领域技术人员可以理解的,对式(3)与式(4)进行最优化问题的求解,具体的求解过程具有相似性,不再赘述,如图4所示,对于式(3)进行最优化问题的求解,可以包括:
401、计算评分数据集中的所有评分数据的平均分μ;
402、依次采用并行计算的方式计算每一层数据层的参数,并将每一层数据层计算所得的参数作为下一层数据层的参数初值;
示例性的,本实施例中,在第一次计算之前,可以将第一层数据层的参数bu,bi,qi,pu和yj以及λ1与λ2的初值进行随机设置,为了简便起见,参数bu,bi,qi,pu和yj的初值可以设置为标量参数为0,矢量参数为向量其中,数字0上方的箭头符号为向量符号,而λ1与λ2可以任意设置为一个为比较小的正值,本发明实施例对此不作任何限定,用来表示正则化因子;
示例性的,从第一层数据层开始,依次的并行计算该层数据层的参数bu,bi,qi,pu和yj的值,并将计算所得的参数值作为下一层数据层的参数bu,bi,qi,pu和yj的初值,直至计算完最后一层数据层的参数bu,bi,qi,pu和yj,得到最后一层数据层计算所得的参数;具体的计算过程如下:
根据第一层数据层的参数初值对第一层数据层所包含的评分数据对应的未知参数bu,bi,qi,pu和yj进行更新计算,由于同一层矩阵的评分数据之间没有相互依赖的关系,因此同一层矩阵的不同评分数据对应的未知参数bu,bi,qi,pu和yj的更新计算可以并行进行,并将更新后的参数作为下一层数据层的参数初值对下一层数据层所包含的评分数据对应的参数进行更新计算,直至最后一层数据层所包含的评分数据对应的参数进行更新计算完毕,得到最后一层数据层计算所得的参数;
优选的,在本实施例中,可以通过梯度下降法进行更新计算,由于所有评分数据对应的参数的更新方法均相同,本领域技术人员可以理解,通过对一个评分数据rui对应的的参数bu,bi,qi,pu和yj进行更新计算步骤进行描述后,可以无需创造性的将计算步骤应用在其他的评分数据中,如图4所示,具体的步骤如下:
4021、根据每一层数据层的参数初值和式(1)所示的推荐系统模型得到评分数据rui的初始估计值进而根据该层数据层的评分数据和初始估计值得到该层数据层的评分误差eui;
4022、根据评分误差eui得到负梯度方向的该层数据层计算所得的参数的更新值,如图5A所示的示意图,包括:
bu←bu+γ1·(eui-λ1bu) (5)
bi←bi+γ1·(eui-λ1bi) (6)
pu←pu+γ2·(eui·qi-λ2pu) (7)
其中,←符号表示更新符号,即用更新符号右边的计算值替代更新符号左边的变量值,在本实施例中,式(5)-式(9)的更新符号右边出现的参数均为相应的参数的初值,更新符号左边出现的参数均为参数的更新值,γ1和γ2为迭代步长,本实施例中优选的,可以是一个设定的合适的常量,即可以设定γ1和γ2为某个常量,或者也可以是一个与迭代次数相关的量,即随着迭代次数的增加而逐渐减少迭代步长。如γ1*0.96NumOfIter和γ2*0.96NumOfIter,其中,NumOfIter表示迭代次数。本发明实施例对此不做限定。
本领域技术人员可以理解的,式(5)-式(8)均可以根据相应的计算式进行参数的更新,计算过程不再赘述,相应的,对式(4)的最优化问题的求解只需要进行式(5)-式(8)的更新计算,得到参数bu,bi,qi,pu即可;
但是对于式(9)的计算还需要结合评分数据集中的评分数据依次对yj进行串行计算,降低了运算效率,因此本发明实施例提供了一种针对式(9)的计算方法,如图5A所示的示意图,具体实施方式为:
当同一层矩阵有多个yj需要计算时,利用评分数据集中yj所表示的产品j对应的用户来并行计算其对应的梯度Δyj,然后将产品j对应的所有的梯度Δyj进行聚合得到该层yj的值,比如在评分数据集中,用户1,用户2,和用户6对产品4(j=4)进行了评分,则可以并行计算用户1,用户2,和用户6对应的产品j的梯度其中,
然后通过得到该层yj的更新值,其中,为yj在该层计算时的初值。
此外,本发明实施例提供了另一种针对式(8)和式(9)的等效计算方法,如图5B所示的示意图,具体实施方式为:
将第一推荐模型中的表达式作为一个等效参数,并用辅助变量zu来表示所述等效参数,即其中辅助变量zu与表达式等价,此时,第一推荐模型等价为其参数为bu,bi,qi,zu;
然后根据辅助变量zu的梯度Δzui=2eui·qi-λ2zu,并由此得到辅助变量zu的更新公式其中为zu在该层计算时的初值。
通过本方法,可以只通过对辅助变量zu的更新过程来替代对参数pu和yj的更新过程,此外,由于引入了辅助变量zu,式(8)的关于参数qi的更新也可以做出相应的变动,即qi的更新公式变为其中为qi在该层计算时的初值。
由此可知,引入辅助变量zu一方面简化了计算,另一方面由于消除了yj的计算,推荐模型的参数求解减少了一层内循环,从而在确保同样精度的前提下极大地提升了运算速度。
4023,将该层数据层计算所得的参数作为下一层数据层的参数初值,根据步骤4021和4022得到下一层数据层计算所得的参数,直至得到最后一层数据层计算所得的参数。
403:根据最后一层数据层计算所得的参数判断推荐系统模型是否收敛,若收敛,则计算结束,得到最优参数;得到最优参数,若不收敛,则将最后一层数据层计算所得的参数作为第一层数据层的参数初值,重复步骤402,403;
示例性的,本次计算所得到的最后一层数据层计算所得的参数和前一次计算所得到的最后一层数据层计算所得的参数均代入式(3)或式(4)的代价函数进行计算,如果两个计算结果之差不大于预设的门限值,则可以认为本次计算所得到的最后一层数据层计算所得的参数为最优参数,如果大于预设的门限值,则将本次计算所得到的最后一层数据层计算所得的参数是不收敛的,并将本次计算所得到的最后一层数据层计算所得的参数作为下次计算的第一层数据层的参数初值,继续计算推荐系统模型的参数。
S203:根据最优参数与推荐系统模型获取每个用户对每个产品的评分预测值,并根据评分预测值向用户推荐产品。
示例性的,本实施例中,将获得的最优参数带入式(1)或式(2),则可以获得每个用户对每个产品的评分预测值,可以通过将相同用户对所有产品的评分预测值进行排列,选择评分预测值最高的预设数量的产品推荐给用户。
S204:产品推荐之后,用户对产品做出的新的评分数据输入到推荐系统中,以使得推荐系统能够根据实时的更新推荐系统模型的参数,来保证高精度和高效率推荐的实时性。
本实施例提供了一种推荐方法,通过并行计算提高了海量数据环境下推荐系统的推荐效率,并且通过考虑用户隐式反馈提高了推荐系统的推荐效果。
本发明实施例提供了一种推荐设备60,如图6所示,包括:
数据放置单元601,用于将评分数据集中的评分数据分别放置到至少两个数据层,其中,评分数据与用户以及产品分别一一对应,且每一个数据层中的任意两个评分数据对应的用户以及产品均不相同;
并行计算单元602,用于依据预设的推荐系统模型以及数据层中的评分数据,并行计算数据层中推荐系统模型的参数,并将每一层数据层的参数作为对应的下一层数据层的初值,直至获取推荐系统模型的最优参数;其中,推荐系统模型为每个用户对每个产品的评分预测值与平均分和所述推荐系统模型的参数之间的对应关系;
预测推荐单元603,用于根据最优参数与推荐系统模型获取每个用户对每个产品的评分预测值,并根据评分预测值向用户推荐产品。
示例性的,评分数据集可以通过获取用户对产品的评分数据得到,也可以通过用户的浏览、购买记录信息得到,不仅可以得到用户对产品的显示反馈,也可以获取到用户偏好的隐式反馈,本发明实施例对此不做任何限制,优选的,评分数据集可以通过用户对产品的评分数据获得,本领域技术人员可以理解的,用户对产品的评分数据不仅显示的反馈了用户对产品的评价,而且也通过用户对产品评分的行为隐式的反馈了用户对产品的偏好,优选的,在本实施例中,评分数据集可以通过矩阵形式表示,其中,矩阵的不同行表示不同用户,矩阵的不同列表示不同产品;
进一步的,评分数据与用户以及产品分别一一对应,本领域技术人员可以理解的,由于评分数据所放置的数据层可以通过矩阵的形式进行表示,同时评分数据集也可以通过矩阵的形式进行表示,其中,矩阵的不同行表示不同用户,矩阵的不同列表示不同产品,于是可以将评分数据集中的评分数据分别放置到至少两个数据层矩阵,并且所有数据层矩阵均与评分数据集的矩阵具有相同的行数和相同的列数,当每一个数据层中的任意两个评分数据对应的用户以及产品均不相同,即每一个数据层矩阵中的任意两个评分数据均不在同一行且均不在同一列的时候,就可以满足同一层数据层中的所有评分数据之间互相没有依赖关系,因此可以对同一层数据层中的评分数据进行并行计算,具体的放置步骤本发明实施例不作任何限定,任何能够使得每一个数据层矩阵中的任意两个评分数据均不在同一行且均不在同一列的放置方法均在本发明实施例的保护范围内;
进一步的,在本实施例中,数据放置单元601可以用于实现如图3所示放置方法,包括:
数据放置单元601选取评分数据集中的一个评分数据,将其放在第一层数据层矩阵中对应于该评分数据的用户和产品的位置上,此时,最后一层数lmax=1,其中,选取的方式本实施例不做限定,后续从评分数据集中选取数据的方式与第一次选取的方式相同,在此不作赘述;
数据放置单元601选取下一个评分数据,并从第一层数据层矩阵开始到最后一层对应的数据层矩阵,依次与其中的所有评分数据进行比较,是否满足评分数据在数据层矩阵中的对应位置所在的行和列均没有评分数据,若满足,则该评分数据放置于最先满足的数据层矩阵,若直至最后一层lmax对应的数据层矩阵也不满足,则最后一层数更新为lmax←lmax+1,其中←符号表示将符号左边的数据更新为符号右边的数据,下同,并且将该评分数据放置于更新后的最后一层数据层;
数据放置单元601对评分数据集中剩余的评分数据依次重复上述放置评分数据的过程直至评分数据集中所有的评分数据均放置完毕。
例如,评分数据如矩阵A所示:
数据放置单元601可以通过如图3A所示的放置方法,示例性的,具体操作过程如下:评分数据集中选出一个评分数据rui,将其放入第一层,然后再选择第二个评分数据ru′i′,判断u′和u是否为同一个用户以及i′和i是否为同一个产品,当u′≠u且i′≠i时,该评分数据ru′i′放入第一层,否则将其放入第二层。随后再取出第三个评分数据ru″i″,如果该评分数据所对应的用户u′′和产品i′′与放置在第一层的用户和产品均不相同时,则将其放入第一层,否则与第二层的评分数据对应的用户和产品进行比较,当满足u′′≠ulayer2且i′′≠ilayer2时,则将其放入第二层,否则放入第三层,这里!ulayer2表示第二层的用户,ilayer2表示第二层的产品。依此类推,直到集合κ的所有评分数据均放置完毕。
可以依次得到5个数据层,从第一层数据层到最后一层也就是第五层数据层依次为:
(u1,i1,3)(u2,i2,2)(u3,i3,5)(u4,i5,3)(u5,i6,5)(u6,i4,3) l1(Layer1)
(u1,i4,2)(u2,i5,1)(u3,i1,4)(u4,i3,2)(u5,i2,1) l2(Layer2)
(u2,i4,2)(u3,i5,5)(u6,i1,1)(u7,i3,3) l3(Layer3)
(u3,i6,2)(u6,i2,2)(u7,i4,5) l4(Layer4)
(u7,i5,2) l5(Layer5)
通过矩阵形式表示可以是:
其中,矩阵中出现的*表示该位置对应的用户没有对该位置对应的产品进行评分,并且A=l1+l2+l3+l4+l5。
进一步的,在本实施例中,数据放置单元601也可以用于实现如图3B所示放置方法,包括:
数据放置单元601选取评分数据集中的一个评分数据,将其放在第一层数据层中对应于该评分数据的用户和产品的位置上,此时,最后一层数lmax=1,
数据放置单元601从评分数据集中选取的第二个评分数据开始,将该评分数据依次从最后一层数对应的数据层直至第一层数据层进行比较,直至能够从最后一层数到第一层数据层中找出最后一个满足该评分数据在数据层中对应位置的所在行和所在列上没有其他评分数据,则该评分数据放置于最后一个满足的数据层的对应位置,若从最后一层数到第一层均没有满足的数据评分矩阵,则最后一层数更新为lmax←lmax+1,并且将该评分数据放置于更新后的最后一层数对应的数据层;
数据放置单元601对评分数据集中剩余的评分数据依次重复上述对第二个评分数据的放置过程直至评分数据集中所有的评分数据均放置完毕。
例如,仍以矩阵A为例,通过如图3B所示的放置方法,示例性的,具体操作过程如下:
从评分数据集中选出一个评分数据rui,将其放入第一层,然后再选择第二个评分数据ru′i′,判断u′和u是否为同一个用户以及i′和i是否为同一个产品,当u′≠u且i′≠i时,该评分数据ru′i′放入第一层,否则将其放入第二层。随后再取出第三个评分数据ru″i″,将其与第二层已放置的评分数据进行比较(如果有第二层的话),如果该评分数据所对应的用户u′′和产品i′′与放置在第二层的用户u′和产品i′均不相同时,则继续将其与第一层已放置的评分数据进行比较,当与第一层已放置的评分数据也满足u′′≠u且i′′≠i时则将其放入第一层,否则放置第二层,而当该评分数据所对应的用户u′′和产品i′′与放置在第二层的用户u′和产品i′满足u′′=u′或者i′′=i′任意一个条件时,则直接将其放入第三层。依此类推,直到评分数据集中的所有评分数据均放置完毕,可以依次得到7个数据层,从第一层数据层到最后一层也就是第七层数据层依次为:
(u1,i1,3)(u2,i2,2) l1(Layer1)
(u1,i4,2)(u3,i1,4)(u5,i2,1) l2(Layer2)
(u2,i4,2)(u3,i3,5)(u6,i1,1) l3(Layer3)
(u2,i5,1)(u4,i3,2)(u6,i2,2) l4(Layer4)
(u3,i5,5)(u6,i4,3)(u7,i3,3) l5(Layer5)
(u3,i6,2)(u4,i5,3)(u7,i4,5) l6(Layer6)
(u5,i6,5)(u7,i5,2) l7(Layer7)
通过矩阵形式表示为:
其中,*表示该位置对应的用户没有对该位置对应的产品进行评分,可以得到A=l′1+l′2+l′3+l′4+l′5+l′6+l′7。
示例性的,预设的系统模型可以是考虑用户隐式反馈的潜在因素模型,也可以是仅仅基于现实反馈的潜在因素模型,还可以包括考虑时空特性的推荐系统模型、非对称的潜在因素模型等,本发明实施例对此不做任何限定,
进一步的,在本实施例中,构建了一个改进的考虑用户隐式反馈的第一推荐系统模型,如式(1),以及一个未考虑用户隐式反馈的第二推荐系统模型,如式(2);
在式(1)和式(2)中,表示用户u对产品i的评分预测值,μ表示评分数据集中的所有评分数据的平均值,bu表示用户u相对用户平均评分的偏移量,bi表示产品i相对产品平均评分的偏移量,qi表示产品因素矢量,T表示转置运算符号,pu表示用户因素矢量;
进一步在式(1)中,|N(u)|表示用户u提供了隐式偏好的所有产品的集合大小,N(u)表示用户u提供了隐式偏好的所有产品的集合;表示与产品j相关联的因素矢量,其用于表征隐式反馈信息。而且bu,bi,qi,pu和yj为用户的推荐系统模型的未知参数;
示例性的,推荐设备60还可以包括代价函数生成单元604,用于根据推荐系统模型得到的预测值与评分数据的均方误差和推荐系统模型的参数之间的关系得到推荐系统模型的代价函数,以及根据数据放置单元601得到的分层数据矩阵的评分数据,通过对上述模型有关的代价函数最优化问题的求解得到上述模型的未知参数,即并行计算数据层中推荐系统模型的参数,并将每一层数据层的参数作为对应的下一层数据层的初值,直至获取推荐系统模型的最优参数,其中,最优参数就是上述模型的未知参数最优值,具体的,在本实施例中,第一推荐系统模型和第二推荐系统模型有关的代价函数可以分别表示为式(3)和式(4),其中,||*||2表示矢量*的所有元素的平方和,λ1与λ2为正则化因子。
本领域技术人员可以理解的,并行计算单元602根据上述的模型对式(3)与式(4)进行最优化问题的求解,具体的求解过程具有相似性,不再赘述,具体的,以式(3)为例,如图7所示,并行计算单元602可以包括:
平均分计算子单元6021,用于计算评分数据集中的所有评分数据的平均分;
分层计算子单元6022,依次采用并行计算的方式计算每一层数据层的参数,并将每一层数据层计算所得的参数作为下一层数据层的参数初值;
示例性的,本实施例中,在第一次计算之前,可以将第一层数据层的参数bu,bi,qi,pu和yj以及λ1与λ2的初值进行随机设置,为了简便起见,参数bu,bi,qi,pu和yj的初值可以设置为标量参数为0,矢量参数为向量其中,数字0上方的箭头符号为向量符号,而λ1与λ2可以任意设置为一个为比较小的正值,本发明实施例对此不作任何限定,用来表示正则化因子;
示例性的,从第一层数据层开始,依次的并行计算该层数据层的参数bu,bi,qi,pu和yj的值,并将计算所得的参数值作为下一层数据层的参数bu,bi,qi,pu和yj的初值,直至计算完最后一层数据层的参数bu,bi,qi,pu和yj,得到最后一层数据层计算所得的参数;具体的计算过程如下:
分层计算子单元6022根据第一层数据层的参数初值对第一层数据层所包含的评分数据对应的未知参数bu,bi,qi,pu和yj进行更新计算,由于同一层矩阵的评分数据之间没有相互依赖的关系,因此同一层矩阵的不同评分数据对应的未知参数bu,bi,qi,pu和yj的更新计算可以并行进行,并将更新后的参数作为下一层数据层的参数初值对下一层数据层所包含的评分数据对应的参数进行更新计算,直至最后一层数据层所包含的评分数据对应的参数进行更新计算完毕,得到最后一层数据层计算所得的参数;
优选的,在本实施例中,可以通过梯度下降法进行更新计算,由于所有评分数据对应的参数的更新方法均相同,本领域技术人员可以理解,通过对一个评分数据rui对应的的参数bu,bi,qi,pu和yj进行更新计算步骤进行描述后,可以无需创造性的将计算步骤应用在其他的评分数据中,分层计算子单元6022对式(1)的计算步骤具体可以如下:
首先,根据每一层数据层的参数初值和式(1)所示的推荐系统模型得到评分数据rui的初始估计值进而根据该层数据层的评分数据和初始估计值得到该层数据层的评分误差eui;
接着,通过评分误差eui和式(5)-式(9)得到负梯度方向的参数的更新值,本领域技术人员可以理解的,式(5)-式(8)均可以根据相应的计算式进行参数的更新,计算过程及各式中出现的符号与参数的意义不再赘述,相应的,对式(4)的最优化问题的求解只需要进行式(5)-式(8)的更新计算,得到参数bu,bi,qi,pu即可;
但是对于式(9)的计算还需要结合评分数据集中的评分数据依次对yj进行串行计算,降低了运算效率,因此本发明实施例提供了一种针对式(9)的计算方法,具体实施方式为:
当同一层矩阵有多个yj需要计算时,利用评分数据集中yj所表示的产品j对应的用户来并行计算其对应的梯度Δyj,比如在评分数据集中,用户1,用户2,和用户6对产品4(j=4)进行了评分,则可以并行计算用户1,用户2,和用户6对应的产品j的梯度
其中,
然后聚合得到该层yj的值,即其中,为yj的初值。
此外,本发明实施例提供了另一种针对式(8)和式(9)的等效计算方法,具体实施方式为:
将第一推荐模型中的表达式作为一个等效参数,并用辅助变量zu来表示所述等效参数,即其中辅助变量zu与表达式等价,此时,第一推荐模型等价为其参数为bu,bi,qi,zu;
然后根据辅助变量zu的梯度Δzui=2eui·qi-λ2zu,并由此得到辅助变量zu的更新公式其中为zu在该层计算时的初值。
通过本方法,可以只通过对辅助变量zu的更新过程来替代对参数pu和yj的更新过程,此外,由于引入了辅助变量zu,式(8)的关于参数qi的更新也可以做出相应的变动,即qi的更新公式变为其中为qi在该层计算时的初值。
由此可知,引入辅助变量zu一方面简化了计算,另一方面由于消除了yj的计算,推荐模型的参数求解减少了一层内循环,从而在确保同样精度的前提下极大地提升了运算速度。
然后,可以得到第一层数据层的参数的更新值,接下来将此更新值作为第二层数据层的参数的初值,并且根据上述方法计算第二层数据层的参数的更新值,以此类推,得到最后一层数据层的参数的更新值。
收敛判断子单元6023,用于根据最后一层数据层计算所得的参数判断推荐系统模型是否收敛,若收敛,则计算结束,得到最优参数;得到最优参数,若不收敛,则将最后一层数据层计算所得的参数作为第一层数据层的参数初值,继续通过分层计算子单元6022继续进行下一次分层计算。
优选的,收敛判断子单元6023可以将本次计算所得到的最后一层数据层计算所得的参数和前一次计算所得到的最后一层数据层计算所得的参数均代入式(3)或式(4)的代价函数进行计算,如果两个计算结果之差不大于预设的门限值,则可以认为本次计算所得到的最后一层数据层计算所得的参数为最优参数,如果大于预设的门限值,则将本次计算所得到的最后一层数据层计算所得的参数是不收敛的,并将本次计算所得到的最后一层数据层计算所得的参数作为分层计算子单元6022继续进行下一次分层计算的第一层数据层的参数初值,继续计算推荐系统模型的参数。
示例性的,预测推荐单元603将获得的最优参数带入式(1)或式(2),则可以获得每个用户对每个产品的评分预测值,可以通过将相同用户对所有产品的评分预测值进行排列,选择评分预测值最高的预设数量的产品推荐给用户。
示例性的,如图7所示,推荐设备60还可以包括:
反馈单元605,用于产品推荐之后,将用户对产品做出的新的评分数据输入到推荐系统中,以使得推荐系统能够根据实时的更新推荐系统模型的参数,来保证高精度和高效率推荐的实时性。
本实施例提供了一种推荐设备60,通过并行计算提高了海量数据环境下推荐系统的推荐效率,并且通过考虑用户隐式反馈提高了推荐系统的推荐效果。
本实施例提供了一种推荐设备60,如图8所示,包括:至少一个处理器801、存储器802和至少一个通信总线803,用于实现这些装置之间的连接和相互通信,其中,
通信总线803可以是工业标准体系结构(Industry Standard Architecture,简称为ISA)总线、外部设备互连(Peripheral Component,简称为PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,简称为EISA)总线等。
该总线803可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器802用于存储可执行程序代码以及处理器801的处理结果,该程序代码包括计算机操作指令。存储器802可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
处理器801可能是一个中央处理器(Central Processing Unit,简称为CPU),或者是特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。
处理器801用于执行存储器704中存储的可执行程序代码,例如计算机程序来运行与可执行代码对应的程序。
处理器801用于:
将评分数据集中的评分数据分别放置到至少一个数据层,其中,评分数据与用户以及产品分别一一对应,且每一个数据层中的任意两个评分数据对应的用户以及产品均不相同;
以及依据预设的推荐系统模型以及数据层中的评分数据,并行计算数据层中推荐系统模型的参数,并将每一层数据层的参数作为对应的下一层数据层的初值,直至获取推荐系统模型的最优参数;其中,推荐系统模型为每个用户对每个产品的评分预测值与平均分和所述推荐系统模型的参数之间的对应关系;
以及根据最优参数与推荐系统模型获取每个用户对每个产品的评分预测值,并根据评分预测值向用户推荐产品。
示例性的,评分数据集可以通过获取用户对产品的评分数据得到,也可以通过用户的浏览、购买记录信息得到,不仅可以得到用户对产品的显示反馈,也可以获取到用户偏好的隐式反馈,本发明实施例对此不做任何限制,优选的,评分数据集可以通过用户对产品的评分数据获得,本领域技术人员可以理解的,用户对产品的评分数据不仅显示的反馈了用户对产品的评价,而且也通过用户对产品评分的行为隐式的反馈了用户对产品的偏好,优选的,在本实施例中,评分数据集可以通过矩阵形式表示,其中,矩阵的不同行表示不同用户,矩阵的不同列表示不同产品;
进一步的,评分数据与用户以及产品分别一一对应,本领域技术人员可以理解的,由于评分数据所放置的数据层可以通过矩阵的形式进行表示,同时评分数据集也可以通过矩阵的形式进行表示,其中,矩阵的不同行表示不同用户,矩阵的不同列表示不同产品,于是处理器801可以将评分数据集中的评分数据分别放置到至少两个数据层矩阵,并且所有数据层矩阵均与评分数据集的矩阵具有相同的行数和相同的列数,当每一个数据层中的任意两个评分数据对应的用户以及产品均不相同,即每一个数据层矩阵中的任意两个评分数据均不在同一行且均不在同一列的时候,就可以满足同一层数据层中的所有评分数据之间互相没有依赖关系,因此可以对同一层数据层中的评分数据进行并行计算,具体的放置步骤本发明实施例不作任何限定,任何能够使得每一个数据层矩阵中的任意两个评分数据均不在同一行且均不在同一列的放置方法均在本发明实施例的保护范围内;
可选的,在本实施例中,处理器801可以用于实现如图3A所示放置方法,包括:
处理器801选取评分数据集中的一个评分数据,将其放在第一层数据层矩阵中对应于该评分数据的用户和产品的位置上,此时,最后一层数设置为lmax=1,其中,选取的方式本实施例不做限定,后续从评分数据集中选取数据的方式与第一次选取的方式相同,在此不作赘述;
处理器801选取下一个评分数据,并从第一层数据层矩阵开始到最后一层对应的数据层矩阵,依次与其中的所有评分数据进行比较,是否满足评分数据在数据层矩阵中的对应位置所在的行和列均没有评分数据,若满足,则该评分数据放置于最先满足的数据层矩阵,若直至最后一层lmax对应的数据层也不满足,则最后一层数更新为lmax←lmax+1,其中←符号表示将符号左边的数据更新为符号右边的数据,下同,并且将该评分数据放置于更新后的最后一层数据层;
处理器801对评分数据集中的剩余评分数据依次重复上述的放置过程直至评分数据集中所有的评分数据均放置完毕。例如,评分数据如矩阵A所示:
通过如图3A所示的放置方法,示例性的,具体操作过程如下:评分数据集中选出一个评分数据rui,将其放入第一层,然后再选择第二个评分数据ru′i′,判断u′和u是否为同一个用户以及i′和i是否为同一个产品,当u′≠u且i′≠i时,该评分数据ru′i′放入第一层,否则将其放入第二层。随后再取出第三个评分数据ru″i″,如果该评分数据所对应的用户u′′和产品i′′与放置在第一层的用户和产品均不相同时,则将其放入第一层,否则与第二层的评分数据对应的用户和产品进行比较,当满足u′′≠ulayer2且i′′≠ilayer2时,则将其放入第二层,否则放入第三层,这里ulayer2表示第二层的用户,ilayer2表示第二层的产品。依此类推,直到集合κ的所有评分数据均放置完毕。
可以依次得到5个数据层,从第一层数据层到最后一层也就是第五层数据层依次为:
(u1,i1,3)(u2,i2,2)(u3,i3,5)(u4,i5,3)(u5,i6,5)(u6,i4,3) l1(Layer1)
(u1,i4,2)(u2,i5,1)(u3,i1,4)(u4,i3,2)(u5,i2,1) l2(Layer2)
(u2,i4,2)(u3,i5,5)(u6,i1,1)(u7,i3,3) l3(Layer3)
(u3,i6,2)(u6,i2,2)(u7,i4,5) l4(Layer4)
(u7,i5,2) l5(Layer5)
通过矩阵形式表示可以是:
其中,矩阵中出现的*表示该位置对应的用户没有对该位置对应的产品进行评分,可以得到A=l1+l2+l3+l4+l5。
进一步的,在本实施例中,处理器801也可以用于实现如图3B所示放置方法,包括:
处理器801选取评分数据集中的一个评分数据,将其放在第一层数据层中对应于该评分数据的用户和产品的位置上,此时,最后一层数lmax=1;
处理器801从评分数据集中选取的第二个评分数据开始,将该评分数据依次从最后一层数对应的数据层直至第一层数据层进行比较,直至能够从最后一层数到第一层数据层中找出最后一个满足该评分数据在数据层中对应位置的所在行和所在列上没有其他评分数据,则该评分数据放置于最后一个满足的数据层的对应位置,若从最后一层数到第一层均没有满足的数据评分矩阵,则最后一层数更新为lmax←lmax+1,并且将该评分数据放置于更新后的最后一层数对应的数据层;
处理器801对评分数据集中的剩余数据依次重复上述对第二个评分数据的放置过程直至评分数据集中所有的评分数据均放置完毕。
例如,仍以矩阵A为例,通过如图3B所示的放置方法,示例性的,具体操作过程如下:
从评分数据集中选出一个评分数据rui,将其放入第一层,然后再选择第二个评分数据ru′i′,判断u′和u是否为同一个用户以及i′和i是否为同一个产品,当u′≠u且i′≠i时,该评分数据ru′i′放入第一层,否则将其放入第二层。随后再取出第三个评分数据ru″i″,将其与第二层已放置的评分数据进行比较(如果有第二层的话),如果该评分数据所对应的用户u′′和产品i′′与放置在第二层的用户u′和产品i′均不相同时,则继续将其与第一层已放置的评分数据进行比较,当与第一层已放置的评分数据也满足u′′≠u且i′′≠i时则将其放入第一层,否则放置第二层,而当该评分数据所对应的用户u′′和产品i′′与放置在第二层的用户u′和产品i′满足u′′=u′或者i′′=i′任意一个条件时,则直接将其放入第三层。依此类推,直到评分数据集中的所有评分数据均放置完毕,可以依次得到7个数据层,从第一层数据层到最后一层也就是第七层数据层依次为:
(u1,i1,3)(u2,i2,2) l1(Layer1)
(u1,i4,2)(u3,i1,4)(u5,i2,1) l2(Layer2)
(u2,i4,2)(u3,i3,5)(u6,i1,1) l3(Layer3)
(u2,i5,1)(u4,i3,2)(u6,i2,2) l4(Layer4)
(u3,i5,5)(u6,i4,3)(u7,i3,3) l5(Layer5)
(u3,i6,2)(u4,i5,3)(u7,i4,5) l6(Layer6)
(u5,i6,5)(u7,i5,2) l7(Layer7)
通过矩阵形式表示为:
其中,矩阵中出现的*表示该位置对应的用户没有对该位置对应的产品进行评分,可以得到A=l′1+l′2+l′3+l′4+l′5+l′6+l′7。
示例性的,预设的系统模型可以是考虑用户隐式反馈的潜在因素模型,也可以是仅仅基于现实反馈的潜在因素模型,还可以包括考虑时空特性的推荐系统模型、非对称的潜在因素模型等,本发明实施例对此不做任何限定,
进一步的,在本实施例中,处理器801构建了一个改进的考虑用户隐式反馈的第一推荐系统模型,如式(1),以及一个未考虑用户隐式反馈的第二推荐系统模型,如式(2),
式(1)和式(2)中,表示用户u对产品i的评分预测值,μ表示评分数据集中的所有评分数据的平均值,bu表示用户u相对用户平均评分的偏移量,bi表示产品i相对产品平均评分的偏移量,qi表示产品因素矢量,T表示转置运算符号,pu表示用户因素矢量;
进一步在式(1)中,|N(u)|表示用户u提供了隐式偏好的所有产品的集合大小,N(u)表示用户u提供了隐式偏好的所有产品的集合;表示与产品j相关联的因素矢量,其用于表征隐式反馈信息。而且bu,bi,qi,pu和yj为用户的推荐系统模型的未知参数;
示例性的,处理器801还可以根据推荐系统模型得到的预测值与评分数据的均方误差和推荐系统模型的参数之间的关系得到推荐系统模型的代价函数,以及分层数据矩阵的评分数据,通过对上述模型有关的代价函数最优化问题的求解得到上述模型的未知参数,即并行计算数据层中推荐系统模型的参数,并将每一层数据层的参数作为对应的下一层数据层的初值,直至获取推荐系统模型的最优参数,其中,最优参数就是上述模型的未知参数最优值,具体的,在本实施例中,第一推荐系统模型和第二推荐系统模型有关的代价函数可以分别表示为式(3)和式(4);其中,||*||2表示矢量*的所有元素的平方和,λ1与λ2为正则化因子。
示例性的,处理器801根据上述的模型以及分层数据矩阵的评分数据,可以通过对上述模型有关的代价函数最优化问题的求解得到上述模型的未知参数,即并行计算数据层中推荐系统模型的参数,并将每一层数据层的参数作为对应的下一层数据层的初值,直至获取推荐系统模型的最优参数,本领域技术人员可以理解的,对式(3)与式(4)进行最优化问题的求解,具体的求解过程具有相似性,不再赘述,具体的,以式(3)为例,如图7所示,处理器801进一步用于:
计算评分数据集中的所有评分数据的平均分;
以及依次采用并行计算的方式计算每一层数据层的参数,并将每一层数据层计算所得的参数作为下一层数据层的参数初值;
示例性的,本实施例中,在第一次计算之前,可以将第一层数据层的参数bu,bi,qi,pu和yj以及λ1与λ2的初值进行随机设置,为了简便起见,参数bu,bi,qi,pu和yj的初值可以设置为标量参数为0,矢量参数为向量其中,数字0上方的箭头符号为向量符号,而λ1与λ2可以任意设置为一个为比较小的正值,本发明实施例对此不作任何限定,用来表示正则化因子;
示例性的,处理器801从第一层数据层开始,依次的并行计算该层数据层的参数bu,bi,qi,pu和yj的值,并将计算所得的参数值作为下一层数据层的参数bu,bi,qi,pu和yj的初值,直至计算完最后一层数据层的参数bu,bi,qi,pu和yj,得到最后一层数据层计算所得的参数;具体的计算过程如下:
处理器801根据第一层数据层的参数初值对第一层数据层所包含的评分数据对应的未知参数bu,bi,qi,pu和yj进行更新计算,由于同一层矩阵的评分数据之间没有相互依赖的关系,因此同一层矩阵的不同评分数据对应的未知参数bu,bi,qi,pu和yj的更新计算可以并行进行,并将更新后的参数作为下一层数据层的参数初值对下一层数据层所包含的评分数据对应的参数进行更新计算,直至最后一层数据层所包含的评分数据对应的参数进行更新计算完毕,得到最后一层数据层计算所得的参数;
优选的,在本实施例中,处理器801可以通过梯度下降法进行更新计算,由于所有评分数据对应的参数的更新方法均相同,本领域技术人员可以理解,通过对一个评分数据rui对应的的参数bu,bi,qi,pu和yj进行更新计算步骤进行描述后,可以无需创造性的将计算步骤应用在其他的评分数据中,处理器801对式(1)的计算步骤具体可以如下:
首先,处理器801根据每一层数据层的参数初值和式(1)所示的推荐系统模型得到评分数据rui的初始估计值进而根据该层数据层的评分数据和初始估计值得到该层数据层的评分误差eui;
接着,处理器801通过评分误差eui和式(5)-式(9)得到负梯度方向的参数的更新值,本领域技术人员可以理解的,式(5)-式(8)均可以根据相应的计算式进行参数的更新,计算过程及各式中出现的符号与参数的意义不再赘述,相应的,对式(4)的最优化问题的求解只需要进行式(5)-式(8)的更新计算,得到参数bu,bi,qi,pu即可;
但是对于式(9)的计算,处理器801还需要结合评分数据集中的评分数据依次对yj进行串行计算,降低了运算效率,因此本发明实施例提供了一种针对式(9)的计算方法,具体实施方式为:
当同一层矩阵有多个yj需要计算时,处理器801利用评分数据集中yj所表示的产品
j对应的用户来并行计算其对应的梯度Δyj,比如在评分数据集中,用户1,用户2,和用户6
对产品4(j=4)进行了评分,则处理器801可以并行计算用户1,用户2,和用户6对应的产
品j的梯度其中,
然后处理器801聚合得到该层yj的值,即
其中,为yj的初值。
此外,本发明实施例提供了另一种针对式(8)和式(9)的等效计算方法,具体实施方式为:
将第一推荐模型中的表达式作为一个等效参数,并用辅助变量zu来表示所述等效参数,即其中辅助变量zu与表达式等价,此时,第一推荐模型等价为其参数为bu,bi,qi,zu;
然后根据辅助变量zu的梯度Δzui=2eui·qi-λ2zu,并由此得到辅助变量zu的更新公式其中为zu在该层计算时的初值。
通过本方法,可以只通过对辅助变量zu的更新过程来替代对参数pu和yj的更新过程,此外,由于引入了辅助变量zu,式(8)的关于参数qi的更新也可以做出相应的变动,即qi的更新公式变为其中为qi在该层计算时的初值。
由此可知,引入辅助变量zu一方面简化了计算,另一方面由于消除了yj的计算,推荐模型的参数求解减少了一层内循环,从而在确保同样精度的前提下极大地提升了运算速度。
然后,处理器801可以将该层数据层计算所得的参数作为下一层数据层的参数初值,接下来处理器801将此更新值作为第二层数据层的参数的初值,并且根据上述方法计算第二层数据层的参数的更新值,以此类推,处理器801得到最后一层数据层的参数的更新值。
示例性的,处理器801进一步的用于根据最后一层数据层计算所得的参数判断推荐系统模型是否收敛,若收敛,则计算结束,得到最优参数;得到最优参数,若不收敛,则将最后一层数据层计算所得的参数作为第一层数据层的参数初值,继续计算推荐系统模型的参数
优选的,处理器801可以本次计算所得到的最后一层数据层计算所得的参数和前一次计算所得到的最后一层数据层计算所得的参数均代入式(3)或式(4)的代价函数进行计算,如果两个计算结果之差不大于预设的门限值,则可以认为本次计算所得到的最后一层数据层计算所得的参数为最优参数,如果大于预设的门限值,则将本次计算所得到的最后一层数据层计算所得的参数是不收敛的,并将本次计算所得到的最后一层数据层计算所得的参数作为下次计算的第一层数据层的参数初值,继续计算推荐系统模型的参数。
示例性的,处理器801将获得的最优参数带入式(1)或式(2),则可以获得每个用户对每个产品的评分预测值,可以通过将相同用户对所有产品的评分预测值进行排列,选择评分预测值最高的预设数量的产品推荐给用户。
示例性的,处理器801还可以用于产品推荐之后,将用户对产品做出的新的评分数据输入到推荐系统中,以使得推荐系统能够根据实时的更新推荐系统模型的参数,来保证高精度和高效率推荐的实时性。
本实施例提供了一种推荐设备60,通过并行计算提高了海量数据环境下推荐系统的推荐效率,并且通过考虑用户隐式反馈提高了推荐系统的推荐效果。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (32)
1.一种推荐方法,其特征在于,包括:
将评分数据集中的评分数据分别放置到至少两个数据层,其中,所述评分数据与用户以及产品分别一一对应,且每一个所述数据层中的任意两个所述评分数据对应的用户以及产品均不相同;
依据预设的推荐系统模型以及所述数据层中的评分数据,并行计算所述数据层中推荐系统模型的参数,并将每一层数据层的参数作为对应的下一层数据层的初值,直至获取所述推荐系统模型的最优参数;其中,所述推荐系统模型为根据所述评分数据集中的评分数据的平均分和所述推荐系统模型的参数获取每个用户对每个产品的评分预测值的模型;
根据所述最优参数与所述推荐系统模型获取每个用户对每个产品的评分预测值,并根据所述评分预测值向所述用户推荐产品。
2.根据权利要求1所述的方法,其特征在于,所述推荐系统模型包括提供了隐式反馈的推荐系统模型、未提供隐式反馈的推荐系统模型、考虑时空特性的推荐系统模型和非对称的潜在因素的推荐系统模型。
3.根据权利要求1或2所述的方法,其特征在于,所述推荐系统模型包括:
第一推荐系统模型
或者,第二推荐系统模型
在所述第一推荐模型和所述第二推荐模型中,表示用户u对产品i的评分预测值,μ表示所述评分数据集中的所有评分数据的平均值,bu表示所述用户u相对用户平均评分的偏移量,bi表示所述产品i相对产品平均评分的偏移量,qi表示产品因素矢量,T表示转置运算符号,pu表示用户因素矢量,
进一步的,在所述第一推荐模型中,|N(u)|表示用户u提供了隐式偏好的所有产品的集合大小,N(u)表示用户u提供了隐式偏好的所有产品的集合;yj∈Rf表示与产品j相关联的因素矢量,其用于表征隐式反馈信息。
4.根据权利要求3所述的方法,其特征在于,还包括:
根据所述评分预测值与所述评分数据的均方误差和所述推荐系统模型的参数之间的关系得到所述推荐系统模型的代价函数,其中所述代价函数包括:
第一代价函数
或者,第二代价函数
其中,||*||2表示矢量*的所有元素的平方和,λ1与λ2为正则化因子。
5.根据权利要求1或2或4所述的方法,其特征在于,所述依据预设的推荐系统模型以及所述数据层中的评分数据,并行计算所述数据层中推荐系统模型的参数,并将每一层数据层的参数作为对应的下一层数据层的初值,直至获取所述推荐系统模型的最优参数,包括:
A:计算所述评分数据集中的所有所述评分数据的平均分;
B:依次采用并行计算的方式计算每一层所述数据层的参数,并将每一层所述数据层计算所得的参数作为下一层数据层的参数初值;其中,第一层所述数据层的参数初值由系统设置;
C:根据最后一层所述数据层计算所得的参数判断所述推荐系统模型是否收敛,若收敛,则计算结束,得到所述最优参数;若不收敛,则将最后一层所述数据层计算所得的参数作为所述第一层所述数据层的参数初值,重复所述步骤B、C。
6.根据权利要求3所述的方法,其特征在于,所述依据预设的推荐系统模型以及所述数据层中的评分数据,并行计算所述数据层中推荐系统模型的参数,并将每一层数据层的参数作为对应的下一层数据层的初值,直至获取所述推荐系统模型的最优参数,包括:
A:计算所述评分数据集中的所有所述评分数据的平均分;
B:依次采用并行计算的方式计算每一层所述数据层的参数,并将每一层所述数据层计算所得的参数作为下一层数据层的参数初值;其中,第一层所述数据层的参数初值由系统设置;
C:根据最后一层所述数据层计算所得的参数判断所述推荐系统模型是否收敛,若收敛,则计算结束,得到所述最优参数;若不收敛,则将最后一层所述数据层计算所得的参数作为所述第一层所述数据层的参数初值,重复所述步骤B、C。
7.根据权利要求5所述的方法,其特征在于,所述步骤B,包括:
B1:根据每一层所述数据层的参数初值和所述推荐系统模型得到所述该层数据层的评分数据的初始估计值,进而根据所述该层数据层的评分数据和所述初始估计值得到所述该层数据层的评分误差;
B2:根据所述评分误差获取所述该层数据层计算所得的参数;
B3:将所述该层数据层计算所得的参数作为下一层数据层的参数初值,根据步骤B1和B2得到下一层数据层计算所得的参数,直至得到最后一层所述数据层计算所得的参数。
8.根据权利要求6所述的方法,其特征在于,所述步骤B,包括:
B1:根据每一层所述数据层的参数初值和所述推荐系统模型得到所述该层数据层的评分数据的初始估计值,进而根据所述该层数据层的评分数据和所述初始估计值得到所述该层数据层的评分误差;
B2:根据所述评分误差获取所述该层数据层计算所得的参数;
B3:将所述该层数据层计算所得的参数作为下一层数据层的参数初值,根据步骤B1和B2得到下一层数据层计算所得的参数,直至得到最后一层所述数据层计算所得的参数。
9.根据权利要求4或7或8所述的方法,其特征在于,所述根据最后一层所述数据层计算所得的参数判断所述推荐系统模型是否收敛,包括:
将本次计算所得到的最后一层所述数据层计算所得的参数和前一次计算所得到的最后一层所述数据层计算所得的参数均代入所述第一代价函数或所述第二代价函数进行计算,若代入所述第一代价函数或所述第二代价函数进行计算的的结果之差不大于预设的门限值,则本次计算所得到的最后一层所述数据层计算所得的参数是收敛的,否则,本次计算所得到的最后一层所述数据层计算所得的参数是不收敛的。
10.根据权利要求7或8所述的方法,其特征在于,所述根据所述评分误差获取所述该层数据层计算所得的参数,进一步包括:
将所述第一推荐系统模型中的表达式作为一个等效参数,并用辅助变量zu来表示所述等效参数,即然后根据所述辅助变量zu的梯度Δzui=2eui·qi-λ2zu,获取所述辅助变量zu,即得到所述等效参数;以及根据所述辅助变量zu获取所述参数qi,即qi←qi+γ2.(eui·zu-λ2qi),其中,←符号表示更新符号,即用更新符号右边的计算值替代更新符号左边的变量值,更新符号右边出现的参数均为相应的参数的初值,更新符号左边出现的参数均为参数的更新值。
11.一种推荐设备,其特征在于,包括:
数据放置单元,用于将评分数据集中的评分数据分别放置到至少两个数据层,其中,所述评分数据与用户以及产品分别一一对应,且每一个所述数据层中的任意两个所述评分数据对应的用户以及产品均不相同;
并行计算单元,用于依据预设的推荐系统模型以及所述数据层中的评分数据,并行计算所述数据层中推荐系统模型的参数,并将每一层数据层的参数作为对应的下一层数据层的初值,直至获取所述推荐系统模型的最优参数;其中,所述推荐系统模型为根据所述评分数据集中的评分数据的平均分和所述推荐系统模型的参数获取每个用户对每个产品的评分预测值的模型;
预测推荐单元,用于根据所述最优参数与所述推荐系统模型获取每个用户对每个产品的评分预测值,并根据所述评分预测值向所述用户推荐产品。
12.根据权利要求11所述的设备,其特征在于,所述推荐系统模型包括提供了隐式反馈的推荐系统模型、未提供隐式反馈的推荐系统模型、考虑时空特性的推荐系统模型和非对称的潜在因素的推荐系统模型。
13.根据权利要求11或12所述的设备,其特征在于,所述推荐系统模型包括:
所述推荐系统模型包括:
第一推荐系统模型
或者,第二推荐系统模型
在所述第一推荐模型和所述第二推荐模型中,表示用户u对产品i的评分预测值,μ表示所述评分数据集中的所有评分数据的平均值,bu表示所述用户u相对用户平均评分的偏移量,bi表示所述产品i相对产品平均评分的偏移量,qi表示产品因素矢量,T表示转置运算符号,pu表示用户因素矢量,
进一步的,在所述第一推荐模型中,|N(u)|表示用户u提供了隐式偏好的所有产品的集合大小,N(u)表示用户u提供了隐式偏好的所有产品的集合;yj∈Rf表示与产品j相关联的因素矢量,其用于表征隐式反馈信息。
14.根据权利要求13所述的设备,其特征在于,还包括:代价函数生成单元,用于根据所述评分预测值与所述评分数据的均方误差和所述推荐系统模型的参数之间的关系得到所述推荐系统模型的代价函数,其中所述代价函数包括:
第一代价函数
或者,第二代价函数
其中,||*||2表示矢量*的所有元素的平方和,λ1与λ2为正则化因子。
15.根据权利要求11或12或14所述的设备,其特征在于,所述并行计算单元,包括:
平均分计算子单元,用于计算所述评分数据集中的所有所述评分数据的平均分;
分层计算子单元,用于依次采用并行计算的方式计算每一层所述数据层的参数,并将每一层所述数据层计算所得的参数作为下一层数据层的参数初值;其中,第一层所述数据层的参数初值由系统设置;
收敛判断子单元,用于根据最后一层所述数据层计算所得的参数判断所述推荐系统模型是否收敛,若收敛,则计算结束,得到所述最优参数;若不收敛,则将最后一层所述数据层计算所得的参数作为所述第一层所述数据层的参数初值,并将所述参数初值传输至所述分层计算子单元重复进行分层计算。
16.根据权利要求13所述的设备,其特征在于,所述并行计算单元,包括:
平均分计算子单元,用于计算所述评分数据集中的所有所述评分数据的平均分;
分层计算子单元,用于依次采用并行计算的方式计算每一层所述数据层的参数,并将每一层所述数据层计算所得的参数作为下一层数据层的参数初值;其中,第一层所述数据层的参数初值由系统设置;
收敛判断子单元,用于根据最后一层所述数据层计算所得的参数判断所述推荐系统模型是否收敛,若收敛,则计算结束,得到所述最优参数;若不收敛,则将最后一层所述数据层计算所得的参数作为所述第一层所述数据层的参数初值,并将所述参数初值传输至所述分层计算子单元重复进行分层计算。
17.根据权利要求15所述的设备,其特征在于,所述分层计算子单元进一步用于,
评分误差生成模块,用于根据每一层所述数据层的参数初值和所述推荐系统模型得到所述该层数据层的评分数据的初始估计值,进而根据所述该层数据层的评分数据和所述初始估计值得到所述该层数据层的评分误差;
参数计算模块,用于根据所述评分误差获取所述该层数据层计算所得的参数;
计算控制模块,用于将所述该层数据层计算所得的参数作为下一层数据层的参数初值,通过所述评分误差生成模块和所述参数计算模块得到下一层数据层计算所得的参数,直至得到最后一层所述数据层计算所得的参数。
18.根据权利要求16所述的设备,其特征在于,所述分层计算子单元进一步用于,
评分误差生成模块,用于根据每一层所述数据层的参数初值和所述推荐系统模型得到所述该层数据层的评分数据的初始估计值,进而根据所述该层数据层的评分数据和所述初始估计值得到所述该层数据层的评分误差;
参数计算模块,用于根据所述评分误差获取所述该层数据层计算所得的参数;
计算控制模块,用于将所述该层数据层计算所得的参数作为下一层数据层的参数初值,通过所述评分误差生成模块和所述参数计算模块得到下一层数据层计算所得的参数,直至得到最后一层所述数据层计算所得的参数。
19.根据权利要求15所述的设备,其特征在于,所述收敛判断子单元进一步用于,
将本次计算所得到的最后一层所述数据层计算所得的参数和前一次计算所得到的最后一层所述数据层计算所得的参数均代入所述第一代价函数或所述第二代价函数进行计算,若代入所述第一代价函数或所述第二代价函数进行计算的的结果之差不大于预设的门限值,则本次计算所得到的最后一层所述数据层计算所得的参数是收敛的,否则,本次计算所得到的最后一层所述数据层计算所得的参数是不收敛的。
20.根据权利要求16或17或18所述的设备,其特征在于,所述收敛判断子单元进一步用于,
将本次计算所得到的最后一层所述数据层计算所得的参数和前一次计算所得到的最后一层所述数据层计算所得的参数均代入所述第一代价函数或所述第二代价函数进行计算,若代入所述第一代价函数或所述第二代价函数进行计算的的结果之差不大于预设的门限值,则本次计算所得到的最后一层所述数据层计算所得的参数是收敛的,否则,本次计算所得到的最后一层所述数据层计算所得的参数是不收敛的。
21.根据权利要求17或18所述的设备,其特征在于,所述参数计算模块进一步用于,
将所述第一推荐系统模型中的表达式作为一个等效参数,并用辅助变量zu来表示所述等效参数,即
然后根据所述辅助变量zu的梯度Δzui=2eui·qi-λ2zu,获取所述辅助变量zu,即得到所述等效参数;以及根据所述辅助变量zu获取所述参数qi,即qi←qi+γ2.(eui·zu-λ2qi),其中,←符号表示更新符号,即用更新符号右边的计算值替代更新符号左边的变量值,更新符号右边出现的参数均为相应的参数的初值,更新符号左边出现的参数均为参数的更新值。
22.一种推荐设备,包括处理器和存储器,其中,
所述处理器用于,将评分数据集中的评分数据分别放置到至少两个数据层,其中,所述评分数据与用户以及产品分别一一对应,且每一个所述数据层中的任意两个所述评分数据对应的用户以及产品均不相同;
以及依据预设的推荐系统模型以及所述数据层中的评分数据,并行计算所述数据层中推荐系统模型的参数,并将每一层数据层的参数作为对应的下一层数据层的初值,直至获取所述推荐系统模型的最优参数;其中,所述推荐系统模型为每个用户对每个产品的评分预测值与平均分和所述推荐系统模型的参数之间的对应关系;
以及根据所述最优参数与所述推荐系统模型获取每个用户对每个产品的评分预测值,并根据所述评分预测值向所述用户推荐产品;
所述存储器用于保存评分数据集以及处理器所执行的程序和执行的结果。
23.根据权利要求22所述的设备,其特征在于,所述推荐系统模型包括提供了隐式反馈的推荐系统模型、未提供隐式反馈的推荐系统模型、考虑时空特性的推荐系统模型和非对称的潜在因素的推荐系统模型。
24.根据权利要求22或23所述的设备,所述推荐系统模型包括:
所述推荐系统模型包括:
第一推荐系统模型
或者,第二推荐系统模型
在所述第一推荐模型和所述第二推荐模型中,表示用户u对产品i的评分预测值,μ表示所述评分数据集中的所有评分数据的平均值,bu表示所述用户u相对用户平均评分的偏移量,bi表示所述产品i相对产品平均评分的偏移量,qi表示产品因素矢量,T表示转置运算符号,pu表示用户因素矢量,
进一步的,在所述第一推荐模型中,|N(u)|表示用户u提供了隐式偏好的所有产品的集合大小,N(u)表示用户u提供了隐式偏好的所有产品的集合;yj∈Rf表示与产品j相关联的因素矢量,其用于表征隐式反馈信息。
25.根据权利要求24所述的设备,其特征在于,所述处理器还用于,根据所述评分预测值与所述评分数据的均方误差和所述推荐系统模型的参数之间的关系得到所述推荐系统模型的代价函数,其中所述代价函数包括:
第一代价函数
或者,第二代价函数
其中,||*||2表示矢量*的所有元素的平方和,λ1与λ2为正则化因子。
26.根据权利要求23或25所述的设备,其特征在于,所述处理器用于,
A:计算所述评分数据集中的所有所述评分数据的平均分;
B:依次采用并行计算的方式计算每一层所述数据层的参数,并将每一层所述数据层计算所得的参数作为下一层数据层的参数初值;其中,第一层所述数据层的参数初值由系统设置;
C:根据最后一层所述数据层计算所得的参数判断所述推荐系统模型是否收敛,若收敛,则计算结束,得到所述最优参数;若不收敛,则将最后一层所述数据层计算所得的参数作为所述第一层所述数据层的参数初值,重复所述步骤B、C。
27.根据权利要求24所述的设备,其特征在于,所述处理器用于,
A:计算所述评分数据集中的所有所述评分数据的平均分;
B:依次采用并行计算的方式计算每一层所述数据层的参数,并将每一层所述数据层计算所得的参数作为下一层数据层的参数初值;其中,第一层所述数据层的参数初值由系统设置;
C:根据最后一层所述数据层计算所得的参数判断所述推荐系统模型是否收敛,若收敛,则计算结束,得到所述最优参数;若不收敛,则将最后一层所述数据层计算所得的参数作为所述第一层所述数据层的参数初值,重复所述步骤B、C。
28.根据权利要求26所述的设备,其特征在于,所述处理器用于,
B1:根据每一层所述数据层的参数初值和所述推荐系统模型得到所述该层数据层的评分数据的初始估计值,进而根据所述该层数据层的评分数据和所述初始估计值得到所述该层数据层的评分误差;
B2:根据所述评分误差获取所述该层数据层计算所得的参数;
B3:将所述该层数据层计算所得的参数作为下一层数据层的参数初值,根据步骤B1和B2得到下一层数据层计算所得的参数,直至得到最后一层所述数据层计算所得的参数。
29.根据权利要求27所述的设备,其特征在于,所述处理器用于,
B1:根据每一层所述数据层的参数初值和所述推荐系统模型得到所述该层数据层的评分数据的初始估计值,进而根据所述该层数据层的评分数据和所述初始估计值得到所述该层数据层的评分误差;
B2:根据所述评分误差获取所述该层数据层计算所得的参数;
B3:将所述该层数据层计算所得的参数作为下一层数据层的参数初值,根据步骤B1和B2得到下一层数据层计算所得的参数,直至得到最后一层所述数据层计算所得的参数。
30.根据权利要求26所述的设备,其特征在于,所述处理器用于,
将本次计算所得到的最后一层所述数据层计算所得的参数和前一次计算所得到的最后一层所述数据层计算所得的参数均代入所述第一代价函数或所述第二代价函数进行计算,若代入所述第一代价函数或所述第二代价函数进行计算的的结果之差不大于预设的门限值,则本次计算所得到的最后一层所述数据层计算所得的参数是收敛的,否则,本次计算所得到的最后一层所述数据层计算所得的参数是不收敛的。
31.根据权利要求27或28或29所述的设备,其特征在于,所述处理器用于,
将本次计算所得到的最后一层所述数据层计算所得的参数和前一次计算所得到的最后一层所述数据层计算所得的参数均代入所述第一代价函数或所述第二代价函数进行计算,若代入所述第一代价函数或所述第二代价函数进行计算的的结果之差不大于预设的门限值,则本次计算所得到的最后一层所述数据层计算所得的参数是收敛的,否则,本次计算所得到的最后一层所述数据层计算所得的参数是不收敛的。
32.根据权利要求28或29所述的设备,其特征在于,所述处理器用于根据所述评分误差获取所述该层数据层计算所得的参数,进一步包括:
所述处理器将所述第一推荐系统模型中的表达式作为一个等效参数,并用辅助变量zu来表示所述等效参数,即
然后根据所述辅助变量zu的梯度Δzui=2eui·qi-λ2zu,获取所述辅助变量zu,即得到所述等效参数;以及根据所述辅助变量zu获取所述参数qi,即qi←qi+γ2.(eui·zu-λ2qi),其中,←符号表示更新符号,即用更新符号右边的计算值替代更新符号左边的变量值,更新符号右边出现的参数均为相应的参数的初值,更新符号左边出现的参数均为参数的更新值。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2013/083218 WO2015035556A1 (zh) | 2013-09-10 | 2013-09-10 | 一种推荐方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104854580A CN104854580A (zh) | 2015-08-19 |
CN104854580B true CN104854580B (zh) | 2018-09-28 |
Family
ID=52664913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380001312.8A Active CN104854580B (zh) | 2013-09-10 | 2013-09-10 | 一种推荐方法和设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104854580B (zh) |
WO (1) | WO2015035556A1 (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190048233A1 (en) | 2016-02-01 | 2019-02-14 | 3M Innovative Properties Company | Conformable, peelable adhesive articles |
CN107526753B (zh) * | 2016-07-29 | 2020-06-16 | 腾讯科技(深圳)有限公司 | 应用程序的推荐方法和装置 |
CN110072636A (zh) | 2016-12-07 | 2019-07-30 | 3M创新有限公司 | 使粘合剂钝化的方法 |
EP3600888A4 (en) | 2017-03-28 | 2021-01-13 | 3M Innovative Properties Company | CONFORMABLE ADHESIVE ARTICLES |
JP7237063B2 (ja) | 2017-08-25 | 2023-03-10 | スリーエム イノベイティブ プロパティズ カンパニー | 損傷のない取り外しを可能にする接着性物品 |
EP3672795A4 (en) | 2017-08-25 | 2021-05-12 | 3M Innovative Properties Company | ADHESIVE ARTICLES WITH DAMAGE-FREE REMOVAL |
TW202332398A (zh) | 2018-05-23 | 2023-08-16 | 美商3M新設資產公司 | 用以增強物體安裝體驗之黏著劑背襯定位輔助物及錨固總成 |
TWI826477B (zh) | 2018-06-28 | 2023-12-21 | 美商3M新設資產公司 | 在可撓性基材上製造金屬圖案的方法 |
JP6901448B2 (ja) * | 2018-09-14 | 2021-07-14 | 株式会社東芝 | 計算装置、計算プログラム、記録媒体及び計算方法 |
CN109344328B (zh) * | 2018-09-21 | 2021-01-05 | 百度在线网络技术(北京)有限公司 | 获取推荐系统最优参数组合的方法及装置 |
CN113163963A (zh) | 2018-12-19 | 2021-07-23 | 3M创新有限公司 | 具有增强的剥离可移除性的柔性耐用件 |
CN114450368A (zh) | 2019-10-04 | 2022-05-06 | 3M创新有限公司 | 用于可剥离固定的膜背衬 |
CN111241408B (zh) * | 2020-01-21 | 2023-05-30 | 武汉轻工大学 | 推荐模型的构建系统及方法 |
CN113961792A (zh) * | 2020-07-15 | 2022-01-21 | 北京达佳互联信息技术有限公司 | 一种资源推荐系统、方法、电子设备及存储介质 |
WO2022263954A1 (en) | 2021-06-15 | 2022-12-22 | 3M Innovative Properties Company | Stretch removable pressure sensitive adhesive articles |
WO2023111747A1 (en) | 2021-12-17 | 2023-06-22 | 3M Innovative Properties Company | Catheter stabilization device |
USD996195S1 (en) | 2022-02-28 | 2023-08-22 | 3M Innovative Properties Company | Mounting hook |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541920A (zh) * | 2010-12-24 | 2012-07-04 | 华东师范大学 | 联合基于用户和项目的协同过滤提高准确度的方法及装置 |
CN102780920A (zh) * | 2011-07-05 | 2012-11-14 | 上海奂讯通信安装工程有限公司 | 电视节目推荐方法及系统 |
CN103106535A (zh) * | 2013-02-21 | 2013-05-15 | 电子科技大学 | 一种基于神经网络解决协同过滤推荐数据稀疏性的方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020065797A1 (en) * | 2000-11-30 | 2002-05-30 | Wizsoft Ltd. | System, method and computer program for automated collaborative filtering of user data |
US20050096950A1 (en) * | 2003-10-29 | 2005-05-05 | Caplan Scott M. | Method and apparatus for creating and evaluating strategies |
CN101437220A (zh) * | 2008-09-18 | 2009-05-20 | 广州五度信息技术有限公司 | 实现用户间相互点评、推荐彩铃的系统和方法 |
US8103675B2 (en) * | 2008-10-20 | 2012-01-24 | Hewlett-Packard Development Company, L.P. | Predicting user-item ratings |
KR101030653B1 (ko) * | 2009-01-22 | 2011-04-20 | 성균관대학교산학협력단 | 정보 엔트로피를 이용하여 유사도를 보정하는 사용자 기반 협업 필터링 추천 시스템 |
US9336315B2 (en) * | 2010-01-19 | 2016-05-10 | Ebay Inc. | Personalized recommendation of a volatile item |
CN102262764A (zh) * | 2010-05-28 | 2011-11-30 | 王希 | 一种基于回归模型的电子商务推荐方法 |
-
2013
- 2013-09-10 CN CN201380001312.8A patent/CN104854580B/zh active Active
- 2013-09-10 WO PCT/CN2013/083218 patent/WO2015035556A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541920A (zh) * | 2010-12-24 | 2012-07-04 | 华东师范大学 | 联合基于用户和项目的协同过滤提高准确度的方法及装置 |
CN102780920A (zh) * | 2011-07-05 | 2012-11-14 | 上海奂讯通信安装工程有限公司 | 电视节目推荐方法及系统 |
CN103106535A (zh) * | 2013-02-21 | 2013-05-15 | 电子科技大学 | 一种基于神经网络解决协同过滤推荐数据稀疏性的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104854580A (zh) | 2015-08-19 |
WO2015035556A1 (zh) | 2015-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104854580B (zh) | 一种推荐方法和设备 | |
CN102214169B (zh) | 关键词信息与目标信息的提供方法及装置 | |
CN107705183A (zh) | 一种商品的推荐方法、装置、存储介质及服务器 | |
CN106023015A (zh) | 课程学习路径推荐方法及装置 | |
CN103853786B (zh) | 数据库参数的优化方法与系统 | |
CN108345935A (zh) | 积和运算器、网络单元及网络装置 | |
CN109241415A (zh) | 项目推荐方法、装置、计算机设备及存储介质 | |
JP2016538615A (ja) | 主要知識ポイント推奨方法及びシステム | |
CN106484777A (zh) | 一种多媒体数据处理方法以及装置 | |
Zheng et al. | Deviation-based contextual SLIM recommenders | |
CN114785696B (zh) | 复杂网络节点的重要度评估方法及装置 | |
CN105005701A (zh) | 一种基于属性与评分的个性化推荐方法 | |
CN108920665A (zh) | 基于网络结构和评论文本的推荐评分方法及装置 | |
CN109324901B (zh) | 基于区块链的深度学习分布式计算方法、系统和节点 | |
CN106372101A (zh) | 一种视频推荐方法和装置 | |
CN108563660A (zh) | 服务推荐方法、系统及服务器 | |
CN103365842B (zh) | 一种页面浏览推荐方法及装置 | |
CN107767152A (zh) | 产品购买倾向分析方法及服务器 | |
CN107291533A (zh) | 确定上游节点瓶颈度及系统瓶颈度的方法、装置 | |
CN109360058A (zh) | 基于信任网络的推送方法、装置、计算机设备及存储介质 | |
CN110287048A (zh) | 数据异常检测方法和装置 | |
CN106776757A (zh) | 用户完成网银操作的指示方法及装置 | |
CN106201655A (zh) | 虚拟机分配方法和虚拟机分配系统 | |
CN110008880A (zh) | 一种模型压缩方法及装置 | |
CN109616152A (zh) | 癌症特异的共调网络建立方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |