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

文档序号:7798697阅读:250来源:国知局
面向流式数据的分布式在线推荐方法
【专利摘要】本发明公开了一种面向流式数据的分布式在线推荐方法。它是采用分布式计算环境,对用户行为产生的流式数据直接进行处理,把用户对物品点击行为数据按用户编号和物品编号进行分组,把对应分组中的数据发送到相应的工作单元中,并根据用户的推荐反馈生成负样本,再用随机梯度下降算法进行统一的矩阵分解训练,采用协同过滤方法计算与用户最近感兴趣的品相似的物品集合,结合原推荐列表作为候选推荐集合,根据训练结果对候选集中的物品排序得到推荐结果。本发明可以面向流式数据进行分布式在线推荐,实时性强,计算性能高。
【专利说明】面向流式数据的分布式在线推荐方法
【技术领域】
[0001]本发明涉及计算机推荐系统,尤其涉及一种面向流式数据的分布式在线推荐方法。
【背景技术】
[0002]随着互联网的飞速发展,各种信息正在爆炸性增长,从而导致“信息过载”的出现,针对这一问题,个性化推荐系统应运而生。个性化推荐系统能够为用户提供很好的决策支持和个性化服务。
[0003]协同过滤算法通过数据挖掘和机器学习等方法,根据拥有相似兴趣或行为用户群的喜好为某一用户推荐他感兴趣的东西。ACM在1994年(ACM,1994:175 - 186)公布了基于用户的协同过滤算法,它找到那些具有相似兴趣的用户,综合这些相似用户对其他物品的行为记录,计算某一用户对物品的喜好程度。World Wide Web在2001年(thelOth international conference on World Wide Web.ACM, 2001:285 - 295)公布了一种基于物品的协同过滤推荐算法,它通过建立用户物品倒排表找到所有被相同用户点击过的物品,计算这些物品之间的相似度,根据物品之间的相似度和用户的行为记录就能得到推荐列表。WebKDD 在 2000 年(the ACM WebKDD2000ffeb Mining for E-CommerceWorkshop, Boston, MA, 2000)公布了一种通过奇异值分解的方法进行矩阵分解,对用户物品得分矩阵降维处理,增加数据稠密度,预测用户对物品的感兴趣程度。NIPS在2012年(NIPS, 2012:1232-1243)公布了一种分布式随即梯度下降算法,它把训练数据被分成多份,每份训练数据由一个模型训练集群复本来处理,模型的参数统一存储在一系列参数服务器上,每台模型训练服务器只需要访问少量的参数服务器来存取它所负责的模型分区所需的部分参数。

【发明内容】

[0004]本发明的目的是为克服上述现有方法推荐延时性强,计算性能较低等缺点,提供一种实时性强、计算性能高的面向流式数据的分布式在线推荐方法。
[0005]面向流式数据的分布式在线推荐方法包括以下步骤:
[0006]I)构建分布式计算框架,分布式计算框架包括矩阵分解模块和推荐结果处理模块,矩阵分解模块由若干工作单元组成,其中每个工作单元对应用户行为数据矩阵中的一组数据块;
[0007]2)接收用户行为数据并将用户行为数据发送到对应的工作单元,根据该用户的推荐反馈,生成负样本,即用户可能不感兴趣的物品,被推荐的物品中用户没用对其产生行为的有较大概率被选中为负样本;
[0008]3)采用分布式随机梯度下降算法,对用户行为数据以及负样本数据进行矩阵分解训练,并保存新的训练结果;
[0009]4)采用协同过滤的方法,利用用户行为数据离线计算物品相似度,并定时更新物品相似度数据;
[0010]5)对于某个用户,利用物品相似度计算该用户最近感兴趣物品的相似物品集合,把该集合与该用户的原推荐列表集合的并集作为用户的候选推荐集合,并根据步骤3)中的矩阵分解训练结果计算该用户对候选推荐集合中所有物品的预测得分,对得分排序,得到该用户的推荐列表;
[0011]6)返回推荐列表,把推荐列表中的物品推荐给用户。
[0012]所述的步骤I)为:构建分布式计算框架,分布式计算框架包括矩阵分解模块和推荐结果处理模块,矩阵分解模块接收用户行为数据,根据用户行为数据得到分解矩阵,矩阵分解模块包含一个数据源节点负责获取用户行为数据,一个主节点负责数据分发与任务管理,若干个工作节点负责随机梯度下降运算进行矩阵分解,若干数据节点负责存储分解矩阵数据,推荐结果处理模块包含一个请求节点负责接收推荐请求获取候选集合,一个排序计算节点负责对候选集合进行排序并得到最终的推荐列表。
[0013]所述的步骤2)为:接收用户行为数据并将用户行为数据发送到对应的工作单元,根据该用户的推荐反馈,生成负样本,即用户可能不感兴趣的物品,被推荐的物品中用户没用对其产生行为的有较大概率被选中为负样本,假设所有物品的数量为n,推荐反馈中未被该用户接受的物品有m个,它们被选中的概率是普通物品的a倍,a为大于I的整数,选取负样本时在I到n+(a-l)m之间产生随机数X,从小到大扫描推荐反馈中未被该用户接受的物品,每有一个未被该用户接受的物品,则X减去a-Ι,直到物品编号大于X,此时编号为X的物品被选为负样本。
[0014]所述的步骤3)为:工作节点接收任务请求后,向数据节点请求对应的用户分解向量数据和物品分解向量数据,并根据这些数据按递推公式对用户分解向量和物品分解向量进行更新,递推公示如下所示:
[0015]
【权利要求】
1.一种面向流式数据的分布式在线推荐方法,其特征在于包括以下步骤: 1)构建分布式计算框架,分布式计算框架包括矩阵分解模块和推荐结果处理模块,矩阵分解模块由若干工作单元组成,其中每个工作单元对应用户行为数据矩阵中的一组数据块; 2)接收用户行为数据并将用户行为数据发送到对应的工作单元,根据该用户的推荐反馈,生成负样本,即用户可能不感兴趣的物品,被推荐的物品中用户没用对其产生行为的有较大概率被选中为负样本; 3)采用分布式随机梯度下降算法,对用户行为数据以及负样本数据进行矩阵分解训练,并保存新的训练结果; 4)采用协同过滤的方法,利用用户行为数据离线计算物品相似度,并定时更新物品相似度数据; 5)对于某个用户,利用物品相似度计算该用户最近感兴趣物品的相似物品集合,把该集合与该用户的原推荐列表集合的并集作为用户的候选推荐集合,并根据步骤3)中的矩阵分解训练结果计算该用户对候选推荐集合中所有物品的预测得分,对得分排序,得到该用户的推荐列表; 6)返回推荐列表,把推荐列表中的物品推荐给用户。
2.根据权利要求1所述的面向流式数据的分布式在线推荐方法,其特征在于:所述的步骤I)为:构建分布式计算框架,分布式计算框架包括矩阵分解模块和推荐结果处理模块,矩阵分解模块接收用`户行为数据,根据用户行为数据得到分解矩阵,矩阵分解模块包含一个数据源节点负责获取用户行为数据,一个主节点负责数据分发与任务管理,若干个工作节点负责随机梯度下降运算进行矩阵分解,若干数据节点负责存储分解矩阵数据,推荐结果处理模块包含一个请求节点负责接收推荐请求获取候选集合,一个排序计算节点负责对候选集合进行排序并得到最终的推荐列表。
3.根据权利要求1所述的面向流式数据的分布式在线推荐方法,其特征在于:所述的步骤2)为:接收用户行为数据并将用户行为数据发送到对应的工作单元,根据该用户的推荐反馈,生成负样本,即用户可能不感兴趣的物品,被推荐的物品中用户没用对其产生行为的有较大概率被选中为负样本,假设所有物品的数量为n,推荐反馈中未被该用户接受的物品有m个,它们被选中的概率是普通物品的a倍,a为大于I的整数,选取负样本时在I到n+(a-l)m之间产生随机数X,从小到大扫描推荐反馈中未被该用户接受的物品,每有一个未被该用户接受的物品,则X减去a-Ι,直到物品编号大于X,此时编号为X的物品被选为负样本。
4.根据权利要求1所述的面向流式数据的分布式在线推荐方法,其特征在于所述的步骤3)为:工作节点接收任务请求后,向数据节点请求对应的用户分解向量数据和物品分解向量数据,并根据这些数据按递推公式对用户分解向量和物品分解向量进行更新,递推公示如下所示:

K



?.…….UlJil = 十)v jj: ~ Aiiij-)


k— I
5.根据权利要求1所述的面向流式数据的分布式在线推荐方法,其特征在于:所述的步骤5)为:对于某个用户U,利用物品相似度得到该用户最近感兴趣物品的相似物品集合,物品i和物品j之间的相似度Wij定义如下
【文档编号】H04L29/08GK103886047SQ201410089697
【公开日】2014年6月25日 申请日期:2014年3月12日 优先权日:2014年3月12日
【发明者】张寅 , 边科, 王东辉, 魏宝刚 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1