CN105095241B - 一种信息推荐方法、装置及系统 - Google Patents
一种信息推荐方法、装置及系统 Download PDFInfo
- Publication number
- CN105095241B CN105095241B CN201410183029.8A CN201410183029A CN105095241B CN 105095241 B CN105095241 B CN 105095241B CN 201410183029 A CN201410183029 A CN 201410183029A CN 105095241 B CN105095241 B CN 105095241B
- Authority
- CN
- China
- Prior art keywords
- node
- user
- product
- parameter
- flow data
- 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
Abstract
本发明实施例提供一种信息推荐方法、装置及系统。本发明实施例涉及信息技术领域,用以解决网络中信息推荐的实时性和精确度问题。方法包括第二节点接收第一用户的流数据,并根据流数据中的第一用户的标识和第一产品的标识,确定流数据所属的第一节点;第二节点将流数据发送给第一节点,第一节点在接收第二节点发送的流数据后,根据流数据对第一参数进行更新,获得第二参数,并进一步的根据第二参数计算第一用户对第二产品的评分的预测值,然后将预测值发送给第二节点;当第二节点接收到预测值后,根据预测值向第一用户提供产品推荐信息。本发明实施例提供的信息推荐方法、装置及系统,可以应用于处理海量数据和流数据的信息推荐设备。
Description
技术领域
本发明实施例涉及信息技术领域,尤其涉及一种信息推荐方法、装置及系统。
背景技术
随着信息技术的发展,人们能获取的信息总量产生了爆炸式增长,当越来越多的用户通过评分方式对产品做出评价回应时,便会出现对产品评分的反馈数据流信息,此时如何从大量实时流数据的海量信息中确定用户的偏好,并为用户推荐与其偏好相匹配的内容信息显得尤为重要。
现有技术中,利用基于邻居的协同过滤算法进行信息推荐较为常用,其基本思想是:首先依据用户对产品的评分数据集,建立用户对产品的评分矩阵模型,然后通过计算目标用户与其他用户之间的相似度,算出与目标用户最相似的“最近邻居”集,最后根据“最近邻居”的评分预测出目标用户对未评价产品的评分,然后选择预测评分最高的几项产品,推荐给目标用户。
但是,上述现有技术中的信息推荐方案,只适用于数据规模不是很大的场景,对于大规模的流数据,信息推荐的实时性差、精确度低。
发明内容
本发明的实施例提供一种信息推荐方法、装置及系统,可以应用于数据规模较大的流数据场景,用以在确保信息推荐速度的同时,提高信息推荐的精确度。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明实施例提供一种信息推荐方法,包括:
第一节点接收第二节点发送的流数据,所述数据流为第一用户提供的对第一产品的评分信息;
所述第一节点根据所述流数据对第一参数进行更新,获得第二参数;
所述第一节点根据所述第二参数计算所述第一用户对第二产品的评分的预测值,所述第一节点、第二节点均为网络中的节点;
所述第一节点将所述预测值发送给所述第二节点,以使得第二节点根据所述预测值向所述第一用户提供产品推荐信息。
结合第一方面,在第一方面的第一种可能的实现方式中,所述流数据包括用户u对产品i的实际评分值;
所述第一参数包括用户相对用户平均评分的偏移量bu,涵盖用户的用户因素向量及隐式反馈信息的中间参量zu,产品相对产品平均评分的偏移量bi和产品的产品因素向量qi;
所述第一节点根据所述流数据对第一参数进行更新,获得第二参数包括:
所述第一节点根据所述流数据通过预设计算规则对第一参数进行更新,获得第二参数;
所述预设计算规则如下,其中,所述第二参数包括预设计算规则左边出现的bu、bi、zu以及qi,所述第一参数包括预设计算规则右边出现的bu、bi、zu以及qi:
bu←bu+γ1·(eui-λ1bu)
bi←bi+γ1·(eui-λ1bi)
qi←qi+γ2·(eui·zu-λ2qi)
zu←zu+γ2·(2eui·qi-λ2zu)
式中γ1和γ2为迭代步长,λ1和λ2为用于避免过拟合现象的正则化因子,eui为用户u对产品i的评分误差,即其中,为用户u对产品i评分的预测值,rui为用户u对产品i的实际评分值。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述第一节点根据所述第二参数计算所述第一用户对第二产品的评分的预测值包括:
利用所述第二参数和预测公式计算所述第一用户对第二产品评分的预测值,其中所述第二参数包括评分数据的平均值,第一用户相对用户平均评分的偏移量,第一产品相对产品平均评分的偏移量,第一产品的产品因素向量,涵盖用户的用户因素向量及隐式反馈信息的中间参量;
所述预测公式为:
其中,为用户对产品的预测值,μ为评分数据的平均值,bu为用户相对用户平均评分的偏移量,bi为产品相对产品平均评分的偏移量,qi为产品的产品因素向量,zu为涵盖用户的用户因素向量及隐式反馈信息的中间参量。
结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述第一节点根据所述流数据对第一参数进行更新之前还包括:
所述第一节点接收所述第二节点发送的第一指示信息,所述第一指示信息中包括加锁指令;
所述第一节点根据所述加锁指令锁定与所述第一矩阵同行号或同列号的第二矩阵;
所述第一节点根据所述流数据对第一参数进行更新包括:
所述第一节点根据所述流数据以及所述锁定的与所述第一矩阵同行号或同列号的第二矩阵对第一参数进行更新。
结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式或第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述第一节点根据所述流数据对第一参数进行更新,获得第二参数后还包括:
所述第一节点接收所述第二节点发送第二指示信息,所述第二指示信息中包括解锁指令;
所述第一节点根据所述解锁指令解锁与所述第一矩阵同行号或同列号的第二矩阵。
第二方面,本发明实施例提供一种信息推荐方法,包括:
第二节点接收第一用户的流数据,所述流数据为所述第一用户提供的对第一产品的评分信息,所述流数据包含所述第一用户的标识和所述第一产品的标识;
所述第二节点根据所述流数据中的第一用户的标识和第一产品的标识,确定所述流数据所属的第一节点;
所述第二节点向所述第一节点发送所述流数据,以使得所述第一节点根据所述流数据对第一参数进行更新,并根据更新的参数计算所述第一用户对第二产品的评分的预测值;
当所述第二节点接收到所述预测值后,根据所述预测值向所述第一用户提供产品推荐信息,其中,所述第二节点和所述第一节点均为网络中的节点。
结合第二方面,在第二方面的第一种可能的实现方式中,所述第二节点根据所述流数据中的用户标识和产品标识,确定所述流数据所属的第一节点包括:
所述第二节点根据所述流数据中的第一用户的标识和第一产品的标识确定所述流数据所属的第一矩阵;
所述第二节点根据保存的对应关系,确定所述第一矩阵所属的第一节点。
结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述第二节点根据保存的对应关系,确定所述第一矩阵所属的第一节点,之后还包括:
所述第二节点向所述第一节点发送第一指示信息,所述第一指示信息中包括加锁指令,以使得所述第一节点根据所述加锁指令锁定与所述第一矩阵同行号或同列号的第二矩阵。
结合第二方面或第二面的第一种可能的实现方式或第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述第二节点向所述第一节点发送所述流数据以及所述第一矩阵的行号和列号,以使得所述第一节点根据所述流数据以及所述第一矩阵的行号和列号对第一参数进行更新,之后还包括:
所述第二节点向所述第一节点发送第二指示信息,所述第二指示信息中包括解锁指令,以使得所述第一节点根据所述解锁指令解锁与所述第一矩阵同行号或同列号的第二矩阵。
结合第二方面或第二面的第一种可能的实现方式或第二方面的第二种可能的实现方式或第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,第二节点接收第一用户的流数据之前,还包括:
所述第二节点根据第一节点的数量将用户对产品的评分数据集构成的评分矩阵划分成子矩阵;
所述第二节点为所述子矩阵块分配节点;
所述第二节点保存所述子矩阵与所述子矩阵分配到的节点的对应关系。
第三方面,本发明实施例提供一种信息推荐装置,包括:
接收模块,用于接收第二节点发送的流数据,所述数据流为第一用户提供的对第一产品的评分信息;
更新模块,用于根据所述流数据对第一参数进行更新,获得第二参数;
计算模块,用于根据所述第二参数计算所述第一用户对第二产品的评分的预测值,所述第一节点、第二节点均为网络中的节点;
发送模块,用于将所述预测值发送给所述第二节点,以使得第二节点根据所述预测值向所述第一用户提供产品推荐信息。
结合第三方面,在第三方面的第一种可能的实现方式中,所述流数据包括用户u对产品i的实际评分值;
所述第一参数包括用户相对用户平均评分的偏移量bu,涵盖用户的用户因素向量及隐式反馈信息的中间参量zu,产品相对产品平均评分的偏移量bi和产品的产品因素向量qi;
所述更新模块,具体用于根据所述流数据通过预设计算规则对第一参数进行更新,获得第二参数;
所述预设计算规则如下,其中,所述第二参数包括预设计算规则左边出现的bu、bi、zu以及qi,所述第一参数包括预设计算规则右边出现的bu、bi、zu以及qi:
bu←bu+γ1·(eui-λ1bu)
bi←bi+γ1·(eui-λ1bi)
qi←qi+γ2·(eui·zu-λ2qi)
zu←zu+γ2·(2eui·qi-λ2zu)
式中γ1和γ2为迭代步长,λ1和λ2为用于避免过拟合现象的正则化因子,eui为用户u对产品i的评分误差,即其中,为用户u对产品i评分的预测值,rui为用户u对产品i的实际评分值。
结合第三方面或第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述计算模块具体用于利用所述第二参数和预测公式计算所述第一用户对第二产品评分的预测值,其中所述第二参数包括评分数据的平均值,第一用户相对用户平均评分的偏移量,第一产品相对产品平均评分的偏移量,第一产品的产品因素向量,涵盖用户的用户因素向量及隐式反馈信息的中间参量;
所述预测公式为:
其中,为用户对产品的预测值,μ为评分数据的平均值,bu为用户相对用户平均评分的偏移量,bi为产品相对产品平均评分的偏移量,qi为产品的产品因素向量,zu为涵盖用户的用户因素向量及隐式反馈信息的中间参量。
结合第三方面或第三方面的第一种可能的实现方式或第三方面的第二种可能的实现方式,在第三方面的第三种可能的实现方式中,所述接收模块还用于接收所述第二节点发送的第一指示信息,所述第一指示信息中包括加锁指令;
所述装置还包括:
锁定模块,用于根据所述加锁指令锁定与所述第一矩阵同行号或同列号的第二矩阵;
所述更新模块,具体用于根据所述流数据以及所述锁定的与所述第一矩阵同行号或同列号的第二矩阵对第一参数进行更新。
结合第三方面或第三方面的第一种可能的实现方式或第三方面的第二种可能的实现方式或第三方面的第三种可能的实现方式,在第三方面的第四种可能的实现方式中,所述接收模块,还用于接收所述第二节点发送第二指示信息,所述第二指示信息中包括解锁指令;
所述装置还包括:
解锁模块,用于根据所述解锁指令解锁与所述第一矩阵同行号或同列号的第二矩阵。
第四方面,本发明实施例提供一种信息推荐装置,包括:
接收模块,用于接收第一用户的流数据,所述流数据为所述第一用户提供的对第一产品的评分信息,所述流数据包含所述第一用户的标识和所述第一产品的标识;
确定模块,用于根据所述流数据中的第一用户的标识和第一产品的标识,确定所述流数据所属的第一节点;
发送模块,用于向所述第一节点发送所述流数据,以使得所述第一节点根据所述流数据对第一参数进行更新,并根据更新的参数计算所述第一用户对第二产品的评分的预测值;
推荐模块,用于根据所述预测值向所述第一用户提供产品推荐信息,其中,所述第二节点和所述第一节点均为网络中的节点。
在第四方面的第一种可能的实现方式中,所述确定模块,具体用于:
根据所述流数据中的第一用户的标识和第一产品的标识确定所述流数据所属的第一矩阵;
根据保存的对应关系,确定所述第一矩阵所属的第一节点。
结合第四方面或第四方面的第一种可能的实现方式,在第四方面的第二种可能的实现方式中,所述发送模块,还用于向所述第一节点发送第一指示信息,所述第一指示信息中包括加锁指令,以使得所述第一节点根据所述加锁指令锁定与所述第一矩阵同行号或同列号的第二矩阵。
结合第四方面或第四面的第一种可能的实现方式或第四方面的第二种可能的实现方式,在第四方面的第三种可能的实现方式中,所述发送模块,还用于向所述第一节点发送第二指示信息,所述第二指示信息中包括解锁指令,以使得所述第一节点根据所述解锁指令解锁与所述第一矩阵同行号或同列号的第二矩阵。
结合第四方面或第四面的第一种可能的实现方式或第四方面的第二种可能的实现方式或第四方面的第三种可能的实现方式,在第四方面的第四种可能的实现方式中,还包括:
划分模块,用于根据第一节点的数量将用户对产品的评分数据集构成的评分矩阵划分成子矩阵;
分配模块,用于为所述子矩阵块分配节点;
保存模块,用于保存所述子矩阵与所述子矩阵分配到的节点的对应关系。
第五方面,本发明实施例提供一种信息推荐系统,包括第一节点和第二节点,其中,所述第一节点采用本发明任意实施例所提供的第一节点侧信息推荐装置,所述第二节点采用本发明任意实施例所提供的第二节点侧信息推荐装置。
本发明实施例提供的技术方案,第一节点接收第二节点发送的流数据,所述数据流为第一用户提供的对第一产品的评分信息;所述第一节点根据所述流数据对第一参数进行更新,获得第二参数;所述第一节点根据所述第二参数计算所述第一用户对第二产品的评分的预测值,所述第一节点、第二节点均为网络中的节点;所述第一节点将所述预测值发送给所述第二节点,以使得第二节点根据所述预测值向所述第一用户提供产品推荐信息。参数的更新计算和用户对各产品评分的预测值由流数据所归属于的第一节点执行,确保了数据处理速度。预测值是根据更新后的模型参数计算获得,提高了信息推荐的精确度。进一步的,参数还包含了用户对产品的隐式反馈信息的,因此,能够进一步的提高用户对各产品评分的预测值的精确度。更进一步的,本发明实施例中的zu为简化了的涵盖用户的用户因素向量及隐式反馈信息的中间参量,极大地提高模型参数求解的速度。可见,本发明实施例提供的技术方案,适用于大规模流数据的应用场景,在确保信息推荐速度的同时,提高了信息推荐的精确度。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明信息推荐方法实施例一的流程图;
图2为本发明信息推荐方法实施例二的流程图;
图3为本发明信息推荐方法实施例三的流程图;
图4为本发明信息推荐方法实施例四的流程图;
图5为本发明信息推荐方法实施例五的流程图;
图6为本发明信息推荐方法实施例六的流程图;
图7为本发明信息推荐方法实施例七的流程图;
图8为本发明信息推荐方法实施例八的流程图;
图9为本发明信息推荐装置实施例一的结构示意图;
图10为本发明信息推荐装置实施例二的结构示意图;
图11为本发明信息推荐装置实施例三的结构示意图;
图12为本发明信息推荐装置实施例四的结构示意图;
图13为本发明信息推荐装置实施例五的结构示意图;
图14为本发明实施例提供的信息推荐系统的结构示意图;
图15为本发明实施例提供的信息推荐设备实施例一的结构示意图;
图16为本发明实施例提供的信息推荐设备实施例二的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明信息推荐方法实施例一的流程图。如图1所示,本实施例的方法可以包括以下内容。
S101、第一节点接收第二节点发送的流数据。
具体的,所述数据流为第一用户提供的对第一产品的评分信息,所述第一用户为信息推荐系统的用户对产品的评分数据集中的任一用户,所述第一产品为信息推荐系统的用户对产品的评分数据集中的任一产品。
所述流数据可以为用户输入数据元组格式的流数据,流数据包含用户标识和产品标识。例如,流数据uM为用户标识,iM为产品标识,为用户uM对产品iM的评分。
S102、第一节点根据流数据对第一参数进行更新,获得第二参数。
具体的,第一节点(例如,计算工作机)在接收到所述流数据后,可以根据所述流数据,对第一参数进行更新计算,得到第二参数。其中,所述第一参数为更新前的模型参数,所述第二参数为根据最新流数据更新后的模型参数。
S103、第一节点根据第二参数计算第一用户对第二产品的评分的预测值。
具体的,所述第一节点、第二节点均为网络中的节点,所述第一用户为信息推荐系统的用户对产品的评分数据集中的任一用户,所述第二产品为信息推荐系统的用户对产品的评分数据集中的任一产品。
S104、第一节点将预测值发送给第二节点,以使得第二节点根据预测值向第一用户提供产品推荐信息。
具体的,第一节点根据第二节点发送的流数据对第一参数进行更新,并进一步的根据更新后的参数计算用户对各产品的评分的预测值,然后将所述预测值发送给第二节点。
本实施例中,第一节点在接收第二节点发送的流数据后,根据流数据对第一参数进行更新,获得第二参数,并进一步的根据第二参数计算第一用户对第二产品的评分的预测值,然后将预测值发送给第二节点,使得第二节点在接收到预测值后,可以根据预测值向第一用户提供产品推荐信息。模型参数的更新计算和用户对各产品评分的预测值由流数据所归属于的第一节点执行,确保了数据处理速度。预测值是根据更新后的模型参数计算获得,提高了信息推荐的精确度。因此,本发明实施例提供的技术方案,适用于大规模流数据的应用场景,在确保信息推荐速度的同时,提高了信息推荐的精确度。
如上所述的方法,其中,所述流数据包括用户u对产品i的实际评分值;
所述第一参数包括用户相对用户平均评分的偏移量bu,涵盖用户的用户因素向量及隐式反馈信息的中间参量zu,产品相对产品平均评分的偏移量bi和产品的产品因素向量qi;
所述第一节点根据所述流数据对第一参数进行更新,获得第二参数包括:
所述第一节点根据所述流数据通过预设计算规则对第一参数进行更新,获得第二参数;
所述预设计算规则如下,其中,所述第二参数包括预设计算规则左边出现的bu、bi、zu以及qi,所述第一参数包括预设计算规则右边出现的bu、bi、zu以及qi:
bu←bu+γ1·(eui-λ1bu)
bi←bi+γ1·(eui-λ1bi)
qi←qi+γ2·(eui·zu-λ2qi)
zu←zu+γ2·(2eui·qi-λ2zu)
式中γ1和γ2为迭代步长,λ1和λ2为用于避免过拟合现象的正则化因子,eui为用户u对产品i的评分误差,即其中,为用户u对产品i评分的预测值,rui为用户u对产品i的实际评分值。
具体的,基于用户隐式反馈的基于潜在因素模型的推荐系统将用户和产品转换到相同的潜在因素空间,改进的潜在因素模型为:
式中表示了用户对产品的隐式反馈。
基于用户隐式反馈的潜在因素模型推荐系统的参数可通过求解如下的优化问题获得:
典型地,通过梯度下降法,求解上述正则化后的均方误差函数,即可学习得到模型参数,式中的λ1和λ2为正则化因子,用于避免过拟合现象。
定义用户对产品的评分误差为对于由用户-产品对构成的集合κ的某一个评分数据rui,沿负梯度方向更新待确定参数:
bu←bu+γ1·(eui-λ1bu)
bi←bi+γ1·(eui-λ1bi)
pu←pu+γ2·(eui·qi-λ2pu)
式中γ1和γ2为迭代步长。
上面的参数求解过程中引入了一层内循环,即求解参数yj所产生的循环。嵌套循环的产生会极大地增加计算的时间。
可以通过一种等价变换的方式,消除yj的计算,即不必计算通过消除内循环,可确保在同样精度的前
提下极大地提高模型参数求解的速度,此外,后面也会看到,这一等价变换也极大地方便了
并行化的实现。
引入一个辅助变量zu,令则
由于
和pu←pu+γ2·(eui·qi-λ2pu),因
此,我们可以构建和△pui=eui·qi-λ2pu。
根据△pui的表达式,eui·qi=△pui+λ2pu,将其代入△yuij的表达式,可得
将△yuij代入式△zui中,则有
经过上面的变换,无需求解参数yj。
遍历用户-产品对构成的集合κ的所有评分数据,其中对遍历到的那个评分数据rui,沿负梯度方向更新待确定参数:
bu←bu+γ1·(eui-λ1bu)
bi←bi+γ1·(eui-λ1bi)
qi←qi+γ2·(eui·zu-λ2qi)
zu←zu+γ2·(2eui·qi-λ2zu)
式中γ1和γ2为迭代步长。
本实施例中,第一节点在接收第二节点发送的流数据后,根据流数据对第一参数进行更新,获得第二参数,并进一步的根据第二参数计算第一用户对第二产品的评分的预测值,然后将预测值发送给第二节点,使得第二节点在接收到预测值后,可以根据预测值向第一用户提供产品推荐信息。模型参数的更新计算和用户对各产品评分的预测值由流数据所归属于的第一节点执行,确保了数据处理速度。预测值是根据更新后的模型参数计算获得,提高了信息推荐的精确度。进一步的,模型参数还包含了用户对产品的隐式反馈信息的,因此,能够进一步的提高用户对各产品评分的预测值的精确度。更进一步的,本发明实施例中的zu为简化了的涵盖用户的用户因素向量及隐式反馈信息的中间参量,极大地提高模型参数求解的速度。因此,本发明实施例提供的技术方案,适用于大规模流数据的应用场景,在确保信息推荐速度的同时,提高了信息推荐的精确度。
如上所述的方法,其中,所述第一节点根据所述第二参数计算所述第一用户对第二产品的评分的预测值包括:
利用所述第二参数和预测公式计算所述第一用户对第二产品评分的预测值,其中所述第二参数包括评分数据的平均值,第一用户相对用户平均评分的偏移量,第一产品相对产品平均评分的偏移量,第一产品的产品因素向量,涵盖用户的用户因素向量及隐式反馈信息的中间参量;
所述预测公式为:
其中,为用户对产品的预测值,μ为评分数据的平均值,bu为用户相对用户平均评分的偏移量,bi为产品相对产品平均评分的偏移量,qi为产品的产品因素向量,zu为涵盖用户的用户因素向量及隐式反馈信息的中间参量。
具体的,考虑用户隐式反馈的基于潜在因素模型的推荐系统将用户和产品转换到相同的潜在因素空间,可构建如下改进的潜在因素模型:
式中表示了用户对产品的隐式反馈。
考虑用户隐式反馈的潜在因素模型推荐系统的参数可通过求解如下的优化问题获得:
典型地,通过梯度下降法,求解上述正则化后的均方误差函数,即可学习得到模型参数,式中的λ1和λ2为正则化因子,用于避免过拟合现象。
定义用户对产品的评分误差为对于由用户-产品对构成的集合κ的某一个评分数据rui,沿负梯度方向更新待确定参数:
bu←bu+γ1·(eui-λ1bu)
bi←bi+γ1·(eui-λ1bi)
pu←pu+γ2·(eui·qi-λ2pu)
式中γ1和γ2为迭代步长。
上面的参数求解过程中引入了一层内循环,即求解参数yj所产生的循环。嵌套循环的产生会极大地增加计算的时间。
可以通过一种等价变换的方式,消除yj的计算,即不必计算通过消除内循环,可确保在同样精度的前
提下极大地提高模型参数求解的速度,此外,后面也会看到,这一等价变换也极大地方便了
并行化的实现。
引入一个辅助变量zu,令则
由于
和pu←pu+γ2·(eui·qi-λ2pu),因
此,我们可以构建和△pui=eui·qi-λ2pu。
根据△pui的表达式,eui·qi=△pui+λ2pu,将其代入△yuij的表达式,可得
将△yuij代入式△zui中,则有
经过上面的变换,无需求解参数yj。
其中,可以设定时间周期,判断归属于第一节点(例如,计算工作机)的评分数据的平均值是否需要更新,若为是,则更新计算归属于第一节点的评分数据的平均值。第二节点利用一段时间内接收的流数据计算每个第一节点负责的矩阵块在这段时间内获得的流数据评分值的平均值,即获得针对该第一节点的平均评分。如针对工作机m的平均评分为μm,该值将被用于后续的模型参数更新中。推荐系统运行一段时间后,例如,经过设定的时间周期,可重复上面的过程,以更新μm。
可以设定时间周期,判断归属于第一节点(例如,计算工作机)的评分数据的平均值是否需要更新,若为是,则更新计算归属于第一节点的评分数据的平均值。第一节点利用一段时间内接收的流数据计算每个第一节点负责的矩阵块在这段时间内获得的流数据评分值的平均值,即获得针对该第一节点的平均评分。
本实施例中,第一节点在接收第二节点发送的流数据后,首先判断归属于第一节点的评分数据的平均值是否需要更新,若为是,则更新计算归属于第一节点的评分数据的平均值,然后根据流数据对第一参数进行更新,获得第二参数,并进一步的根据第二参数计算第一用户对第二产品的评分的预测值,然后将预测值发送给第二节点,使得第二节点在接收到预测值后,可以根据预测值向第一用户提供产品推荐信息。模型参数的更新计算和用户对各产品评分的预测值由流数据所归属于的第一节点执行,确保了数据处理速度。其中,预测值是根据更新后的模型参数和归属于第一节点的评分数据的平均值计算获得,提高了信息推荐的精确度。进一步的,模型参数还包含了用户对产品的隐式反馈信息的,因此,能够进一步的提高用户对各产品评分的预测值的精确度。更进一步的,本发明实施例中的zu为简化了的涵盖用户的用户因素向量及隐式反馈信息的中间参量,极大地提高模型参数求解的速度。可见,本发明实施例提供的技术方案,适用于大规模流数据的应用场景,在确保信息推荐速度的同时,提高了信息推荐的精确度。
图2为本发明信息推荐方法实施例二的流程图。如图2所示,在图1所示本发明方法实施例一的基础上,在S102所述第一节点根据所述流数据对第一参数进行更新之前,本实施例的方法还可以包括以下内容。
S201、第一节点接收第二节点发送的第一指示信息,第一指示信息中包括加锁指令。
第二节点在确定流数据所属的第一节点后,指示第一节点将那些与所述流数据所属矩阵块(第一矩阵)同行号或者同列号的其它矩阵块(第二矩阵)锁定,以避免同步计算产生的冲突。
S202、第一节点根据加锁指令锁定与第一矩阵同行号或同列号的第二矩阵。
第一节点在接收第二节点发送的第一指示信息后,将第二矩阵锁定,以避免其它节点执行与第二矩阵相关的参数更新。
所述第一节点根据所述流数据对第一参数进行更新包括:
所述第一节点根据所述流数据以及所述锁定的与所述第一矩阵同行号或同列号的第二矩阵对第一参数进行更新计算。
具体的,第一节点可以根据所述流数据归属于的第一矩阵的行号和列号,从第四节点(例如,数据存储单元)查找获取到原始模型参数(第一参数)和执行模型参数更新计算所需的其它参数数据,进而可以执行包含用户对产品的隐式反馈信息的模型参数的更新计算,然后再将更新后的模型参数保存到第四节点。
图3为本发明信息推荐方法实施例三的流程图。如图3所示,在图2所示本发明方法实施例二的基础上,在S102所述第一节点根据所述流数据对第一参数进行更新,获得第二参数之后,本实施例的方法还可以包括以下内容。
S301、第一节点接收第二节点发送第二指示信息,第二指示信息中包括解锁指令。
具体的,在第一节点根据接收到的流数据对第一参数进行更新后,第二节点指示第一节点将锁定的那些与所述流数据所属矩阵块(第一矩阵)同行号或者同列号的其它矩阵块(第二矩阵)解锁。
S302、第一节点根据解锁指令解锁与第一矩阵同行号或同列号的第二矩阵。
第一节点在接收第二节点发送的第二指示信息后,将第二矩阵解锁,以恢复其它节点执行与第二矩阵相关的参数更新计算。
图4为本发明信息推荐方法实施例四的流程图。如图4所示,本实施例的方法可以包括以下内容。
S401、第二节点接收第一用户输入的流数据,流数据包含第一用户的标识和第一产品的标识。
具体的,所述流数据为所述第一用户提供的对第一产品的评分信息,所述第二节点可以为主处理器,所述第一用户为信息推荐系统中用户对产品的评分数据集中的任一用户。
具体的,用户可以输入数据元组格式的流数据,例如,流数据uM为用户标识,iM为产品标识,为用户uM对产品iM的评分。
S402、第二节点根据流数据中的第一用户的标识和第一产品的标识,确定流数据所属的第一节点。
例如,第二节点为主处理器,第一节点为进行数据计算的工作机。
可选的,主处理器可以对由用户对产品的评分数据集构成的评分矩阵划分矩阵块,并通过判断用户评分归属于哪个矩阵块,进而可知其归属于哪个计算工作机。
S403、第二节点向第一节点发送流数据,以使得第一节点根据流数据对第一参数进行更新,并根据更新的参数计算第一用户对第二产品的评分的预测值。
例如,主处理器向流数据归属于的计算工作机发送流数据,所述计算工作机在接收到所述流数据后,根据所述流数据,对第一参数进行更新计算,得到第二参数。所述第一参数为更新前的模型参数,所述第二参数为根据最新流数据更新后的模型参数。计算工作机还进一步的根据第二参数计算第一用户对各产品的评分的预测值。
S404、当第二节点接收到预测值后,第二节根据预测值向第一用户提供产品推荐信息。
具体的,第一节点根据第二节点发送的流数据对第一参数进行更新,并进一步的根据更新后的参数计算用户对各产品的评分的预测值,然后将所述预测值发送给第二节点。当第二节点接收到所述预测值后,根据所述预测值向所述第一用户提供产品推荐信息,其中,所述第二节点和所述第一节点均为网络中的节点。第二节点可以根据预测值的高低,向第一用户提供比较符合其偏好的产品推荐信息。
本实施例中,第二节点在接收到用户输入的流数据后,首先获取流数据归属于的第一节点,然后通过将流数据发送给其所归属于的第一节点,以使得第一节点能够根据所述流数据对第一参数进行更新,获取第二参数。第一节点根据所述第二参数计算所述第一用户对各产品评分的预测值,并将所述预测值发送给第二节点。最后第二节点根据预测值向用户提供产品推荐信息。由于模型参数的更新计算和用户对各产品评分的预测值由流数据所归属于的第一节点执行,确保了数据处理速度,因此,本发明实施例提供的技术方案,适用于大规模流数据的应用场景,在确保信息推荐速度的同时,提高了信息推荐的精确度。
图5为本发明信息推荐方法实施例五的流程图。如图5所示,在图4所示本发明方法实施例四的基础上,S402所述的第二节点根据流数据中的第一用户的标识和第一产品的标识,确定流数据所属的第一节点,具体可以包括:
S501、第二节点根据流数据中的第一用户的标识和第一产品的标识确定流数据所属的第一矩阵。
S502、第二节点根据保存的对应关系,确定第一矩阵所属的第一节点。
具体的,流数据中包含了用户标识和产品标识,第二节点可以根据所述流数据中的用户标识和产品标识确定所述流数据所属的第一矩阵和所述流数据所属的第一节点。例如,流数据uM为用户标识,iM为产品标识,为用户uM对产品iM的评分,第二节点首先判断用户评分归属于哪个矩阵块,进而可知其归属于哪个计算工作机(第一节点)。
图6为本发明信息推荐方法实施例六的流程图。如图6所示,在图5所示本发明方法实施例五的基础上,在S502所述第二节点根据保存的对应关系,确定第一矩阵所属的第一节点之后,本实施例的方法还可以包括以下内容。
S601、第二节点向第一节点发送第一指示信息,第一指示信息中包括加锁指令,以使得第一节点根据加锁指令锁定与第一矩阵同行号或同列号的第二矩阵。
具体的,第二节点在确定流数据所属的第一节点后,指示第一节点将那些与所述流数据所属矩阵块(第一矩阵)同行号或者同列号的其它矩阵块(第二矩阵)锁定,以避免同步计算产生的冲突。
图7为本发明信息推荐方法实施例七的流程图。如图7所示,在图6所示本发明方法实施例六的基础上,在S403所述第二节点向第一节点发送所述流数据,以使得第一节点根据流数据对第一参数进行更新,获取第二参数之后,本实施例的方法还可以包括以下内容。
S701、第二节点向第一节点发送第二指示信息,第二指示信息中包括解锁指令,以使得第一节点根据解锁指令解锁与第一矩阵同行号或同列号的第二矩阵。
具体的,在第一节点根据接收到的流数据对第一参数进行更新后,第二节点指示第一节点将锁定的那些与所述流数据所属矩阵块(第一矩阵)同行号或者同列号的其它矩阵块(第二矩阵)解锁,以恢复与被锁定矩阵块中的评分数据相关的计算。所述第二节点还可以向所述第一节点发送所述流数据以及所述第一矩阵的行号和列号,以使得所述第一节点根据所述流数据以及所述第一矩阵的行号和列号对第一参数进行更新,
如上所述的方法,其中,在第二节点接收第一用户输入的流数据之前,还可以包括:
第二节点根据第一节点的数量将用户对产品的评分数据集构成的评分矩阵划分成子矩阵,并为所述子矩阵块分配节点。
具体的,假设推荐系统有M个用户,N个产品,可构成一个M×N的评分矩阵,对于这个矩阵,如果有w个第一节点(例如,计算工作机)负责其计算工作,我们可将这个评分矩阵划分为w2个矩阵块。例如,假设w取3,因此,我们可将下面的矩阵A划分为9个矩阵块。
对于上述矩阵A,如果与矩阵块B11,B22,B33相关的参数的更新,彼此之间是无关的它们的计算就可以并行进行,即三个计算工作机各自负责一个矩阵块对应参数的更新计算。同样地,如果与矩阵块B12,B23,B31相关的参数的更新可并行进行,与矩阵块B13,B21,B32相关的参数的更新也可并行进行,那么,一种计算任务分配方式为:计算工作机1可处理与矩阵块(B11,B23,B32)相关的参数的更新,计算工作机2可处理与矩阵块(B22,B31,B13)相关的参数的更新,计算工作机3可处理与矩阵块(B33,B12,B21)相关的参数的更新,因此,可以实现计算任务处理的并行化。
本实施例中,第二节点首先根据第一节点的数量将用户对产品的评分数据集构成的评分矩阵划分成矩阵块,在接收到用户输入的流数据后,可以获取流数据归属于的矩阵块和第一节点,然后通过将流数据发送给其所归属于的第一节点,以使得第一节点能够根据所述流数据对第一参数进行更新,获取第二参数,第一节点在对模型参数更新计算后,进一步的利用更新后的模型参数计算用户对各产品评分的预测值,并将预测值发送给第二节点,使得第二节点可以根据预测值向用户提供产品推荐信息。由于模型参数的更新计算和用户对各产品评分的预测值由流数据所归属于的第一节点执行,确保了数据处理速度,因此,本发明实施例提供的技术方案,适用于大规模流数据的应用场景,在确保信息推荐速度的同时,提高了信息推荐的精确度。
图8为本发明信息推荐方法实施例八的流程图。如图8所示,本实施例的方法可以包括以下内容。
S801、主处理器获取流数据。
具体的,主处理器可以直接接收用户输入的流数据,也可以通过数据获取单元获取流数据。
S802、主处理器为获取的流数据分配计算工作机。
具体的,主处理器将对流数据的计算处理任务分配到各计算工作机,使得与不同流数据相关的参数的更新计算可以并行进行。
S803、预测器从数据存储单元获取执行预测计算所需的各参数。
具体的,主处理器和各计算工作机在执行流数据相关参数数据的更新计算后,将最新的参数数据存储于数据存储单元。
S804、预测器执行预测计算。
具体的,预测器在获取相关参数数据后,可以依据预测公式计算用户对各产品评分的预测值。
S805、预测器为用户提供产品推荐信息。
具体的,预测器在计算出用户对各个产品的预测值后,即可根据预测值的高低,向用户提供比较符合其偏好的产品推荐信息。
本实施例中,主处理器在获取流数据后,通过将对流数据的计算处理任务分配到各计算工作机,使得与不同流数据相关的参数的更新计算可以并行进行,预测器进一步的通过从数据存储单元获取执行预测计算所需的各参数,并利用预测公式计算用户对各产品评分的预测值,进而根据预测值的高低,向用户提供产品推荐信息。由于模型参数包含用户对产品的隐式反馈信息,因此,在确保信息推荐速度的同时,提高了信息推荐的精确度。
图9为本发明信息推荐装置实施例一的结构示意图。如图9所示,本实施例的信息推荐装置可以包括接收模块901、更新模块902、计算模块903和发送模块904。其中,接收模块901,用于接收第二节点发送的流数据,所述数据流为第一用户提供的对第一产品的评分信息;更新模块902,用于根据所述流数据对第一参数进行更新,获得第二参数;计算模块903,用于根据所述第二参数计算所述第一用户对第二产品的评分的预测值,所述第一节点、第二节点均为网络中的节点;发送模块904,用于将所述预测值发送给所述第二节点,以使得第二节点根据所述预测值向所述第一用户提供产品推荐信息。
本实施例的信息推荐装置可以用于执行图1所示方法实施例的方法,具备相应的功能模块,其实现原理和所要达到的技术效果类似,在此不再赘述。
如上所述的装置,其中,所述流数据包括用户u对产品i的实际评分值;
所述第一参数包括用户相对用户平均评分的偏移量bu,涵盖用户的用户因素向量及隐式反馈信息的中间参量zu,产品相对产品平均评分的偏移量bi和产品的产品因素向量qi;
更新模块903,具体可以用于根据所述流数据通过预设计算规则对第一参数进行更新,获得第二参数;
所述预设计算规则如下,其中,所述第二参数包括预设计算规则左边出现的bu、bi、zu以及qi,所述第一参数包括预设计算规则右边出现的bu、bi、zu以及qi:
bu←bu+γ1·(eui-λ1bu)
bi←bi+γ1·(eui-λ1bi)
qi←qi+γ2·(eui·zu-λ2qi)
zu←zu+γ2·(2eui·qi-λ2zu)
式中γ1和γ2为迭代步长,λ1和λ2为用于避免过拟合现象的正则化因子,eui为用户u对产品i的评分误差,即其中,为用户u对产品i评分的预测值,rui为用户u对产品i的实际评分值。
本实施例的信息推荐装置,其实现原理和所要达到的技术效果上文中已有论述,在此不再赘述。
如上所述的装置,其中,计算模块903具体可以用于利用所述第二参数和预测公式计算所述第一用户对第二产品评分的预测值,其中所述第二参数包括评分数据的平均值,第一用户相对用户平均评分的偏移量,第一产品相对产品平均评分的偏移量,第一产品的产品因素向量,涵盖用户的用户因素向量及隐式反馈信息的中间参量;
所述预测公式为:
其中,为用户对产品的预测值,μ为评分数据的平均值,bu为用户相对用户平均评分的偏移量,bi为产品相对产品平均评分的偏移量,qi为产品的产品因素向量,zu为涵盖用户的用户因素向量及隐式反馈信息的中间参量。
本实施例的信息推荐装置,其实现原理和所要达到的技术效果上文中已有论述,在此不再赘述。
图10为本发明信息推荐装置实施例二的结构示意图。如图10所示,本实施例的信息推荐装置还可以包括锁定模块1001。锁定模块1001,用于根据所述加锁指令锁定与所述第一矩阵同行号或同列号的第二矩阵。接收模块901还可以用于接收所述第二节点发送的第一指示信息,所述第一指示信息中包括加锁指令。更新模块902具体可以用于根据所述流数据以及所述锁定的与所述第一矩阵同行号或同列号的第二矩阵对第一参数进行更新。
本实施例的信息推荐装置可以用于执行图2所示方法实施例的方法,具备相应的功能模块,其实现原理和所要达到的技术效果类似,在此不再赘述。
图11为本发明信息推荐装置实施例三的结构示意图。如图11所示,本实施例的信息推荐装置还可以包括解锁模块1101。解锁模块1101,用于根据所述解锁指令解锁与所述第一矩阵同行号或同列号的第二矩阵。接收模块901还可以用于接收所述第二节点发送第二指示信息,所述第二指示信息中包括解锁指令。
本实施例的信息推荐装置可以用于执行图3所示方法实施例的方法,具备相应的功能模块,其实现原理和所要达到的技术效果类似,在此不再赘述。
图12为本发明信息推荐装置实施例四的结构示意图。如图12所示,本实施例的信息推荐装置包括接收模块1201、确定模块1202、发送模块1203和推荐模块1204。其中,接收模块1201,用于接收第一用户的流数据,所述流数据为所述第一用户提供的对第一产品的评分信息,所述流数据包含所述第一用户的标识和所述第一产品的标识;确定模块1202,用于根据所述流数据中的第一用户的标识和第一产品的标识,确定所述流数据所属的第一节点;发送模块1203,用于向所述第一节点发送所述流数据,以使得所述第一节点根据所述流数据对第一参数进行更新,并根据更新的参数计算所述第一用户对第二产品的评分的预测值;推荐模块1204,用于根据所述预测值向所述第一用户提供产品推荐信息,其中,所述第二节点和所述第一节点均为网络中的节点。
本实施例的信息推荐装置可以用于执行图4所示方法实施例的方法,具备相应的功能模块,其实现原理和所要达到的技术效果类似,在此不再赘述。
如上所述的装置,其中,确定模块1202具体可以用于:根据所述流数据中的第一用户的标识和第一产品的标识确定所述流数据所属的第一矩阵;根据保存的对应关系,确定所述第一矩阵所属的第一节点。
本实施例的信息推荐装置可以用于执行图5所示方法实施例的方法,具备相应的功能模块,其实现原理和所要达到的技术效果类似,在此不再赘述。
如上所述的装置,其中,发送模块1203还可以用于向所述第一节点发送第一指示信息,所述第一指示信息中包括加锁指令,以使得所述第一节点根据所述加锁指令锁定与所述第一矩阵同行号或同列号的第二矩阵。
本实施例的信息推荐装置可以用于执行图6所示方法实施例的方法,具备相应的功能模块,其实现原理和所要达到的技术效果类似,在此不再赘述。
如上所述的装置,其中,发送模块1203还可以用于向所述第一节点发送第二指示信息,所述第二指示信息中包括解锁指令,以使得所述第一节点根据所述解锁指令解锁与所述第一矩阵同行号或同列号的第二矩阵。
本实施例的信息推荐装置可以用于执行图7所示方法实施例的方法,具备相应的功能模块,其实现原理和所要达到的技术效果类似,在此不再赘述。
图13为本发明信息推荐装置实施例五的结构示意图。如图13所示,本实施例的信息推荐装置可以包括划分模块1301、分配模块1302和保存模块1303。其中,划分模块1301,用于根据第一节点的数量将用户对产品的评分数据集构成的评分矩阵划分成子矩阵;分配模块1302,用于为所述子矩阵块分配节点;保存模块1303,用于保存所述子矩阵与所述子矩阵分配到的节点的对应关系。
本实施例的信息推荐装置,其实现原理和所要达到的技术效果上文中已有论述,在此不再赘述。
图14为本发明实施例提供的信息推荐系统的结构示意图。如图14所示,本实施例的信息推荐系统,可以包括第一节点1401(例如,计算工作机)和第二节点1402(例如,主存储器),其中,第一节点1401可以采用本发明任意实施例所提供的第一节点侧信息推荐装置,第二节点1402可以采用本发明任意实施例所提供的第二节点侧信息推荐装置,其实现原理和所要达到的技术可以参照前述方法实施例,在此不再赘述。
图15为本发明实施例提供的信息推荐设备实施例一的结构示意图。如图15所示,该信息推荐设备包括至少一个处理器1501(例如CPU),存储器1503,和至少一个通信总线1504,用于实现装置之间的连接通信。处理器1501用于执行存储器1503中存储的可执行模块,例如计算机程序。存储器1503可能包含高速随机存取存储器(RAM:Random AccessMemory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。
在一些实施方式中,存储器1503存储了程序1505,程序1505可以被处理器1501执行,这个程序包括执行一种信息推荐方法,该方法包括:
第一节点接收第二节点发送的流数据,所述数据流为第一用户提供的对第一产品的评分信息;
所述第一节点根据所述流数据对第一参数进行更新,获得第二参数;
所述第一节点根据所述第二参数计算所述第一用户对第二产品的评分的预测值,所述第一节点、第二节点均为网络中的节点;
所述第一节点将所述预测值发送给所述第二节点,以使得第二节点根据所述预测值向所述第一用户提供产品推荐信息。
上述执行信息推荐方法的程序,优选地,所述流数据包括用户u对产品i的实际评分值;
所述第一参数包括用户相对用户平均评分的偏移量bu,涵盖用户的用户因素向量及隐式反馈信息的中间参量zu,产品相对产品平均评分的偏移量bi和产品的产品因素向量qi;
所述第一节点根据所述流数据对第一参数进行更新,获得第二参数包括:
所述第一节点根据所述流数据通过预设计算规则对第一参数进行更新,获得第二参数;
所述预设计算规则如下,其中,所述第二参数包括预设计算规则左边出现的bu、bi、zu以及qi,所述第一参数包括预设计算规则右边出现的bu、bi、zu以及qi:
bu←bu+γ1·(eui-λ1bu)
bi←bi+γ1·(eui-λ1bi)
qi←qi+γ2·(eui·zu-λ2qi)
zu←zu+γ2·(2eui·qi-λ2zu)
式中γ1和γ2为迭代步长,λ1和λ2为用于避免过拟合现象的正则化因子,eui为用户u对产品i的评分误差,即其中,为用户u对产品i评分的预测值,rui为用户u对产品i的实际评分值。
上述执行信息推荐方法的程序,优选地,所述第一节点根据所述第二参数计算所述第一用户对第二产品的评分的预测值包括:
利用所述第二参数和预测公式计算所述第一用户对第二产品评分的预测值,其中所述第二参数包括评分数据的平均值,第一用户相对用户平均评分的偏移量,第一产品相对产品平均评分的偏移量,第一产品的产品因素向量,涵盖用户的用户因素向量及隐式反馈信息的中间参量;
所述预测公式为:
其中,为用户对产品的预测值,μ为评分数据的平均值,bu为用户相对用户平均评分的偏移量,bi为产品相对产品平均评分的偏移量,qi为产品的产品因素向量,zu为涵盖用户的用户因素向量及隐式反馈信息的中间参量。
上述执行信息推荐方法的程序,优选地,所述第一节点根据所述流数据对第一参数进行更新之前还包括:
所述第一节点接收所述第二节点发送的第一指示信息,所述第一指示信息中包括加锁指令;
所述第一节点根据所述加锁指令锁定与所述第一矩阵同行号或同列号的第二矩阵;
所述第一节点根据所述流数据对第一参数进行更新包括:
所述第一节点根据所述流数据以及所述锁定的与所述第一矩阵同行号或同列号的第二矩阵对第一参数进行更新。
上述执行信息推荐方法的程序,优选地,所述第一节点根据所述流数据对第一参数进行更新,获得第二参数后还包括:
所述第一节点接收所述第二节点发送第二指示信息,所述第二指示信息中包括解锁指令;
所述第一节点根据所述解锁指令解锁与所述第一矩阵同行号或同列号的第二矩阵。
图16为本发明实施例提供的信息推荐设备实施例二的结构示意图。如图16所示,该信息推荐设备包括至少一个处理器1601(例如CPU),存储器1603,和至少一个通信总线1604,用于实现装置之间的连接通信。处理器1601用于执行存储器1603中存储的可执行模块,例如计算机程序。存储器1603可能包含高速随机存取存储器(RAM:Random AccessMemory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。
在一些实施方式中,存储器1603存储了程序1605,程序1605可以被处理器1601执行,这个程序包括执行一种信息推荐方法,该方法包括:
第二节点接收第一用户的流数据,所述流数据为所述第一用户提供的对第一产品的评分信息,所述流数据包含所述第一用户的标识和所述第一产品的标识;
所述第二节点根据所述流数据中的第一用户的标识和第一产品的标识,确定所述流数据所属的第一节点;
所述第二节点向所述第一节点发送所述流数据,以使得所述第一节点根据所述流数据对第一参数进行更新,并根据更新的参数计算所述第一用户对第二产品的评分的预测值;
当所述第二节点接收到所述预测值后,根据所述预测值向所述第一用户提供产品推荐信息,其中,所述第二节点和所述第一节点均为网络中的节点。
上述执行信息推荐方法的程序,优选地,所述第二节点根据所述流数据中的用户标识和产品标识,确定所述流数据所属的第一节点包括:
所述第二节点根据所述流数据中的第一用户的标识和第一产品的标识确定所述流数据所属的第一矩阵;
所述第二节点根据保存的对应关系,确定所述第一矩阵所属的第一节点。
上述执行信息推荐方法的程序,优选地,所述第二节点根据保存的对应关系,确定所述第一矩阵所属的第一节点,之后还包括:
所述第二节点向所述第一节点发送第一指示信息,所述第一指示信息中包括加锁指令,以使得所述第一节点根据所述加锁指令锁定与所述第一矩阵同行号或同列号的第二矩阵。
上述执行信息推荐方法的程序,优选地,所述第二节点向所述第一节点发送所述流数据以及所述第一矩阵的行号和列号,以使得所述第一节点根据所述流数据以及所述第一矩阵的行号和列号对第一参数进行更新,之后还包括:
所述第二节点向所述第一节点发送第二指示信息,所述第二指示信息中包括解锁指令,以使得所述第一节点根据所述解锁指令解锁与所述第一矩阵同行号或同列号的第二矩阵。
上述执行信息推荐方法的程序,优选地,第二节点接收第一用户的流数据之前,还包括:
所述第二节点根据第一节点的数量将用户对产品的评分数据集构成的评分矩阵划分成子矩阵;
所述第二节点为所述子矩阵块分配节点;
所述第二节点保存所述子矩阵与所述子矩阵分配到的节点的对应关系。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (18)
1.一种信息推荐方法,其特征在于,包括:
第一节点接收第二节点发送的流数据,所述流数据为第一用户提供的对第一产品的评分信息;
所述第一节点根据所述流数据对第一参数进行更新,获得第二参数;
所述第一节点根据所述第二参数计算所述第一用户对第二产品的评分的预测值,所述第一节点、第二节点均为网络中的节点;
所述第一节点将所述预测值发送给所述第二节点,以使得第二节点根据所述预测值向所述第一用户提供产品推荐信息;
其中,所述第一节点根据所述流数据对第一参数进行更新之前还包括:
所述第一节点接收所述第二节点发送的第一指示信息,所述第一指示信息中包括加锁指令;
所述第一节点根据所述加锁指令锁定与第一矩阵同行号或同列号的第二矩阵;
所述第一节点根据所述流数据对第一参数进行更新包括:
所述第一节点根据所述流数据以及所述锁定的与所述第一矩阵同行号或同列号的第二矩阵对第一参数进行更新。
2.根据权利要求1所述的方法,其特征在于,所述流数据包括用户u对产品i的实际评分值;
所述第一参数包括用户相对用户平均评分的偏移量bu,涵盖用户的用户因素向量及隐式反馈信息的中间参量zu,产品相对产品平均评分的偏移量bi和产品的产品因素向量qi;
所述第一节点根据所述流数据对第一参数进行更新,获得第二参数包括:
所述第一节点根据所述流数据通过预设计算规则对第一参数进行更新,获得第二参数;
所述预设计算规则如下,其中,所述第二参数包括预设计算规则左边出现的bu、bi、zu以及qi,所述第一参数包括预设计算规则右边出现的bu、bi、zu以及qi:
bu←bu+γ1·(eui-λ1bu)
bi←bi+γ1·(eui-λ1bi)
qi←qi+γ2·(eui·zu-λ2qi)
zu←zu+γ2·(2eui·qi-λ2zu)
式中γ1和γ2为迭代步长,λ1和λ2为用于避免过拟合现象的正则化因子,eui为用户u对产品i的评分误差,即其中,为用户u对产品i评分的预测值,rui为用户u对产品i的实际评分值。
3.根据权利要求1或2所述的方法,其特征在于,所述第一节点根据所述第二参数计算所述第一用户对第二产品的评分的预测值包括:
利用所述第二参数和预测公式计算所述第一用户对第二产品评分的预测值,其中所述第二参数包括评分数据的平均值,第一用户相对用户平均评分的偏移量,第一产品相对产品平均评分的偏移量,第一产品的产品因素向量,涵盖用户的用户因素向量及隐式反馈信息的中间参量;
所述预测公式为:
其中,为用户对产品的预测值,μ为评分数据的平均值,bu为用户相对用户平均评分的偏移量,bi为产品相对产品平均评分的偏移量,qi为产品的产品因素向量,zu为涵盖用户的用户因素向量及隐式反馈信息的中间参量。
4.根据权利要求1或2所述的方法,其特征在于,所述第一节点根据所述流数据对第一参数进行更新,获得第二参数后还包括:
所述第一节点接收所述第二节点发送第二指示信息,所述第二指示信息中包括解锁指令;
所述第一节点根据所述解锁指令解锁与所述第一矩阵同行号或同列号的第二矩阵。
5.一种信息推荐方法,其特征在于,包括:
第二节点接收第一用户的流数据,所述流数据为所述第一用户提供的对第一产品的评分信息,所述流数据包含所述第一用户的标识和所述第一产品的标识;
所述第二节点根据所述流数据中的第一用户的标识和第一产品的标识,确定所述流数据所属的第一节点;所述第二节点向所述第一节点发送所述流数据,以使得所述第一节点根据所述流数据对第一参数进行更新,并根据更新的参数计算所述第一用户对第二产品的评分的预测值;
当所述第二节点接收到所述预测值后,根据所述预测值向所述第一用户提供产品推荐信息,其中,所述第二节点和所述第一节点均为网络中的节点;
其中,所述第二节点根据所述流数据中的用户标识和产品标识,确定所述流数据所属的第一节点包括:
所述第二节点根据所述流数据中的第一用户的标识和第一产品的标识确定所述流数据所属的第一矩阵;
所述第二节点根据保存的对应关系,确定所述第一矩阵所属的第一节点。
6.根据权利要求5所述的方法,其特征在于,所述第二节点根据保存的对应关系,确定所述第一矩阵所属的第一节点,之后还包括:
所述第二节点向所述第一节点发送第一指示信息,所述第一指示信息中包括加锁指令,以使得所述第一节点根据所述加锁指令锁定与所述第一矩阵同行号或同列号的第二矩阵。
7.根据权利要求5所述的方法,其特征在于,所述第二节点向所述第一节点发送所述流数据以及所述第一矩阵的行号和列号,以使得所述第一节点根据所述流数据以及所述第一矩阵的行号和列号对第一参数进行更新,之后还包括:
所述第二节点向所述第一节点发送第二指示信息,所述第二指示信息中包括解锁指令,以使得所述第一节点根据所述解锁指令解锁与所述第一矩阵同行号或同列号的第二矩阵。
8.根据权利要求5至7任一项所述的方法,其特征在于,第二节点接收第一用户的流数据之前,还包括:
所述第二节点根据第一节点的数量将用户对产品的评分数据集构成的评分矩阵划分成子矩阵;
所述第二节点为所述子矩阵分配节点;
所述第二节点保存所述子矩阵与所述子矩阵分配到的节点的对应关系。
9.一种信息推荐装置,其特征在于,包括:
接收模块,用于接收第二节点发送的流数据,所述流数据为第一用户提供的对第一产品的评分信息;
更新模块,用于根据所述流数据对第一参数进行更新,获得第二参数;
所述接收模块还用于接收所述第二节点发送的第一指示信息,所述第一指示信息中包括加锁指令;
计算模块,用于根据所述第二参数计算所述第一用户对第二产品的评分的预测值,所述第二节点为网络中的节点;
发送模块,用于将所述预测值发送给所述第二节点,以使得第二节点根据所述预测值向所述第一用户提供产品推荐信息。
10.根据权利要求9所述的装置,其特征在于,所述流数据包括用户u对产品i的实际评分值;
所述第一参数包括用户相对用户平均评分的偏移量bu,涵盖用户的用户因素向量及隐式反馈信息的中间参量zu,产品相对产品平均评分的偏移量bi和产品的产品因素向量qi;
所述更新模块,具体用于根据所述流数据通过预设计算规则对第一参数进行更新,获得第二参数;
所述预设计算规则如下,其中,所述第二参数包括预设计算规则左边出现的bu、bi、zu以及qi,所述第一参数包括预设计算规则右边出现的bu、bi、zu以及qi:
bu←bu+γ1·(eui-λ1bu)
bi←bi+γ1·(eui-λ1bi)
qi←qi+γ2·(eui·zu-λ2qi)
zu←zu+γ2·(2eui·qi-λ2zu)
式中γ1和γ2为迭代步长,λ1和λ2为用于避免过拟合现象的正则化因子,eui为用户u对产品i的评分误差,即其中,为用户u对产品i评分的预测值,rui为用户u对产品i的实际评分值。
11.根据权利要求9或10所述的装置,其特征在于,所述计算模块具体用于利用所述第二参数和预测公式计算所述第一用户对第二产品评分的预测值,其中所述第二参数包括评分数据的平均值,第一用户相对用户平均评分的偏移量,第一产品相对产品平均评分的偏移量,第一产品的产品因素向量,涵盖用户的用户因素向量及隐式反馈信息的中间参量;
所述预测公式为:
其中,为用户对产品的预测值,μ为评分数据的平均值,bu为用户相对用户平均评分的偏移量,bi为产品相对产品平均评分的偏移量,qi为产品的产品因素向量,zu为涵盖用户的用户因素向量及隐式反馈信息的中间参量。
12.根据权利要求9或10所述的装置,其特征在于,
所述装置还包括:
锁定模块,用于根据所述加锁指令锁定与第一矩阵同行号或同列号的第二矩阵;
所述更新模块,具体用于根据所述流数据以及所述锁定的与所述第一矩阵同行号或同列号的第二矩阵对第一参数进行更新。
13.根据权利要求12所述的装置,其特征在于,所述接收模块,还用于接收所述第二节点发送第二指示信息,所述第二指示信息中包括解锁指令;
所述装置还包括:
解锁模块,用于根据所述解锁指令解锁与所述第一矩阵同行号或同列号的第二矩阵。
14.一种信息推荐装置,其特征在于,包括:
接收模块,用于接收第一用户的流数据,所述流数据为所述第一用户提供的对第一产品的评分信息,所述流数据包含所述第一用户的标识和所述第一产品的标识;
确定模块,用于根据所述流数据中的第一用户的标识和第一产品的标识,确定所述流数据所属的第一节点;发送模块,用于向所述第一节点发送所述流数据,以使得所述第一节点根据所述流数据对第一参数进行更新,并根据更新的参数计算所述第一用户对第二产品的评分的预测值;
推荐模块,用于根据所述预测值向所述第一用户提供产品推荐信息,其中,所述第一节点为网络中的节点;
其中,所述确定模块,具体用于:
根据所述流数据中的第一用户的标识和第一产品的标识确定所述流数据所属的第一矩阵;
根据保存的对应关系,确定所述第一矩阵所属的第一节点。
15.根据权利要求14所述的装置,其特征在于,所述发送模块,还用于向所述第一节点发送第一指示信息,所述第一指示信息中包括加锁指令,以使得所述第一节点根据所述加锁指令锁定与所述第一矩阵同行号或同列号的第二矩阵。
16.根据权利要求14所述的装置,其特征在于,所述发送模块,还用于向所述第一节点发送第二指示信息,所述第二指示信息中包括解锁指令,以使得所述第一节点根据所述解锁指令解锁与所述第一矩阵同行号或同列号的第二矩阵。
17.根据权利要求14至16任一项所述的装置,其特征在于,还包括:
划分模块,用于根据第一节点的数量将用户对产品的评分数据集构成的评分矩阵划分成子矩阵;
分配模块,用于为所述子矩阵分配节点;
保存模块,用于保存所述子矩阵与所述子矩阵分配到的节点的对应关系。
18.一种信息推荐系统,包括第一节点和第二节点,其特征在于,
所述第一节点采用权利要求9-13任一项所述的信息推荐装置,所述第二节点采用权利要求14-17任一项所述的信息推荐装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410183029.8A CN105095241B (zh) | 2014-04-30 | 2014-04-30 | 一种信息推荐方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410183029.8A CN105095241B (zh) | 2014-04-30 | 2014-04-30 | 一种信息推荐方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105095241A CN105095241A (zh) | 2015-11-25 |
CN105095241B true CN105095241B (zh) | 2019-03-01 |
Family
ID=54575700
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410183029.8A Active CN105095241B (zh) | 2014-04-30 | 2014-04-30 | 一种信息推荐方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105095241B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105653657A (zh) * | 2015-12-25 | 2016-06-08 | Tcl集团股份有限公司 | 一种商品的推荐方法及装置 |
CN109819167B (zh) * | 2019-01-31 | 2020-11-03 | 维沃移动通信有限公司 | 一种图像处理方法、装置和移动终端 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102467709A (zh) * | 2010-11-17 | 2012-05-23 | 阿里巴巴集团控股有限公司 | 一种发送商品信息的方法和装置 |
CN103023977A (zh) * | 2012-11-19 | 2013-04-03 | 华南理工大学 | 基于位置信息的推荐系统及推荐方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008187576A (ja) * | 2007-01-31 | 2008-08-14 | Sony Corp | 情報処理装置および方法、並びにプログラム |
-
2014
- 2014-04-30 CN CN201410183029.8A patent/CN105095241B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102467709A (zh) * | 2010-11-17 | 2012-05-23 | 阿里巴巴集团控股有限公司 | 一种发送商品信息的方法和装置 |
CN103023977A (zh) * | 2012-11-19 | 2013-04-03 | 华南理工大学 | 基于位置信息的推荐系统及推荐方法 |
Non-Patent Citations (1)
Title |
---|
基于矩阵分解的协同过滤推荐算法研究;张川;《中国优秀硕士学位论文全文数据库》;20130915(第9期);第26-27页 |
Also Published As
Publication number | Publication date |
---|---|
CN105095241A (zh) | 2015-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Li et al. | Receding horizon control based consensus scheme in general linear multi-agent systems | |
Yi et al. | Distributed gradient algorithm for constrained optimization with application to load sharing in power systems | |
Gupta et al. | Half a dozen real-world applications of evolutionary multitasking, and more | |
Meng et al. | On iterative learning algorithms for the formation control of nonlinear multi-agent systems | |
Zhan et al. | Flocking of multi-agent systems via model predictive control based on position-only measurements | |
Frejinger et al. | Sampling of alternatives for route choice modeling | |
Zha et al. | A hybrid ant colony algorithm for U-line balancing and rebalancing in just-in-time production environment | |
Choi et al. | A survey on multi-agent reinforcement learning: Coordination problems | |
Xiao et al. | Chaotic dynamics in nonlinear duopoly Stackelberg game with heterogeneous players | |
Doguc et al. | An automated method for estimating reliability of grid systems using Bayesian networks | |
CN105095241B (zh) | 一种信息推荐方法、装置及系统 | |
Litvinchev et al. | Lagrangian heuristic for a class of the generalized assignment problems | |
WO2014083655A1 (ja) | ネットワークグラフ生成方法及び意思決定支援システム | |
Tang et al. | Distributed control and optimization of process system networks: A review and perspective | |
Cai et al. | Fast distributed MPC based on active set method | |
Drótos et al. | Resource leveling in a machine environment | |
Lei et al. | Web service composition based on reinforcement learning | |
Smith et al. | Cooperative control of microgrids: A review of theoretical frameworks, applications and recent developments | |
Davidović et al. | Parallel local search to schedule communicating tasks on identical processors | |
Chen et al. | Almost periodic solutions for a delayed Nicholson’s blowflies system with nonlinear density-dependent mortality terms and patch structure | |
EP3588326A1 (en) | Solving a deterministic global optimisation problem | |
CN107194155A (zh) | 一种基于小数据集和贝叶斯网络的威胁评估建模方法 | |
Harks et al. | Equilibrium computation in atomic splittable singleton congestion games | |
Su et al. | A new delay-range-dependent H∞ filter design for T–S nonlinear systems | |
Yuan et al. | Formation-containment control of heterogeneous linear multi-agent systems with adaptive event-triggered strategies |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |