CN106202377A - 一种基于随机梯度下降的在线协同排序方法 - Google Patents
一种基于随机梯度下降的在线协同排序方法 Download PDFInfo
- Publication number
- CN106202377A CN106202377A CN201610534947.XA CN201610534947A CN106202377A CN 106202377 A CN106202377 A CN 106202377A CN 201610534947 A CN201610534947 A CN 201610534947A CN 106202377 A CN106202377 A CN 106202377A
- Authority
- CN
- China
- Prior art keywords
- matrix
- user
- product
- data
- solving
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 239000011159 matrix material Substances 0.000 claims abstract description 112
- 238000012549 training Methods 0.000 claims abstract description 63
- 238000011478 gradient descent method Methods 0.000 claims abstract description 10
- 238000004422 calculation algorithm Methods 0.000 claims description 38
- 230000006870 function Effects 0.000 claims description 21
- 238000012163 sequencing technique Methods 0.000 claims description 10
- 239000013598 vector Substances 0.000 claims description 9
- 230000008569 process Effects 0.000 claims description 8
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 150000007524 organic acids Chemical class 0.000 claims description 6
- 238000001914 filtration Methods 0.000 claims description 5
- 230000009466 transformation Effects 0.000 claims description 3
- 238000013480 data collection Methods 0.000 abstract 1
- 238000011156 evaluation Methods 0.000 description 25
- 238000002474 experimental method Methods 0.000 description 13
- 230000000694 effects Effects 0.000 description 9
- 238000012360 testing method Methods 0.000 description 4
- 230000007547 defect Effects 0.000 description 2
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0241—Advertisements
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Development Economics (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Physics & Mathematics (AREA)
- Entrepreneurship & Innovation (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Economics (AREA)
- Game Theory and Decision Science (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公布了一种在线协同排序方法,通过协同排序的方法建立目标函数,并使用随机梯度下降方法求解;通过建立在线协同排序的推荐***进行增量训练,实时更新推荐列表,实现边训练边推荐;包括:取数据集S,将S随机分为一大一小两份;利用小比例的数据集的评分数据建立用户‑产品的评分矩阵X;分解为UVT模型;使用在线协同排序方法SGDRank和小比例的数据集对矩阵U和矩阵V进行离线更新,得到UVT模型;大比例数据作为在线样本加入到矩阵X中;对矩阵U、V进行在线训练,更新UVT模型,得到训练后的X矩阵,由此实现对数据的在线协同排序。本发明方法能够有效提升排序推荐效率。
Description
技术领域
本发明属于模式识别领域,具体涉及一种基于随机梯度下降的在线协同排序方法(本发明简称为SGDRank)。
背景技术
协同过滤技术是推荐***的核心算法,它根据用户之间的相似度和产品之间的相似度来挖掘用户的潜在兴趣。在以往的研究中,协同过滤模型往往是通过预测用户对产品的评分来进行推荐。近年来很多研究者直接优化产品的推荐列表,把推荐问题转化为了排序问题,并取得了不错的效果。
协同排序使用排序学习的方法来解决协同过滤的问题,根据用户对于产品的偏好关系来训练推荐模型并为用户直接推荐产品列表。现有的协同排序算法有以下几点不足:
(一)在样本很少的情况下,现有协同排序算法无法进行有效的推荐;
(二)当新来一个样本时,现有协同排序算法无法进行在线训练和实时更新推荐结果;
(三)现有算法的训练时间往往较长,并且推荐效果有待提高。
发明内容
为了克服上述现有技术的不足,本发明提供一种基于随机梯度下降的在线协同排序方法(本发明简称为SGDRank),缩短训练时长,使得推荐***达到更好的推荐效果,可实现边训练边推荐,有效提升推荐效率。
本发明的原理是:一方面使用协同排序的方法建立目标函数,并使用随机梯度下降方法求解;通过对比实验,本发明SGDRank算法在推荐效果提高的基础上,缩短训练时长,同时在样本数量较少的时候能够达到不错的推荐效果。另一方面建立在线协同排序的推荐***,针对于实际中不断增加的样本数据,能够进行增量训练,实时更新推荐列表,做到了边训练边推荐。本发明在MovieLens数据集和Netflix数据集上进行了大量的实验,并同其他算法进行了对比实验,实验结果证明,本发明的算法确实能够有效提升推荐效率。
本发明的技术方案是:
一种基于随机梯度下降的在线协同排序方法(简称为SGDRank),通过协同排序的方法建立目标函数,并使用随机梯度下降方法求解;建立在线协同排序的推荐***,进行增量训练,实时更新推荐列表,实现边训练边推荐;包括以下步骤:
步骤1:选取数据集S,数据集S包含用户数据、产品数据以及用户对应产品的评分数据,将S随机分为两份,比例一大一小,即分别为一大份和一小份,取数据集中小比例的数据作为真实环境中的初始离线训练数据集,这对应于实际场景中的推荐***很难获得到很多数据,只有一小部分数据可以用作初始训练;
步骤2:利用步骤1中的小比例的数据集的评分数据建立用户-产品的评分矩阵X,Xij表示用户i对于产品j的评分,在矩阵中,我们把每一行的所有评分三元组(u,v,d)进行两两组合,其中d表示用户u对产品v的评分,组合成为训练数据三元组(u,v1,v2),训练数据三元组表示用户u相对于产品v2,更喜欢产品v1;
步骤3:假设一共有m个用户和n个产品,我们将评分矩阵X分解为下面的形式:
X=UVT (式14)
其中,X为m×n的矩阵;U为m×r的矩阵;V为n×r的矩阵,其中r表示用户和产品的隐特征向量的维度;
步骤4:对于所有的训练数据三元组(ui,vj,vk),使用SGDRank算法和步骤1中小比例的数据集对矩阵U和矩阵V进行离线更新,得到UVT模型;
其中离线更新的公式为式15~式17:
步骤5:将步骤1中的离线数据集中的剩余样本数据作为在线样本(u,v,d)数据集,每当到来一个在线样本(u,v,d)时,将该样本加入到矩阵X中,并且判断该矩阵中是否含有用户u的评分,若无用户u,则不进行矩阵更新,若矩阵X中含有用户u的评分,则我们把u的所有评分三元组(u,v,d)进行两两组合,组合成为所有可能的训练数据三元组(u,v1,v2)作为在线训练数据;
步骤6:使用SGDRank算法和上述的离线数据集中的剩余样本数据对矩阵U和矩阵V进行在线训练,并且更新UVT模型,从而得到训练后的X矩阵,进而获取X矩阵的每一行用户的产品推荐。
上述SGDRank算法计算过程详见具体实施方式中的式1~式13,具体包括如下步骤:
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更新完毕后,对于X的每一行选取出未被用户u评分的所有产品,然后进行排序,排序的结果就是对该行用户的推荐物品的顺序。
在线训练的更新公式同步骤4中的离线更新公式。在本发明实施例中,我们对于训练数据采样的方式进行更新,并采取推荐结果前10名的归一化的贴现累计收益(Normalized Discounted Cumulative Gain@10,以下均简称NDCG@10)作为评价指标,在NDCG@10的指标中,我们对于每一个用户采样N个评分,在Precision@k的指标中,我们对于每一个用户采样C个配对)。
与现有技术相比,本发明的有益效果是:
本发明提供一种基于随机梯度下降的在线协同排序方法SGDRank,一方面使用协同排序的方法建立目标函数,并使用随机梯度下降方法求解;通过对比实验,本发明SGDRank算法在推荐效果提高的基础上,缩短训练时长,同时在样本数量较少的时候能够达到不错的推荐效果;另一方面建立在线协同排序的推荐***,针对于实际中不断增加的样本数据,能够进行增量训练,实时更新推荐列表,做到了边训练边推荐。本发明具有以下优点:
(一)本发明在协同排序原有模型的基础上,提出了分解子问题并使用随机梯度下降的更新方法,不仅提升了推荐模型的准确度,同时缩短了训练时间;
(二)本发明能够处理在线数据流,实现了实时更新推荐模型的功能。
本发明在MovieLens数据集和Netflix数据集上进行了大量的实验,并同其他算法进行了对比实验,实验结果证明,本发明的算法确实能够有效提升推荐效率。
附图说明
图1是本发明提供的基于随机梯度下降的在线协同排序方法的流程框图。
图2是本发明实施例中评价指标error在MovieLens-1m数据集上的曲线图;
图中的三条曲线表示在参数N(详见具体实施方式中的步骤6)的不同设置下,随着训练数据的增加评价指标error的性能表现。
图3是评价指标error在MovieLens-10m数据集上的曲线图,图中的三条曲线表示在参数N(详见具体实施方式中的步骤6)的不同设置下,随着训练数据的增加评价指标error的性能表现;
图4是评价指标error在Netflix数据集上的曲线图,图中的三条曲线表示在参数N(详见具体实施方式中的步骤6)的不同设置下,随着训练数据的增加评价指标error的性能表现;
图5是评价指标NDCG@10在MovieLens-1m数据集上的曲线图;
图中的三条曲线表示在参数N(详见具体实施方式中的步骤6)的不同设置下,随着训练数据的增加评价指标NDCG@10的性能表现。
图6是评价指标NDCG@10在MovieLens-10m数据集上的曲线图;
图中的三条曲线表示在参数N(详见具体实施方式中的步骤6)的不同设置下,随着训练数据的增加评价指标NDCG@10的性能表现。
图7是评价指标NDCG@10在Netflix数据集上的曲线图;
图中的三条曲线表示在参数N(详见具体实施方式中的步骤6)的不同设置下,随着训练数据的增加评价指标NDCG@10的性能表现。
具体实施方式
下面结合附图,通过实施例进一步描述本发明,但不以任何方式限制本发明的范围。
本发明提供一种基于随机梯度下降的在线协同排序方法(本发明简称为SGDRank),一方面使用协同排序的方法建立目标函数,并使用随机梯度下降方法求解;通过对比实验,本发明SGDRank算法在推荐效果提高的基础上,缩短训练时长,同时在样本数量较少的时候能够达到不错的推荐效果;另一方面建立在线协同排序的推荐***,针对于实际中不断增加的样本数据,能够进行增量训练,实时更新推荐列表,做到了边训练边推荐。本发明在MovieLens数据集和Netflix数据集上进行了大量的实验,并同其他算法进行了对比实验,实验结果证明,本发明的算法确实能够有效提升推荐效率。
对于基于配对排序学习的方法来说,由于训练数据是一对偏好关系,故我们可以对矩阵分解模型进行如下定义。
我们将用户的数量表示为d1,将产品的数量表示为d2,然后我们定义一个三元组的集合如果(i,j,k)∈Ω,则可以表示用户i对于物品j和产品k的偏好关系。接下来,用户的偏好关系值Yijk可以用{Yijk∈{1,-1}:(i,j,k)∈Ω}来表示,当用户i对产品j的喜好大于对产品k的喜好时,Yijk=1,相反地,当用户i对产品j的喜好小于对产品k的喜好时,Yijk=-1。我们用Ωi={(j,k):(i,j,k)∈Ω}来表示用户i对于物品喜好的集合。
完成上述设置之后,我们根据评分数据建立用户-产品的评分矩阵X,Xij表示用户i对于产品j的评分,对于矩阵X我们进行基于偏好的变换,在初始的评分矩阵X中,矩阵值Xij的绝对值表示用户i对产品j的评分,我们对评分矩阵进行重新定义。当Xij>Xik时,表示用户i对于产品j的喜好要大于用户i对于产品k的喜好,反之,当Xij>Xik时,表示用户i对于产品j的喜好要小于用户i对于产品k的喜好。在这样的情况下,矩阵Xij的绝对值并不重要,我们关心的是矩阵值之间的相对大小,当我们把矩阵X更新完毕后,对于X的每一行我们选取出未被用户u评分的所有产品,然后进行排序,排序的结果就是对该行用户的推荐物品的顺序。
假设矩阵X是低秩的或者接近于低秩,在实际的推荐***中,一个用户只对某些产品进行评分(除了那些购物狂),一个产品只是接受了某些用户的评分(除了那些爆款产品),根据上一小节的统计数据显示,X一般情况下是低秩的。基于上述设置,我们可以将经验风险最小化描述为式1:
式1中,用户-产品的评分矩阵X,Xij表示用户i对于产品j的评分;用户的偏好关系值Yijk用{Yijk∈{1,-1}:(i,j,k)∈Ω}来表示;Xik表示用户i对于产品k的喜好(评分);损失函数以选取铰链损失平方为例:
为了避免过拟合现象的产生,我们向损失函数中加入正则项,由此可以得到基于配对级排序学习方法的协同过滤算法的损失函数表达式,如式2所示:
其中λ表示正则项的权重参数,我们使用随机梯度下降方法求解单个损失函数,由于我们设置的损失函数是非凸的,直接优化非常困难,所以我们首先将原问题分解。对于求解U和V矩阵来说,我们可以分解为求解U矩阵子问题和求解V矩阵子问题,求解U矩阵的子问题可以定义为式3:
为了求解U矩阵子问题,我们首先固定V矩阵不变,U矩阵子问题可以被分解为n个ui的独立子问题,即将求解矩阵的子问题转化为求解一维向量的子问题。对于每一个U矩阵的一维向量子问题可以描述为式4:
其中,
通常来说,每一个子问题的维度都是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矩阵子问题可以描述为式7:
由于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:
图1所示是本发明提供的基于随机梯度下降的在线协同排序方法的流程,本发明实施方式如下:
步骤1:选取数据集S,将数据集随机分为两份,本实施例以1:9的比例,取数据集中10%的的数据作为真实环境中的初始离线训练集,这对应于实际场景中的推荐***很难获得到很多数据,只有一小部分数据可以用作初始训练;
步骤2:利用步骤一中的10%的数据集的评分数据建立用户-产品的评分矩阵X,Xij表示用户i对于产品j的评分,在矩阵中,我们把每一行的所有评分三元组(u,v,d)进行两两组合,其中d表示用户u对产品v的评分,组合成为训练数据三元组(u,v1,v2),训练数据三元组表示用户u相对于产品v2,更喜欢产品v1;
步骤3:假设一共有m个用户和n个产品,我们将评分矩阵X分解为下面的形式:
X=UVT (式14)
其中,X为m×n的矩阵;U为m×r的矩阵;V为n×r的矩阵,其中r表示用户和产品的隐特征向量的维度;
步骤4:对于所有的训练数据三元组(ui,vj,vk),使用SGDRank算法和步骤1中的10%的数据集对矩阵U和矩阵V进行离线更新,得到UVT模型;其中离线更新的公式为:
步骤5:对于步骤1中的离线数据集中的剩余样本数据作为在线样本,每当到来一个在线样本(u,v,d)时,将该样本加入到矩阵X中,并且判断该矩阵中是否含有用户u的评分,若无用户u,则不进行矩阵更新,若矩阵X中含有用户u的评分,则我们把u的所有评分三元组(u,v,d)进行两两组合,组合成为所有可能的训练数据三元组(u,v1,v2)作为在线训练数据;
步骤6:使用SGDRank算法和上述步骤1中的90%的在线训练数据对矩阵U和矩阵V进行在线训练,并且更新UVT模型;对于新到来的训练数据三元组(ui,vj,vk),其中ui表示第i个用户,vj表示第j个产品,vk表示第k个产品,在线训练的更新公式同步骤4中的离线更新公式。(注意:在真实的实验中,我们对于训练数据采样的方式进行更新,在NDCG@10的指标中,我们对于每一个用户采样N个评分,在Precision@k的指标中,我们对于每一个用户采样C个配对)。
表1给出了上述步骤4的离线更新实验结果,评测指标我们选取了训练时间(training time)、配对错误率(error)、NDCG@10:
表1离线更新实验指标为训练时间、配对错误率和NDCG@10的评测结果
表2给出了,上述步骤6的在线更新实验结果,评测指标我们选取了配对错误率(error)和NDCG@10:
表2在线更新实验指标为配对错误率和NDCG@10的评测结果
表3给出了,本发明的SGDRank算法与其他算法在Precision@K评测指标实验结果比较:
表3本发明的SGDRank算法与其他算法在Precision@K评测指标实验结果比较
表4给出了本发明的SGDRank算法与其他算法在NDCG@10评测指标实验结果比较:
表4本发明的SGDRank算法与其他算法在NDCG@10评测指标实验结果比较
表5给出了本发明的SGDRank算法与其他算法在Pairs error评测指标实验结果比较:
表5本发明的SGDRank算法与其他算法在Pairs error评测指标实验结果比较
表6给出了本发明的SGDRank算法与其他算法在Training time(second)评测指标实验结果比较:
表6本发明的SGDRank算法与其他算法在Training time(second)评测指标实验结果比较
上述表格中出现的其他算法,其中,Yun等在NIPS 2014记载了RobiRank;Park等在ICML 2015记载了AltSVM;Lee等在WWW 2014记载了LCR;Weimer等在NIPS 2007记载了CofiRank。
需要注意的是,公布实施例的目的在于帮助进一步理解本发明,但是本领域的技术人员可以理解:在不脱离本发明及所附权利要求的精神和范围内,各种替换和修改都是可能的。因此,本发明不应局限于实施例所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。
Claims (8)
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表示用户和产品的隐特征向量的维度;
步骤4:对于所有的训练数据三元组(ui,vj,vk),使用在线协同排序方法SGDRank和步骤1中小比例的数据集对矩阵U和矩阵V进行离线更新,得到UVT模型;
步骤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矩阵的每一行用户的产品推荐,由此实现对数据的在线协同排序。
2.如权利要求1所述在线协同排序方法,其特征是,所述一大一小的比例为1:9。
3.如权利要求1所述在线协同排序方法,其特征是,具体取数据集中小比例的数据作为真实环境中的初始离线训练数据集。
4.如权利要求1所述在线协同排序方法,其特征是,步骤4所述在线协同排序方法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更新完毕后,对于X的每一行选取出未被用户u评分的所有产品,然后进行排序,排序的结果作为对该行用户的推荐物品的顺序。
5.如权利要求1所述在线协同排序方法,其特征是,步骤4所述对矩阵U和矩阵V进行离线更新,具体利用式15~式17:
其中,(ui,vj,vk)为所有的训练数据三元组;U为m×r的矩阵;V为n×r的矩阵,其中r表示用户和产品的隐特征向量的维度。
6.如权利要求1所述在线协同排序方法,其特征是,步骤4所述在线协同排序方法SGDRank中针对所述评分矩阵X矩阵分解和求解,具体包括如下步骤:
设定矩阵X是低秩的或者接近于低秩,将经验风险最小化描述为式1:
式1中,用户-产品的评分矩阵X,Xij表示用户i对于产品j的评分;用户的偏好关系值Yijk用{Yijk∈{1,-1}:(i,j,k)∈Ω}来表示;Xik表示用户i对于产品k的喜好(评分);损失函数以选取铰链损失平方为例:
向损失函数中加入正则项,得到基于配对级排序学习方法的协同过滤算法的损失函数表达式,如式2所示:
其中,λ表示正则项的权重参数;
使用随机梯度下降方法求解单个损失函数,将原问题分解为求解U矩阵子问题和求解V矩阵子问题;
将求解U矩阵的子问题定义为式3:
再将求解矩阵的子问题转化为求解一维向量的子问题,对于每一个U矩阵的一维向量子问题描述为式4:
其中,
将V矩阵子问题描述为式7:
通过分别求解U矩阵子问题和V矩阵子问题求解所述评分矩阵X矩阵。
7.如权利要求6所述在线协同排序方法,其特征是,所述求解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矩阵子问题。
8.如权利要求6所述在线协同排序方法,其特征是,所述求解V矩阵子问题具体包括如下过程:
V矩阵子问题含有两个向量vj和vk,首先固定vk,更新vj,求解vj问题分解为式8:
根据随机梯度下降的更新公式得到式9:
其中,利用铰链损失函数的平方通过以下过程求解wvj:
令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矩阵子问题。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610534947.XA CN106202377B (zh) | 2016-07-08 | 2016-07-08 | 一种基于随机梯度下降的在线协同排序方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610534947.XA CN106202377B (zh) | 2016-07-08 | 2016-07-08 | 一种基于随机梯度下降的在线协同排序方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106202377A true CN106202377A (zh) | 2016-12-07 |
CN106202377B CN106202377B (zh) | 2019-09-13 |
Family
ID=57472729
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610534947.XA Expired - Fee Related CN106202377B (zh) | 2016-07-08 | 2016-07-08 | 一种基于随机梯度下降的在线协同排序方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106202377B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106897419A (zh) * | 2017-02-23 | 2017-06-27 | 同济大学 | 融合社交信息的对级排序学习推荐方法 |
CN109033815A (zh) * | 2018-06-15 | 2018-12-18 | 国网浙江省电力有限公司 | 基于矩阵分解的Webshell检测方法 |
CN110175286A (zh) * | 2019-05-17 | 2019-08-27 | 山东师范大学 | 结合成对优化和矩阵分解的产品推荐方法及*** |
CN110321422A (zh) * | 2018-03-28 | 2019-10-11 | 腾讯科技(深圳)有限公司 | 在线训练模型的方法、推送方法、装置以及设备 |
CN110413878A (zh) * | 2019-07-04 | 2019-11-05 | 四川金赞科技有限公司 | 基于自适应弹性网络的用户-商品偏好的预测装置和方法 |
CN113506154A (zh) * | 2021-07-16 | 2021-10-15 | 杭州时趣信息技术有限公司 | 一种商品推荐方法、***、电子设备及相关组件 |
CN113822776A (zh) * | 2021-09-29 | 2021-12-21 | 中国平安财产保险股份有限公司 | 课程推荐方法、装置、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105069122A (zh) * | 2015-08-12 | 2015-11-18 | 天津大学 | 一种基于用户行为的个性化推荐方法及其推荐装置 |
CN105653657A (zh) * | 2015-12-25 | 2016-06-08 | Tcl集团股份有限公司 | 一种商品的推荐方法及装置 |
-
2016
- 2016-07-08 CN CN201610534947.XA patent/CN106202377B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105069122A (zh) * | 2015-08-12 | 2015-11-18 | 天津大学 | 一种基于用户行为的个性化推荐方法及其推荐装置 |
CN105653657A (zh) * | 2015-12-25 | 2016-06-08 | Tcl集团股份有限公司 | 一种商品的推荐方法及装置 |
Non-Patent Citations (3)
Title |
---|
XIN LUO ET AL: "Incremental Collaborative Filtering recommender based on Regularized Matrix Factorization", 《KNOWLEDGE BASED SYSTEMS》 * |
彭波等: "排序框架下梯度下降迭代本体算法", 《科学技术与工程》 * |
黄晓凤等: "一种基于规范矩阵因式分解协同过滤推荐模型的并行改进", 《电子与信息学报》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106897419A (zh) * | 2017-02-23 | 2017-06-27 | 同济大学 | 融合社交信息的对级排序学习推荐方法 |
CN110321422A (zh) * | 2018-03-28 | 2019-10-11 | 腾讯科技(深圳)有限公司 | 在线训练模型的方法、推送方法、装置以及设备 |
CN110321422B (zh) * | 2018-03-28 | 2023-04-14 | 腾讯科技(深圳)有限公司 | 在线训练模型的方法、推送方法、装置以及设备 |
CN109033815A (zh) * | 2018-06-15 | 2018-12-18 | 国网浙江省电力有限公司 | 基于矩阵分解的Webshell检测方法 |
CN110175286A (zh) * | 2019-05-17 | 2019-08-27 | 山东师范大学 | 结合成对优化和矩阵分解的产品推荐方法及*** |
CN110413878A (zh) * | 2019-07-04 | 2019-11-05 | 四川金赞科技有限公司 | 基于自适应弹性网络的用户-商品偏好的预测装置和方法 |
CN110413878B (zh) * | 2019-07-04 | 2022-04-15 | 五五海淘(上海)科技股份有限公司 | 基于自适应弹性网络的用户-商品偏好的预测装置和方法 |
CN113506154A (zh) * | 2021-07-16 | 2021-10-15 | 杭州时趣信息技术有限公司 | 一种商品推荐方法、***、电子设备及相关组件 |
CN113822776A (zh) * | 2021-09-29 | 2021-12-21 | 中国平安财产保险股份有限公司 | 课程推荐方法、装置、设备及存储介质 |
CN113822776B (zh) * | 2021-09-29 | 2023-11-03 | 中国平安财产保险股份有限公司 | 课程推荐方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN106202377B (zh) | 2019-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106202377B (zh) | 一种基于随机梯度下降的在线协同排序方法 | |
Kavitha et al. | A comparative analysis on linear regression and support vector regression | |
CN112232925A (zh) | 一种融合知识图谱对商品进行个性化推荐的方法 | |
CN106980648B (zh) | 一种基于概率矩阵分解结合相似度的个性化推荐方法 | |
CN105976070A (zh) | 基于重点元素的矩阵分解及微调方法 | |
CN111881363A (zh) | 一种基于图交互网络的推荐方法 | |
CN112231583B (zh) | 基于动态兴趣组标识和生成对抗网络的电商推荐方法 | |
CN111259238A (zh) | 一种基于矩阵分解的事后可解释性推荐方法及装置 | |
CN111949885B (zh) | 一种面向旅游景点的个性化推荐方法 | |
CN111695024A (zh) | 对象评估值的预测方法及***、推荐方法及*** | |
CN105809474A (zh) | 一种层次化商品信息过滤推荐方法 | |
CN112085525A (zh) | 一种基于混合模型的用户网络购买行为预测研究方法 | |
CN111414555A (zh) | 一种基于协同过滤的个性化推荐方法 | |
CN112632377A (zh) | 一种基于用户评论情感分析与矩阵分解的推荐方法 | |
CN112818256B (zh) | 一种基于神经协同过滤的推荐方法 | |
CN116911949A (zh) | 基于边界排名损失和邻域感知图神经网络的物品推荐方法 | |
CN104572623A (zh) | 一种在线lda模型的高效数据总结分析方法 | |
CN105843928A (zh) | 基于双层矩阵分解的推荐方法 | |
CN106650972B (zh) | 一种面向社交网络基于云模型的推荐***评分预测方法 | |
CN112786120B (zh) | 神经网络辅助化学材料合成的方法 | |
Bu et al. | Active learning in recommendation systems with multi-level user preferences | |
Muzdybayeva et al. | A matrix factorization-based collaborative filtering framework for course recommendations in higher education | |
Xue et al. | An explicit feedback recommendation algorithm based on subjective and objective evaluation transformation model | |
Cao et al. | A Novel Hybrid Collaborative Filtering Approach to Recommendation Using Reviews: The Product Attribute Perspective (S). | |
CN114036267A (zh) | 对话方法及*** |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190913 |
|
CF01 | Termination of patent right due to non-payment of annual fee |