一种推荐系统构建方法及装置制造方法及图纸

技术编号:18913953 阅读:25 留言:0更新日期:2018-09-12 03:05
公开了一种推荐系统构建方法及装置。应用于包含多个用户的系统,在任意用户的用户端,保存该用户对物品的评分信息、该用户的用户偏好向量、物品特征向量,多个用户端以协同方式训练实现矩阵分解。

Recommendation system construction method and device

A method and device for recommender system construction is disclosed. In a system containing multiple users, the scoring information, the user preference vector and the item feature vector of the user are saved in the client of any user, and the matrix decomposition is realized by training the multiple users in a cooperative manner.

【技术实现步骤摘要】
一种推荐系统构建方法及装置
本说明书实施例涉及大数据处理
,尤其涉及一种推荐系统构建方法及装置。
技术介绍
在大数据时代,通过对海量数据进行挖掘,可以形成训练样本,并且进一步训练出各种形式的数据模型。现有技术中,通常的实现方案是在服务端集中存储训练样本并且在服务端进行模型训练。而这种集中式训练的方式至少存在以下弊端:一方面,传统的数据模型训练方案已经难以满足隐私保护的需求:首先,用户的私人数据需要上传至服务端进行集中处理,这对于一部分用户而言已经十分敏感。即便服务端不会主动滥用或泄露用户隐私,也仍然存在服务端被攻击从而导致数据批量泄露的隐患。另一方面,基于大数据的模型训练,对于存储及计算资源的需求非常庞大,而且随着机器学习技术的推广,训练所采用的数据量和模型复杂度都是处于持续提升的趋势,仅依靠提升服务器的性能或数量,已经越来越难以满足大数据模型训练的需求。
技术实现思路
针对上述技术问题,本说明书实施例提供一种推荐系统构建方法及装置,技术方案如下:一种推荐系统构建方法,应用于包含多个用户的系统,在任意用户的用户端,保存该用户对物品的评分信息、该用户的用户偏好向量、物品特征向量,多个用户端以协同方式训练实现矩阵分解,所述方法包括:在任一用户端,利用以下步骤进行迭代处理,直到满足预设的迭代停止条件:根据当前的用户偏好向量计算本地用户梯度值、根据当前的物品特征向量计算本地物品梯度值;利用本地用户梯度值对用户偏好向量进行更新、利用本地物品梯度值对物品特征向量进行更新;根据预设的邻接关系,将本地物品梯度值发送至邻居用户端;接收邻居用户端发送的邻居物品梯度值,所述邻居物品梯度值为:在邻居用户端计算得到的邻居用户端本地物品梯度值;利用所接收到的邻居物品梯度值对物品特征向量进行更新;迭代结束后,输出最新的用户偏好向量及物品特征向量。一种推荐系统构建装置,应用于包含多个用户的系统,所述装置配置于任意用户的用户端,用于保存该用户对物品的评分信息、该用户的用户偏好向量、物品特征向量,多个用户端以协同方式训练实现矩阵分解:所述装置利用以下模块配合实现迭代处理,直到满足预设的迭代停止条件:本地梯度值计算模块,用于根据当前的用户偏好向量计算本地用户梯度值、根据当前的物品特征向量计算本地物品梯度值;第一更新模块,用于利用本地用户梯度值对用户偏好向量进行更新、利用本地物品梯度值对物品特征向量进行更新;协同信息发送模块,用于根据预设的邻接关系,将本地物品梯度值发送至邻居用户端;协同信息接收模块,用于接收邻居用户端发送的邻居物品梯度值,所述邻居物品梯度值为:在邻居用户端计算得到的邻居用户端本地物品梯度值;第二更新模块,用于利用所接收到的邻居物品梯度值对物品特征向量进行更新;输出模块,用于在迭代结束后,输出最新的用户偏好向量及物品特征向量。本说明书实施例所提供的技术方案,在推荐系统构建阶段和推荐系统使用阶段,涉及用户隐私的数据均可以仅在用户端本地保存,既不会上传给服务端,也不会传播给其他用户端,有效地提升的用户数的私密性及安全性。另外,在训练过程中,每个用户端作为分布式的计算节点,可以有效解决集中式训练对于服务端处理性能的依赖问题,并且,由于各个用户端可以各自并行进行训练,也能够改善整体的训练效率。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书实施例。此外,本说明书实施例中的任一实施例并不需要达到上述的全部效果。附图说明为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。图1是集中式矩阵分解系统的架构示意图;图2是分布式矩阵分解系统的架构示意图;图3是本说明书实施例的第一种推荐系统构建方法的流程图;图4是本说明书实施例的第二种推荐系统构建方法的流程图;图5是本说明书实施例的推荐系统构建装置的结构示意图;图6是用于配置本说明书实施例装置的一种设备的结构示意图。具体实施方式为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于保护的范围。推荐系统(RecommendSystem,RS)的功能可以描述为:为用户(User)推荐符合其需求的物品(Item),这里的“物品”是一个广义的定义,在不同的应用场景中,可能对应不同的实际含义,例如一个Item可以表示一件商品、一条新闻、一首歌曲、一家餐厅、或者一名其他用户等。在推荐系统中,最重要的是用户对物品的打分数据,其数据形式如下表所示:Item1Item2Item3Item4User110.6-0.2User20.8--0.2User30.20.2-1User40.2--0.8User5-0.210.8表1如表1所示,User1~User5表示的是5个不同的用户,Item1~Item4表示的是4个不同的物品,这样便构成了用户-物品评分矩阵,定义该矩阵为R,其中任一元素rij表示第i个用户对第j个物品的评分,该评分表示用户对物品的喜好程度,可以通过用户对物品的行为历史(如点击,购买等)获得。在表1中,已经对评分做了归一化处理,映射至[0,1]区间,其中“-”表示无法获得该rij对应的用户i对物品j的评分,推荐系统中,有一类问题就是对评分矩阵中缺失的rij进行预测。矩阵分解是指将一个矩阵分解成两个或者多个矩阵的乘积,对于上述的评分矩阵,假设用户总数为I,物品总数为J,则矩阵R可记为RI×J。根据矩阵乘法定义,可以将RI×J分解为两个矩阵的乘积:RI×J=UI×K×VK×J(1)上述的数值K可以理解为:利用K个维度来描述一件物品的K方面特性(这K方面特性并不必须对应现实中的含义)。那么:对于矩阵UI×K,其包含了I个K维向量Ui,任一Ui表示用户i针对这个K方面的偏好向量;对于矩阵VK×J,其包含了J个K维向量Vj,任一Vj表示物品j针对这个K方面的特征向量。在已知Ui和Vj的情况下,根据下式即可计算得到rij的值:rij=UiTVj(2)可见,如果能够求解出两个矩阵UI×K和VK×J中的每一个元素,就可以计算出矩阵R中任意的rij值,相当于构建出了一个可以计算任意“用户i-物品j”的推荐系统。又由于有一部分rij的值是已知的,因此该求解问题可以进一步转化为机器学习问题:初始化两个矩阵UI×K和VK×J,通过迭代训练对两个矩阵的元素值进行更新,当更新得到的UI×K和VK×J的乘积能够还原RI×J(即与RI×J足够接近)时,即可认为完成分解任务。一种可用的方案是利用集中式的训练实现矩阵分解:服务端首先从各用户处获取所有已知的rij值,形成完整的矩阵RI×J(这里的完整是指包含所有的已知元素值,但矩阵本身仍然是稀疏的),然后在服务端进行统一的迭代处理,最终得到的UI×K和VK×J也都存储在服务端,该方案架构示意图可参见图1所示。在上述方案中,每个本文档来自技高网...

【技术保护点】
1.一种推荐系统构建方法,应用于包含多个用户的系统,在任意用户的用户端,保存该用户对物品的评分信息、该用户的用户偏好向量、物品特征向量,多个用户端以协同方式训练实现矩阵分解,所述方法包括:在任一用户端,利用以下步骤进行迭代处理,直到满足预设的迭代停止条件:根据当前的用户偏好向量计算本地用户梯度值、根据当前的物品特征向量计算本地物品梯度值;利用本地用户梯度值对用户偏好向量进行更新、利用本地物品梯度值对物品特征向量进行更新;根据预设的邻接关系,将本地物品梯度值发送至邻居用户端;接收邻居用户端发送的邻居物品梯度值,所述邻居物品梯度值为:在邻居用户端计算得到的邻居用户端本地物品梯度值;利用所接收到的邻居物品梯度值对物品特征向量进行更新;迭代结束后,输出最新的用户偏好向量及物品特征向量。

【技术特征摘要】
1.一种推荐系统构建方法,应用于包含多个用户的系统,在任意用户的用户端,保存该用户对物品的评分信息、该用户的用户偏好向量、物品特征向量,多个用户端以协同方式训练实现矩阵分解,所述方法包括:在任一用户端,利用以下步骤进行迭代处理,直到满足预设的迭代停止条件:根据当前的用户偏好向量计算本地用户梯度值、根据当前的物品特征向量计算本地物品梯度值;利用本地用户梯度值对用户偏好向量进行更新、利用本地物品梯度值对物品特征向量进行更新;根据预设的邻接关系,将本地物品梯度值发送至邻居用户端;接收邻居用户端发送的邻居物品梯度值,所述邻居物品梯度值为:在邻居用户端计算得到的邻居用户端本地物品梯度值;利用所接收到的邻居物品梯度值对物品特征向量进行更新;迭代结束后,输出最新的用户偏好向量及物品特征向量。2.根据权利要求1所述的方法,所述预设的邻接关系,包括:根据用户端的之间的距离所确定的邻接关系,所述距离包括地理位置距离或逻辑距离。3.根据权利要求1所述的方法,所述邻居用户端为:系统用户端中的全部或部分用户端。4.根据权利要求1所述的方法,在任一轮迭代中,在接收到多个邻居物品梯度值的情况下,所述利用所接收到的邻居物品梯度值对物品特征向量进行更新,包括:利用多个邻居物品梯度值中的全部或部分梯度值,对物品特征向量进行更新。5.根据权利要求1所述的方法,接收本地物品梯度值的邻居用户端、与发送邻居物品梯度值的邻居用户端,为相同或不同的用户端集合。6.一种推荐系统构建装置,应用于包含多个用户的系统,所述装置配置于任意用户的用户端,用于保存该用户对物品的评分信息、该用户的用户偏好向量、物品特征向量,多个用户端以协同...

【专利技术属性】
技术研发人员:陈超超周俊
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

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

1