当前位置: 首页 > 专利查询>浙江大学专利>正文

面向流式数据的分布式在线推荐方法技术

技术编号:10155324 阅读:145 留言:0更新日期:2014-06-30 20:30
本发明专利技术公开了一种面向流式数据的分布式在线推荐方法。它是采用分布式计算环境,对用户行为产生的流式数据直接进行处理,把用户对物品点击行为数据按用户编号和物品编号进行分组,把对应分组中的数据发送到相应的工作单元中,并根据用户的推荐反馈生成负样本,再用随机梯度下降算法进行统一的矩阵分解训练,采用协同过滤方法计算与用户最近感兴趣的品相似的物品集合,结合原推荐列表作为候选推荐集合,根据训练结果对候选集中的物品排序得到推荐结果。本发明专利技术可以面向流式数据进行分布式在线推荐,实时性强,计算性能高。

【技术实现步骤摘要】
面向流式数据的分布式在线推荐方法
本专利技术涉及计算机推荐系统,尤其涉及一种面向流式数据的分布式在线推荐方法。
技术介绍
随着互联网的飞速发展,各种信息正在爆炸性增长,从而导致“信息过载”的出现,针对这一问题,个性化推荐系统应运而生。个性化推荐系统能够为用户提供很好的决策支持和个性化服务。协同过滤算法通过数据挖掘和机器学习等方法,根据拥有相似兴趣或行为用户群的喜好为某一用户推荐他感兴趣的东西。ACM在1994年(ACM,1994:175–186)公布了基于用户的协同过滤算法,它找到那些具有相似兴趣的用户,综合这些相似用户对其他物品的行为记录,计算某一用户对物品的喜好程度。WorldWideWeb在2001年(the10thinternationalconferenceonWorldWideWeb.ACM,2001:285–295)公布了一种基于物品的协同过滤推荐算法,它通过建立用户物品倒排表找到所有被相同用户点击过的物品,计算这些物品之间的相似度,根据物品之间的相似度和用户的行为记录就能得到推荐列表。WebKDD在2000年(theACMWebKDD2000WebMiningforE-CommerceWorkshop,Boston,MA,2000)公布了一种通过奇异值分解的方法进行矩阵分解,对用户物品得分矩阵降维处理,增加数据稠密度,预测用户对物品的感兴趣程度。NIPS在2012年(NIPS,2012:1232-1243)公布了一种分布式随即梯度下降算法,它把训练数据被分成多份,每份训练数据由一个模型训练集群复本来处理,模型的参数统一存储在一系列参数服务器上,每台模型训练服务器只需要访问少量的参数服务器来存取它所负责的模型分区所需的部分参数。
技术实现思路
本专利技术的目的是为克服上述现有方法推荐延时性强,计算性能较低等缺点,提供一种实时性强、计算性能高的面向流式数据的分布式在线推荐方法。面向流式数据的分布式在线推荐方法包括以下步骤:1)构建分布式计算框架,分布式计算框架包括矩阵分解模块和推荐结果处理模块,矩阵分解模块由若干工作单元组成,其中每个工作单元对应用户行为数据矩阵中的一组数据块;2)接收用户行为数据并将用户行为数据发送到对应的工作单元,根据该用户的推荐反馈,生成负样本,即用户可能不感兴趣的物品,被推荐的物品中用户没用对其产生行为的有较大概率被选中为负样本;3)采用分布式随机梯度下降算法,对用户行为数据以及负样本数据进行矩阵分解训练,并保存新的训练结果;4)采用协同过滤的方法,利用用户行为数据离线计算物品相似度,并定时更新物品相似度数据;5)对于某个用户,利用物品相似度计算该用户最近感兴趣物品的相似物品集合,把该集合与该用户的原推荐列表集合的并集作为用户的候选推荐集合,并根据步骤3)中的矩阵分解训练结果计算该用户对候选推荐集合中所有物品的预测得分,对得分排序,得到该用户的推荐列表;6)返回推荐列表,把推荐列表中的物品推荐给用户。所述的步骤1)为:构建分布式计算框架,分布式计算框架包括矩阵分解模块和推荐结果处理模块,矩阵分解模块接收用户行为数据,根据用户行为数据得到分解矩阵,矩阵分解模块包含一个数据源节点负责获取用户行为数据,一个主节点负责数据分发与任务管理,若干个工作节点负责随机梯度下降运算进行矩阵分解,若干数据节点负责存储分解矩阵数据,推荐结果处理模块包含一个请求节点负责接收推荐请求获取候选集合,一个排序计算节点负责对候选集合进行排序并得到最终的推荐列表。所述的步骤2)为:接收用户行为数据并将用户行为数据发送到对应的工作单元,根据该用户的推荐反馈,生成负样本,即用户可能不感兴趣的物品,被推荐的物品中用户没用对其产生行为的有较大概率被选中为负样本,假设所有物品的数量为n,推荐反馈中未被该用户接受的物品有m个,它们被选中的概率是普通物品的a倍,a为大于1的整数,选取负样本时在1到n+(a-1)m之间产生随机数x,从小到大扫描推荐反馈中未被该用户接受的物品,每有一个未被该用户接受的物品,则x减去a-1,直到物品编号大于x,此时编号为x的物品被选为负样本。所述的步骤3)为:工作节点接收任务请求后,向数据节点请求对应的用户分解向量数据和物品分解向量数据,并根据这些数据按递推公式对用户分解向量和物品分解向量进行更新,递推公示如下所示:其中,α是学习速率,λ是正则项权重,它们都可以通过反复实验获得,Rij是用户i对物品j的评分,如果是根据用户点击行为进行训练,则当用户i点击物品j时,Rij值为1,uik是用户i的分解向量中第k维的值,vjk是物品j的分解向量中第k维的值,数据更新后再发送到数据节点保存。所述的步骤5)为:对于某个用户u,利用物品相似度得到该用户最近感兴趣物品的相似物品集合,物品i和物品j之间的相似度wij定义如下:其中,|N(i)|表示对物品i有过行为的用户集的数量,|N(j)|表示对物品j有过行为的用户集的数量,|N(i)∩N(j)|表同时对物品i和物品j都有过行为的用户集的数量,把相似物品集合定义为集合B,而用户的原推荐结果集合定义为集合S,把B∩S作为候选推荐集合,用矩阵分解得到的结果计算用户对物品的预测兴趣度得分,用户对物品的预测兴趣度得分pu,b计算表达式如下:pu,b=α(ui1bj1+···+uikbjk)其中,(ui1,ui2,…,uik)是用户u的分解向量,(bj1,bj2,…,bjk)是物品b的分解向量,α是得分系数,当b∈S时,α>1,当b∈B时,α=1,对得分排序,得到该用户的推荐列表。本专利技术与现有技术相比具有的有益效果:1.该方法能够对流式数据进行实时处理,增量式计算分解矩阵,并同时为用户进行推荐;2.该方法能够对用户进行在线推荐,能够快速捕捉并响应用户兴趣变化;3.该方法采用分布式计算,数据处理能力强,计算性能有明显提高。附图说明图1是矩阵分解模块的拓扑结构;图2是矩阵分解模块中工作节点的工作流程。具体实施方式面向流式数据的分布式在线推荐方法包括以下步骤:1)构建分布式计算框架,分布式计算框架包括矩阵分解模块和推荐结果处理模块,矩阵分解模块由若干工作单元组成,其中每个工作单元对应用户行为数据矩阵中的一组数据块;2)接收用户行为数据并将用户行为数据发送到对应的工作单元,根据该用户的推荐反馈,生成负样本,即用户可能不感兴趣的物品,被推荐的物品中用户没用对其产生行为的有较大概率被选中为负样本;3)采用分布式随机梯度下降算法,对用户行为数据以及负样本数据进行矩阵分解训练,并保存新的训练结果;4)采用协同过滤的方法,利用用户行为数据离线计算物品相似度,并定时更新物品相似度数据;5)对于某个用户,利用物品相似度计算该用户最近感兴趣物品的相似物品集合,把该集合与该用户的原推荐列表集合的并集作为用户的候选推荐集合,并根据步骤3)中的矩阵分解训练结果计算该用户对候选推荐集合中所有物品的预测得分,对得分排序,得到该用户的推荐列表;6)返回推荐列表,把推荐列表中的物品推荐给用户。所述的步骤1)为:构建分布式计算框架,分布式计算框架包括矩阵分解模块和推荐结果处理模块,矩阵分解模块接收用户行为数据,根据用户行为数据得到分解矩阵,矩阵分解模块包含一个数据源节点负责获取用户行为数据,本文档来自技高网
...
面向流式数据的分布式在线推荐方法

【技术保护点】
一种面向流式数据的分布式在线推荐方法,其特征在于包括以下步骤:1)构建分布式计算框架,分布式计算框架包括矩阵分解模块和推荐结果处理模块,矩阵分解模块由若干工作单元组成,其中每个工作单元对应用户行为数据矩阵中的一组数据块;2)接收用户行为数据并将用户行为数据发送到对应的工作单元,根据该用户的推荐反馈,生成负样本,即用户可能不感兴趣的物品,被推荐的物品中用户没用对其产生行为的有较大概率被选中为负样本;3)采用分布式随机梯度下降算法,对用户行为数据以及负样本数据进行矩阵分解训练,并保存新的训练结果;4)采用协同过滤的方法,利用用户行为数据离线计算物品相似度,并定时更新物品相似度数据;5)对于某个用户,利用物品相似度计算该用户最近感兴趣物品的相似物品集合,把该集合与该用户的原推荐列表集合的并集作为用户的候选推荐集合,并根据步骤3)中的矩阵分解训练结果计算该用户对候选推荐集合中所有物品的预测得分,对得分排序,得到该用户的推荐列表;6)返回推荐列表,把推荐列表中的物品推荐给用户。

【技术特征摘要】
1.一种面向流式数据的分布式在线推荐方法,其特征在于包括以下步骤:1)构建分布式计算框架,分布式计算框架包括矩阵分解模块和推荐结果处理模块,矩阵分解模块由若干工作单元组成,其中每个工作单元对应用户行为数据矩阵中的一组数据块;2)接收用户行为数据并将用户行为数据发送到对应的工作单元,根据该用户的推荐反馈,生成负样本,即用户可能不感兴趣的物品,被推荐的物品中用户没用对其产生行为的有较大概率被选中为负样本;3)采用分布式随机梯度下降算法,对用户行为数据以及负样本数据进行矩阵分解训练,并保存新的训练结果;4)采用协同过滤的方法,利用用户行为数据离线计算物品相似度,并定时更新物品相似度数据;5)对于某个用户,利用物品相似度计算该用户最近感兴趣物品的相似物品集合,把该集合与该用户的原推荐列表集合的并集作为用户的候选推荐集合,并根据步骤3)中的矩阵分解训练结果计算该用户对候选推荐集合中所有物品的预测得分,对得分排序,得到该用户的推荐列表;6)返回推荐列表,把推荐列表中的物品推荐给用户。2.根据权利要求1所述的面向流式数据的分布式在线推荐方法,其特征在于:所述的步骤1)为:构建分布式计算框架,分布式计算框架包括矩阵分解模块和推荐结果处理模块,矩阵分解模块接收用户行为数据,根据用户行为数据得到分解矩阵,矩阵分解模块包含一个数据源节点负责获取用户行为数据,一个主节点负责数据分发与任务管理,若干个工作节点负责随机梯度下降运算进行矩阵分解,若干数据节点负责存储分解矩阵数据,推荐结果处理模块包含一个请求节点负责接收推荐请求获取候选集合,一个排序计算节点负责对候选集合进行排序并得到最终的推荐列表。3.根据权利要求1所述的面向流式数据的分布式在线推荐方法,其特征在于:所述的步骤2)为:接收用户行为数据并将用户行为数据发送到对应的工作单元,根据该用户的推荐反馈,生成负样本,即用户可能不感兴趣的物品,被推荐的物品中用户没用对其产生行为的有较大概率被选中为负样本,假设所有物品的数量为n,推荐反馈中未被该用户接受的物品有m个,它们被选中的概率是普通物品的a倍,a为大于1的整数,选取负样本时在1到n+(a-1)m之间产生随机数x,从小到大扫描推荐反馈中未被该用户接受的物品,每有一个未被该用户接受的物品,则x减去a-1...

【专利技术属性】
技术研发人员:张寅边科王东辉魏宝刚
申请(专利权)人:浙江大学
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1