[发明专利]一种基于随机梯度下降的在线协同排序方法有效

专利信息
申请号: 201610534947.X 申请日: 2016-07-08
公开(公告)号: CN106202377B 公开(公告)日: 2019-09-13
发明(设计)人: 林通;吕晋 申请(专利权)人: 北京大学
主分类号: G06F16/953 分类号: G06F16/953;G06F16/9535;G06Q30/02
代理公司: 北京万象新悦知识产权代理有限公司 11360 代理人: 黄凤茹
地址: 100871*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明公布了一种在线协同排序方法,通过协同排序的方法建立目标函数,并使用随机梯度下降方法求解;通过建立在线协同排序的推荐系统进行增量训练,实时更新推荐列表,实现边训练边推荐;包括:取数据集S,将S随机分为一大一小两份;利用小比例的数据集的评分数据建立用户‑产品的评分矩阵X;分解为UVT模型;使用在线协同排序方法SGDRank和小比例的数据集对矩阵U和矩阵V进行离线更新,得到UVT模型;大比例数据作为在线样本加入到矩阵X中;对矩阵U、V进行在线训练,更新UVT模型,得到训练后的X矩阵,由此实现对数据的在线协同排序。本发明方法能够有效提升排序推荐效率。
搜索关键词: 一种 基于 随机 梯度 下降 在线 协同 排序 方法
【主权项】:
1.一种在线协同排序方法,通过协同排序的方法建立目标函数,并使用随机梯度下降方法求解;通过建立在线协同排序的推荐系统进行增量训练,实时更新推荐列表,实现边训练边推荐,由此实现在线协同排序;包括以下步骤:步骤1:选取数据集S,数据集S包含用户数据、产品数据和用户对应产品的评分数据;将S随机分为比例一大一小的两份;步骤2:利用步骤1中的小比例的数据集的评分数据建立用户‑产品的评分矩阵X,评分矩阵X中的Xij表示用户i对于产品j的评分;将矩阵中的每一行的所有评分三元组(u,v,d)进行两两组合,其中d表示用户u对产品v的评分,组合成为训练数据三元组(u,v1,v2),训练数据三元组表示用户u相对于产品v2,更喜欢产品v1;步骤3:设定一共有m个用户和n个产品,将评分矩阵X分解为式14的形式:X=UVT    (式14)其中,X为m×n的矩阵;U为m×r的矩阵;V为n×r的矩阵,其中r表示用户和产品的隐特征向量的维度;所述将评分矩阵X分解具体包括如下步骤:设定矩阵X是低秩的或者接近于低秩,将经验风险最小化描述为式1:式1中,用户‑产品的评分矩阵X,Xij表示用户i对于产品j的评分;用户的偏好关系值Yijk用{Yijk∈{1,‑1}:(i,j,k)∈Ω}来表示;Xik表示用户i对于产品k的喜好(评分);损失函数l以选取铰链损失平方为例:l(x)=max(0,1‑x)2;向损失函数中加入正则项,得到基于配对级排序学习方法的协同过滤算法的损失函数表达式,如式2所示:其中,λ表示正则项的权重参数;使用随机梯度下降方法求解单个损失函数,将原问题分解为求解U矩阵子问题和求解V矩阵子问题;将求解U矩阵的子问题定义为式3:再将求解矩阵的子问题转化为求解一维向量的子问题,对于每一个U矩阵的一维向量子问题描述为式4:其中,l(x)=max(0,1‑x)2;将V矩阵子问题描述为式7:通过分别求解U矩阵子问题和V矩阵子问题求解所述评分矩阵X矩阵;所述求解U矩阵子问题具体包括如下过程:设定每一个子问题的维度都是r,对于每一个用户i来说,样本的容量大小为Ω;利用铰链损失平方函数,使用随机梯度下降的方法来求解U矩阵的一维向量子问题:根据随机梯度下降的更新公式可以得到式5:其中,η表示学习速率,以铰链损失函数的平方为例,求解wu,包括如下过程:令f(u)=l(Yijk·uT(vj‑vk))=max{0,(1‑uT(vj‑vk))2},(1)当ut(vj‑vk)<1时,(2)当ut(vj‑vk)≥1时,wu=0所以得到u的更新公式为:以上过程完成求解U矩阵子问题;所述求解V矩阵子问题具体包括如下过程:V矩阵子问题含有两个向量vj和vk,首先固定vk,更新vj,求解vj问题分解为式8:根据随机梯度下降的更新公式得到式9:其中,利用铰链损失函数的平方通过以下过程求解令g(vj)=l(Yijk·uT(vj‑vk))=max{0,(1‑uT(vj‑vk))2}(1)当ut(vj‑vk)<1时,(2)当ut(vj‑vk)≥1时,所以得到vj的更新公式为式10:然后固定vj,更新vk,对于vk来说,将求解vk问题分解为式11:根据随机梯度下降的更新公式得到式12:其中,利用铰链损失函数的平方求解如下:令g(vk)=l(Yijk·uT(vj‑vk))=max{0,(1‑uT(vj‑vk))2}(1)当ut(vj‑vk)<1时,(2)当ut(vj‑vk)≥1时,得到vk的更新公式为式13:以上过程完成求解V矩阵子问题;步骤4:对于所有的训练数据三元组(ui,vj,vk),使用在线协同排序方法SGDRank和步骤1中小比例的数据集对矩阵U和矩阵V进行离线更新,得到UVT模型;所述在线协同排序方法SGDRank具体包括如下步骤:41)将用户的数量表示为d1,将产品的数量表示为d2,定义一个三元组的集合当(i,j,k)∈Ω时,表示用户i对于产品j和产品k的偏好关系;42)将用户的偏好关系值Yijk用{Yijk∈{1,‑1}:(i,j,k)∈Ω}来表示,当用户i对产品j的喜好大于对产品k的喜好时,Yijk=1,相反地,当用户i对产品j的喜好小于对产品k的喜好时,Yijk=‑1;用Ωi={(j,k):(i,j,k)∈Ω}来表示用户i对于产品喜好的集合;43)根据评分数据建立用户‑产品的评分矩阵X,Xij表示用户i对于产品j的评分,对于矩阵X进行基于偏好的变换,在初始的评分矩阵X中,矩阵值Xij的绝对值表示用户i对产品j的评分,对评分矩阵进行重新定义;重新定义为:当Xij>Xik时,表示用户i对于产品j的喜好要大于用户i对于产品k的喜好,反之,当Xij>Xik时,表示用户i对于产品j的喜好要小于用户i对于产品k的喜好;44)对于评分矩阵X的每一行,选取出未被用户u评分的所有产品,然后进行排序,排序的结果作为对该行用户的推荐产品的顺序;所述对矩阵U和矩阵V进行离线更新,具体利用式15~式17:其中,(ui,vj,vk)为所有的训练数据三元组;U为m×r的矩阵;V为n×r的矩阵,其中r表示用户和产品的隐特征向量的维度;步骤5:将步骤1中的离线数据集中的剩余样本数据作为在线样本(u,v,d)数据集,每当到来一个在线样本(u,v,d)时,将该样本加入到矩阵X中,判断获得该矩阵中是否含有用户u的评分;当矩阵X中含有用户u的评分时,把u的所有评分三元组(u,v,d)进行两两组合成为所有可能的训练数据三元组(u,v1,v2),作为在线训练数据;步骤6:使用在线协同排序方法SGDRank和步骤5所述离线数据集中的剩余样本数据对矩阵U和矩阵V进行在线训练,并且更新UVT模型,从而得到训练后的X矩阵,进而获取X矩阵的每一行用户的产品推荐,由此实现对数据的在线协同排序。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京大学,未经北京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201610534947.X/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top