CN107291894A - 一种融合相似性和共同评分项数量的概率矩阵分解模型 - Google Patents
一种融合相似性和共同评分项数量的概率矩阵分解模型 Download PDFInfo
- Publication number
- CN107291894A CN107291894A CN201710475797.4A CN201710475797A CN107291894A CN 107291894 A CN107291894 A CN 107291894A CN 201710475797 A CN201710475797 A CN 201710475797A CN 107291894 A CN107291894 A CN 107291894A
- Authority
- CN
- China
- Prior art keywords
- mrow
- msub
- msubsup
- user
- project
- 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.)
- Pending
Links
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
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Other Investigation Or Analysis Of Materials By Electrical Means (AREA)
Abstract
本发明公开了一种融合相似性和共同评分项数量的概率矩阵分解模型,提出了一种新颖的融合相似性和共同评分项数量的概率矩阵分解模型,该模型在PMF的基础上,通过相似性来约束因子矩阵的内积,同时对共同评分项数量建立合适的罚函数,并把罚函数和因子矩阵的内积关联在一块来共同约束因子矩阵,从而提高因子矩阵的质量。本发明成功结合了相似性在发掘局部关系方面的优势和概率矩阵分解模型在挖掘全局关系方面的优势,同时该模型还考虑到了共同评分项数量对相似性可信赖度的影响。相比之间所做的研究,本发明在推荐精度方面具有显著的提高。
Description
技术领域
本发明涉及推荐算法领域,具体涉及一种融合相似性和共同评分项数量的概率矩阵分解模型,主要是在传统的概率矩阵分解模型(Probabilistic Matrix Factorization,PMF)中融合相似性和共同评分项数量,从而能缓解数据稀松性,提高推荐精度。
背景技术
随着互联网技术的发展,以用户为中心的信息生产模式造成了互联网信息的***式增长,人们面临着越来越严重的“信息过载”问题。推荐***能够挖掘用户偏好,给用户推荐他们喜欢的项目(电影、图书、音乐和商品等),从而提供个性化的推荐服务,能有效缓解“信息过载”问题。推荐算法是推荐***的核心,很大程度上决定了推荐***的性能。目前主要的推荐算法包括基于内容的推荐、基于知识的推荐、基于关联规则的推荐、协同过滤推荐和组合推荐等。其中,协同过滤是目前应用最广泛且最成功的推荐技术。
按照对用户-项目评分矩阵的处理方式的差异,协同过滤可以分为基于内存(memory-based)和基于模型(model-based)的协同过滤推荐算法。前者首先利用整个用户-项目评分数据集计算用户(项目)相似度,然后根据相似度选择邻居用户(项目),再根据邻居用户(项目)的评分为目标用户作推荐;后者根据训练集数据学习得出一个复杂的模型,然后基于该模型和目标用户已评分数据,推导出目标用户对未评分项目的评分值。基于内存的协同过滤算法包括基于用户(user-based)和基于项目(item-based)的协同过滤算法,基于模型的协同过滤算法中最具代表性且应用最为广泛的是PMF。
基于内存的协同过滤推荐算法具有很高的局部学习能力,且能推荐新颖性高的项目,不足之处在于不能处理数据稀松性问题;而PMF具有高扩展性,强大的全局学习能力,且能较好地处理数据稀松性问题。大量研究都表明了两种协同算法的融合能结合两者优势,从而进一步提高推荐效果。为了结合两者的优势,很多学者致力于在PMF中融合相似性,虽然一定程度上提高了推荐精度,但却忽略了共同评分项数量对推荐结果的影响。有相关研究表明,用户(项目)之间的共同评分项数量能反应其相似性的可信赖程度,因而能影响推荐效果。
发明内容
本发明的目的是为了克服上述背景技术的不足,提供一种融合相似性和共同评分项数量的概率矩阵分解模型,可以有效提高推荐精度。
一种融合相似性和共同评分项数量的概率矩阵分解模型,包括:
步骤1,建立用户-项目评分矩阵R,用户-项目评分矩阵R中各个元素为Ri,j,i=1,2,..N,j=1,2,3,..M,N表示推荐***中的用户数量,M表示推荐***中的项目数量;
步骤2,建立评分指示矩阵IR,评分指示矩阵IR中各个元素表示用户i对项目j是否进行过评分,若是,则若否,则
步骤3,通过皮尔森相关系数计算用户相似度矩阵D,用户相似度矩阵D中各个其中Di,k表示用户i和用户k之间的相似性,
其中,J表示用户i和k共同评价过的项目集合,表示用户i对所有已评价项目的平均评分,表示用户k对所有已评价项目的平均评分;
步骤4,通过改进的余弦相似性计算项目相似度矩阵S,相似度矩阵S中各个元素Sj,p表示项目j与项目p之间的相似性,
其中I为同时评价过项目j和p的用户集;
步骤5,建立用户共同评分项数量矩阵CD,用户共同评分项数量矩阵CD中各个元素表示用户i和用户k共同评价过的项目的数量,其中Ri和Rk分别表示用户i和用户k的评价过的项目的集合;
步骤6,建立项目共同评分项数量矩阵CS,项目共同评分项数量矩阵CS中各个元素表示同时评价过项目j和项目p的用户的数量,其中Rj和Rp分别表示评价过项目j和项目p的用户集合;
步骤7,将用户共同评分项矩阵CD和项目共同评分项矩阵CS代入罚函数ω(c),得到用户相似性权重矩阵ID=ω(CD),和项目相似性权重矩阵IS=ω(CS),
罚函数ω(c)为
其中,阈值α和β(α<β)分别表示最小评分项数量和最大评分项数量;
步骤8,建立损失函数
其中和为评分矩阵R、D和S的方差,g(x)=1/(1+exp(-x)),λU和λV为用来抑制过拟合的模型参数,U和V分别表示用户因子矩阵和项目因子矩阵,Ui和Uk分别表示用户i和用户k对应的用户因子向量,Vj和Vp分别表示项目j和项目p对应项目因子向量,损失函数E即为概率矩阵分解模型。
较佳地,步骤1还包括对用户-项目评分矩阵R进行归一化处理,
Ri,j=Ri,j/K
其中,K为推荐***规定的评分范围。
较佳地,在步骤8之后还包括:
步骤9,求解损失函数E中的变量U和V,通过随机梯度下降算法最小化损失函数E求解用户因子矩阵U和项目因子矩阵V,得到U和V的偏导数公式:
较佳地,在步骤9之后还包括:
步骤10,依据步骤9所得公式求解出U和V,推荐***预测的用户i对项目j的评分
本发明的有益效果在于:本发明针对现阶段推荐算法面临的诸多问题,在深入研究PMF的基础上,提出了一种新颖的融合相似性和共同评分项数量的概率矩阵分解模型,该模型在PMF的基础上,通过相似性来约束因子矩阵的内积,同时对公共评分项数量建立合适的罚函数,并把罚函数和因子矩阵的内积关联在一块来共同约束因子矩阵,从而提高因子矩阵的质量。在三个真实数据集上的实验表明,该模型能进一步缓解数据稀松性问题,提高推荐精度。本发明提出的一种融合相似性和共同评分项数量的概率矩阵分解模型成功结合了相似性在发掘局部关系方面的优势和概率矩阵分解模型在挖掘全局关系方面的优势,同时该模型还考虑到了共同评分项数量对相似性可信赖度的影响。相比之间所做的研究,本发明在推荐精度方面具有显著的提高。
附图说明
图1为本发明的逻辑架构图,
图2为模型参数λU和λV在MovieLens-1M上的影响,
图3为模型参数λU和λV在豆瓣图书数据集上的影响,
图4为模型参数λU和λV在豆瓣音乐数据集上的影响。
具体实施方式
下面结合附图及实施例对本发明作进一步的详细描述,但该实施例不应理解为对本发明的限制。
步骤1:建立用户-项目评分矩阵R,其中Ri,j表示编号为i(i=1,2,..N)的用户对编号为j(j=1,2,3,..M)的项目的评分,N和M分别表示推荐***中的用户数量和项目数量,如果用户i未对项目j进行评分,则Ri,j=0。获取矩阵R之后,通过如下归一化函数对评分进行归一化处理:
Ri,j=Ri,j/K (1)
其中K为推荐***规定的评分范围(如推荐***采用5分制评分时,K=5)
步骤2:建立评分指示矩阵IR表示用户对项目评分情况,如果用户i对项目j进行过评分,则否则
步骤3:通过皮尔森相关系数计算用户相似度矩阵D,其中Di,k表示用户i和用户k之间的相似性,即:
其中,J表示用户i和k共同评价过的项目集合,表示用户i对所有已评价项目的平均评分,表示用户k对所有已评价项目的平均评分。
步骤4:通过改进的余弦相似性计算项目相似度矩阵S,其中Sj,p表示项目j与项目p之间的相似性,即:
其中I为同时评价过项目j和p的用户集。
步骤5:建立用户共同评分项数量矩阵CD,其中表示用户i和用户k共同评价过的项目的数量,即(其中Ri和Rk分别表示用户i和用户k的评价过的项目的集合)
步骤6:建立项目共同评分项数量矩阵CS,其中表示同时评价过项目j和项目p的用户的数量,即(其中Rj和Rp分别表示评价过项目j和项目p的用户集合)
步骤7:在用户、项目共同评分项矩阵的基础上,通过罚函数ω(c)建立用户相似性权重矩阵ID和项目相似性权重矩阵IS,即:ID=ω(CD),IS=ω(CS),罚函数如下:
其中,阈值α和β(α<β)分别表示最小评分项数量和最大评分项数量,罚函数表示当共同评分项数量小于α时,忽略其对应的相似性影响,当大于β,同等对待其对应的相似性影响。
步骤8:建立如下损失函数概率矩阵分解模型:
其中和为评分矩阵R、D和S的方差,g(x)=1/(1+exp(-x)),λU和λV为模型参数,用来抑制过拟合,U和V分别表示用户因子矩阵和项目因子矩阵,Ui和Uk分别表示用户i和用户k对应的用户因子向量,Vj和Vp分别表示项目j和项目p对应项目因子向量。所述损失函数E即为概率矩阵分解模型。
步骤9:在上面的损失函数(式5)中,只有U和V为变量,通过随机梯度下降算法最小化损失函数求解用户因子矩阵U和项目因子矩阵V,其中U和V的偏导数如下:
步骤10:求解出U和V之后,即可通过公式6预测特定用户对特定项目的评分值
其中pi,j表示推荐***预测的用户i对项目j的评分。
本实施例所述模型的推导过程包括:
和概率矩阵分解模型类似,融合相似性和共同评分项数量的概率矩阵分解模型在用户-项目评分集上的条件概率分布可以定义为:
其中,R为用户-项目评分集,N为用户数量,M为项目数量,U为用户因子矩阵,V为项目因子矩阵,N(x|μ,σ2)是均值为μ方差为σ2的高斯分布,g(x)=1/(1+exp(-x))为逻辑函数,为指示函数(当用户i评价过项目j时返回1,其它返回0)。
用户相似性矩阵D(D通过相似性计算得到)的先验条件概率分布定义为:
和用户相似性类似,项目之间的相似性矩阵S的先验条件概率分布定义为:
本发明也同样假定用户因子矩阵U和项目因子矩阵V都符合均值为0的高斯球形分布:
通过一个简单的贝叶斯推导,后验分布函数为:
对公式8取对数,得到如下公式:
其中C是一个常量,不依赖任何参数。针对变量U和V最大化后验分布的对数函数等价于最小化损失函数(式5)
将本实施例所述模型应用于java环境进行程序开发,JDK版本采用jdk1.7.0_79,运行环境为Ubuntu 14.04.4(64bit)。
以下通过具体数据对本发明实施例的效果进行描述:
为了丰富实验数据集,通过从豆瓣网站上爬取了图书和音乐数据,经过数据清理过程,获得了4705个用户对3876本书的1030701条评分数据,和7924个用户对4759首歌曲的1173540条评分数据。除此之外,我们还从Movie Lens网站上下载了开放的MovieLens-1M数据集,其包含6040个用户对3952部电影的1000209条评分数据。对这三个数据集的描述如表2所示,三个数据集分别命名为Book,Music和MovieLens-1M。
在对IUPMF与其它5种经典方法进行对比的实验中,我们把实验数据集分成两部分,90%的数据作为训练集,剩下10%的数据作为测试集。为了挑选最佳的参数设置,我们在训练集上采用了5-fold交叉验证的方法,并从集合{5,10,15,20,25,…,100}中选择最佳的邻居大小,PMF模型的参数λ从{0.0005,0.01,0.05,0.1,0.2,0.4,0.8,1.2}中选择,模型参数α的值从0到20之间选择,β的值从20到60之间选择,特征维度设置为10和20(即L=10和L=20)。我们选用随机梯度下降算法作为求最优解的方法,并把学习速率设置为0.001,最大迭代次数设置为1000。经过大量的实验,各算法的推荐精度如表1所示,获得的本模型最佳参数设置如表3所示。
在IUPMF模型中,模型参数λU和λV在抗过拟合方面起着重要的作用。本发明设计了一组实验来专门探究模型参数的λU和λV的影响,在该实验中,我们让λU=λV=λ,然后λ的值从集合{0.0005,0.01,0.05,0.1,0.2,0.4,0.8,1.2}选择,除此之外,参数α、β以及L都设为最佳值。图2-4展示了模型参数λU和λV对IUPMF模型的影响。
在推荐精度(RMSE)方面,本发明与如下经典算法作了对比分析:
(1)Item-KNN:常规的基于项目的协同过滤推荐算法
(2)User-KNN:常规的基于用户的协同过滤推荐算法
(3)PMF:经典的概率矩阵分解模型
(4)NHPMF:一种把基于近邻的方法与PMF相结合的推荐算法
(5)SBMF:一种新颖的融合相似性的矩阵分解模型
在三个真实数据集上的实验表明本发明显著提高了推荐精度,实验结果如下表所示:
表1 本发明与现有的相关推荐算法的对比
表2 进行实验的三个数据集
表3 本发明的最佳参数设置
本发明提出了一种融合相似性和共同评分项数量的概率矩阵分解模型。该模型成功结合了相似性在发掘局部关系方面的优势和概率矩阵分解模型在挖掘全局关系方面的优势,同时该模型还考虑到了共同评分项数量对相似性可信赖度的影响。相比之间所做的研究,本发明在推荐精度方面具有显著的提高。接下来的工作就是将此模型运用于实际的推荐***中,弥补传统推荐***在推荐精度方面不足的问题。
以上显示和描述了本发明的基本原理、主要特征和优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
Claims (4)
1.一种融合相似性和共同评分项数量的概率矩阵分解模型,其特征在于,包括:
步骤1,建立用户-项目评分矩阵R,所述用户-项目评分矩阵R中各个元素为Ri,j,i=1,2,..N,j=1,2,3,..M,N表示推荐***中的用户数量,M表示推荐***中的项目数量;
步骤2,建立评分指示矩阵IR,所述评分指示矩阵IR中各个元素表示用户i对项目j是否进行过评分,若是,则若否,则
步骤3,通过皮尔森相关系数计算用户相似度矩阵D,所述用户相似度矩阵D中各个其中Di,k表示用户i和用户k之间的相似性,
<mrow>
<msub>
<mi>D</mi>
<mrow>
<mi>i</mi>
<mo>,</mo>
<mi>k</mi>
</mrow>
</msub>
<mo>=</mo>
<mfrac>
<mrow>
<msub>
<mo>&Sigma;</mo>
<mrow>
<mi>j</mi>
<mo>&Element;</mo>
<mi>J</mi>
</mrow>
</msub>
<mrow>
<mo>(</mo>
<msub>
<mi>R</mi>
<mrow>
<mi>i</mi>
<mo>,</mo>
<mi>j</mi>
</mrow>
</msub>
<mo>-</mo>
<mover>
<msub>
<mi>R</mi>
<mi>i</mi>
</msub>
<mo>&OverBar;</mo>
</mover>
<mo>)</mo>
</mrow>
<mrow>
<mo>(</mo>
<msub>
<mi>R</mi>
<mrow>
<mi>k</mi>
<mo>,</mo>
<mi>j</mi>
</mrow>
</msub>
<mo>-</mo>
<mover>
<msub>
<mi>R</mi>
<mi>k</mi>
</msub>
<mo>&OverBar;</mo>
</mover>
<mo>)</mo>
</mrow>
</mrow>
<mrow>
<msqrt>
<mrow>
<msub>
<mo>&Sigma;</mo>
<mrow>
<mi>j</mi>
<mo>&Element;</mo>
<mi>J</mi>
</mrow>
</msub>
<msup>
<mrow>
<mo>(</mo>
<msub>
<mi>R</mi>
<mrow>
<mi>i</mi>
<mo>,</mo>
<mi>j</mi>
</mrow>
</msub>
<mo>-</mo>
<mover>
<msub>
<mi>R</mi>
<mi>i</mi>
</msub>
<mo>&OverBar;</mo>
</mover>
<mo>)</mo>
</mrow>
<mn>2</mn>
</msup>
</mrow>
</msqrt>
<msqrt>
<mrow>
<msub>
<mo>&Sigma;</mo>
<mrow>
<mi>j</mi>
<mo>&Element;</mo>
<mi>J</mi>
</mrow>
</msub>
<msup>
<mrow>
<mo>(</mo>
<msub>
<mi>R</mi>
<mrow>
<mi>k</mi>
<mo>,</mo>
<mi>j</mi>
</mrow>
</msub>
<mo>-</mo>
<mover>
<msub>
<mi>R</mi>
<mi>k</mi>
</msub>
<mo>&OverBar;</mo>
</mover>
<mo>)</mo>
</mrow>
<mn>2</mn>
</msup>
</mrow>
</msqrt>
</mrow>
</mfrac>
</mrow>
其中,J表示用户i和k共同评价过的项目集合,表示用户i对所有已评价项目的平均评分,表示用户k对所有已评价项目的平均评分;
步骤4,通过改进的余弦相似性计算项目相似度矩阵S,所述相似度矩阵S中各个元素Sj,p表示项目j与项目p之间的相似性,
<mrow>
<msub>
<mi>S</mi>
<mrow>
<mi>j</mi>
<mo>,</mo>
<mi>p</mi>
</mrow>
</msub>
<mo>=</mo>
<mfrac>
<mrow>
<msub>
<mo>&Sigma;</mo>
<mrow>
<mi>i</mi>
<mo>&Element;</mo>
<mi>I</mi>
</mrow>
</msub>
<mrow>
<mo>(</mo>
<msub>
<mi>R</mi>
<mrow>
<mi>i</mi>
<mo>,</mo>
<mi>j</mi>
</mrow>
</msub>
<mo>-</mo>
<mover>
<msub>
<mi>R</mi>
<mi>i</mi>
</msub>
<mo>&OverBar;</mo>
</mover>
<mo>)</mo>
</mrow>
<mrow>
<mo>(</mo>
<msub>
<mi>R</mi>
<mrow>
<mi>i</mi>
<mo>,</mo>
<mi>p</mi>
</mrow>
</msub>
<mo>-</mo>
<mover>
<msub>
<mi>R</mi>
<mi>i</mi>
</msub>
<mo>&OverBar;</mo>
</mover>
<mo>)</mo>
</mrow>
</mrow>
<mrow>
<msqrt>
<mrow>
<msub>
<mo>&Sigma;</mo>
<mrow>
<mi>i</mi>
<mo>&Element;</mo>
<mi>I</mi>
</mrow>
</msub>
<msup>
<mrow>
<mo>(</mo>
<msub>
<mi>R</mi>
<mrow>
<mi>i</mi>
<mo>,</mo>
<mi>j</mi>
</mrow>
</msub>
<mo>-</mo>
<mover>
<msub>
<mi>R</mi>
<mi>i</mi>
</msub>
<mo>&OverBar;</mo>
</mover>
<mo>)</mo>
</mrow>
<mn>2</mn>
</msup>
</mrow>
</msqrt>
<msqrt>
<mrow>
<msub>
<mo>&Sigma;</mo>
<mrow>
<mi>i</mi>
<mo>&Element;</mo>
<mi>I</mi>
</mrow>
</msub>
<msup>
<mrow>
<mo>(</mo>
<msub>
<mi>R</mi>
<mrow>
<mi>i</mi>
<mo>,</mo>
<mi>p</mi>
</mrow>
</msub>
<mo>-</mo>
<mover>
<msub>
<mi>R</mi>
<mi>i</mi>
</msub>
<mo>&OverBar;</mo>
</mover>
<mo>)</mo>
</mrow>
<mn>2</mn>
</msup>
</mrow>
</msqrt>
</mrow>
</mfrac>
</mrow>
其中I为同时评价过项目j和p的用户集;
步骤5,建立用户共同评分项数量矩阵CD,所述用户共同评分项数量矩阵CD中各个元素表示用户i和用户k共同评价过的项目的数量,其中Ri和Rk分别表示用户i和用户k的评价过的项目的集合;
步骤6,建立项目共同评分项数量矩阵CS,所述项目共同评分项数量矩阵CS中各个元素表示同时评价过项目j和项目p的用户的数量,其中Rj和Rp分别表示评价过项目j和项目p的用户集合;
步骤7,将所述用户共同评分项矩阵CD和所述项目共同评分项矩阵CS代入所述罚函数ω(c),得到用户相似性权重矩阵ID=ω(CD),和项目相似性权重矩阵IS=ω(CS),
所述罚函数ω(c)为
<mrow>
<mi>&omega;</mi>
<mrow>
<mo>(</mo>
<mi>c</mi>
<mo>)</mo>
</mrow>
<mo>=</mo>
<mfenced open = "{" close = "">
<mtable>
<mtr>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mrow>
<mi>c</mi>
<mo><</mo>
<mi>&alpha;</mi>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mi>c</mi>
<mo>-</mo>
<mi>&alpha;</mi>
<mo>/</mo>
<mi>&beta;</mi>
<mo>-</mo>
<mi>&alpha;</mi>
</mrow>
</mtd>
<mtd>
<mrow>
<mi>&alpha;</mi>
<mo>&le;</mo>
<mi>c</mi>
<mo><</mo>
<mi>&beta;</mi>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mn>1</mn>
</mtd>
<mtd>
<mrow>
<mi>c</mi>
<mo>&GreaterEqual;</mo>
<mi>&beta;</mi>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
</mrow>
其中,阈值α和β(α<β)分别表示最小评分项数量和最大评分项数量;
步骤8,建立损失函数
<mfenced open = "" close = "">
<mtable>
<mtr>
<mtd>
<mrow>
<mi>E</mi>
<mo>=</mo>
<mfrac>
<mn>1</mn>
<mn>2</mn>
</mfrac>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>i</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>N</mi>
</munderover>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>j</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>N</mi>
</munderover>
<msubsup>
<mi>I</mi>
<mrow>
<mi>i</mi>
<mo>,</mo>
<mi>j</mi>
</mrow>
<mi>R</mi>
</msubsup>
<msup>
<mrow>
<mo>(</mo>
<msub>
<mi>R</mi>
<mrow>
<mi>i</mi>
<mo>,</mo>
<mi>j</mi>
</mrow>
</msub>
<mo>-</mo>
<mi>g</mi>
<mo>(</mo>
<mrow>
<msubsup>
<mi>U</mi>
<mi>i</mi>
<mi>T</mi>
</msubsup>
<msub>
<mi>V</mi>
<mi>j</mi>
</msub>
</mrow>
<mo>)</mo>
<mo>)</mo>
</mrow>
<mn>2</mn>
</msup>
<mo>+</mo>
<mfrac>
<msubsup>
<mi>&sigma;</mi>
<mi>R</mi>
<mn>2</mn>
</msubsup>
<mrow>
<mn>2</mn>
<msubsup>
<mi>&sigma;</mi>
<mi>D</mi>
<mn>2</mn>
</msubsup>
</mrow>
</mfrac>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>i</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>N</mi>
</munderover>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>k</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>N</mi>
</munderover>
<msubsup>
<mi>I</mi>
<mrow>
<mi>i</mi>
<mo>,</mo>
<mi>k</mi>
</mrow>
<mi>D</mi>
</msubsup>
<msup>
<mrow>
<mo>(</mo>
<msub>
<mi>D</mi>
<mrow>
<mi>i</mi>
<mo>,</mo>
<mi>k</mi>
</mrow>
</msub>
<mo>-</mo>
<mi>g</mi>
<mo>(</mo>
<mrow>
<msubsup>
<mi>U</mi>
<mi>i</mi>
<mi>T</mi>
</msubsup>
<msub>
<mi>U</mi>
<mi>k</mi>
</msub>
</mrow>
<mo>)</mo>
<mo>)</mo>
</mrow>
<mn>2</mn>
</msup>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mo>+</mo>
<mfrac>
<msubsup>
<mi>&sigma;</mi>
<mi>R</mi>
<mn>2</mn>
</msubsup>
<mrow>
<mn>2</mn>
<msubsup>
<mi>&sigma;</mi>
<mi>S</mi>
<mn>2</mn>
</msubsup>
</mrow>
</mfrac>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>j</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>M</mi>
</munderover>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>p</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>M</mi>
</munderover>
<msubsup>
<mi>I</mi>
<mrow>
<mi>j</mi>
<mo>,</mo>
<mi>p</mi>
</mrow>
<mi>S</mi>
</msubsup>
<msup>
<mrow>
<mo>(</mo>
<msub>
<mi>S</mi>
<mrow>
<mi>j</mi>
<mo>,</mo>
<mi>p</mi>
</mrow>
</msub>
<mo>-</mo>
<mi>g</mi>
<mo>(</mo>
<mrow>
<msubsup>
<mi>V</mi>
<mi>j</mi>
<mi>T</mi>
</msubsup>
<msub>
<mi>V</mi>
<mi>p</mi>
</msub>
</mrow>
<mo>)</mo>
<mo>)</mo>
</mrow>
<mn>2</mn>
</msup>
<mo>+</mo>
<mfrac>
<msub>
<mi>&lambda;</mi>
<mi>U</mi>
</msub>
<mn>2</mn>
</mfrac>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>i</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>N</mi>
</munderover>
<msubsup>
<mi>U</mi>
<mi>i</mi>
<mi>T</mi>
</msubsup>
<msub>
<mi>U</mi>
<mi>i</mi>
</msub>
<mo>+</mo>
<mfrac>
<msub>
<mi>&lambda;</mi>
<mi>V</mi>
</msub>
<mn>2</mn>
</mfrac>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>j</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>M</mi>
</munderover>
<msubsup>
<mi>V</mi>
<mi>j</mi>
<mi>T</mi>
</msubsup>
<msub>
<mi>V</mi>
<mi>j</mi>
</msub>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
1
其中和为评分矩阵R、D和S的方差,g(x)=1/(1+exp(-x)),λU和λV为用来抑制过拟合的模型参数,U和V分别表示用户因子矩阵和项目因子矩阵,Ui和Uk分别表示用户i和用户k对应的用户因子向量,Vj和Vp分别表示项目j和项目p对应项目因子向量,所述损失函数E即为概率矩阵分解模型。
2.根据权利要求1所述的一种融合相似性和共同评分项数量的概率矩阵分解模型,其特征在于:所述步骤1还包括对所述用户-项目评分矩阵R进行归一化处理,
Ri,j=Ri,j/K
其中,所述K为推荐***规定的评分范围。
3.根据权利要求1所述的一种融合相似性和共同评分项数量的概率矩阵分解模型,其特征在于,在所述步骤8之后还包括:
步骤9,求解所述损失函数E中的变量U和V,通过随机梯度下降算法最小化损失函数E求解用户因子矩阵U和项目因子矩阵V,得到U和V的偏导数公式:
<mfenced open = "" close = "">
<mtable>
<mtr>
<mtd>
<mrow>
<mfrac>
<mrow>
<mo>&part;</mo>
<mi>E</mi>
</mrow>
<mrow>
<mo>&part;</mo>
<msub>
<mi>U</mi>
<mi>i</mi>
</msub>
</mrow>
</mfrac>
<mo>=</mo>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>j</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>M</mi>
</munderover>
<msubsup>
<mi>I</mi>
<mrow>
<mi>i</mi>
<mo>,</mo>
<mi>j</mi>
</mrow>
<mi>R</mi>
</msubsup>
<mrow>
<mo>(</mo>
<mi>g</mi>
<mo>(</mo>
<mrow>
<msubsup>
<mi>U</mi>
<mi>i</mi>
<mi>T</mi>
</msubsup>
<msub>
<mi>V</mi>
<mi>j</mi>
</msub>
</mrow>
<mo>)</mo>
<mo>-</mo>
<msub>
<mi>R</mi>
<mrow>
<mi>i</mi>
<mo>,</mo>
<mi>j</mi>
</mrow>
</msub>
<mo>)</mo>
</mrow>
<msup>
<mi>g</mi>
<mo>&prime;</mo>
</msup>
<mrow>
<mo>(</mo>
<msubsup>
<mi>U</mi>
<mi>i</mi>
<mi>T</mi>
</msubsup>
<msub>
<mi>V</mi>
<mi>j</mi>
</msub>
<mo>)</mo>
</mrow>
<msub>
<mi>V</mi>
<mi>j</mi>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mo>+</mo>
<mfrac>
<mrow>
<mn>2</mn>
<msubsup>
<mi>&sigma;</mi>
<mi>R</mi>
<mn>2</mn>
</msubsup>
</mrow>
<msubsup>
<mi>&sigma;</mi>
<mi>D</mi>
<mn>2</mn>
</msubsup>
</mfrac>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>k</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>N</mi>
</munderover>
<msubsup>
<mi>I</mi>
<mrow>
<mi>i</mi>
<mo>,</mo>
<mi>k</mi>
</mrow>
<mi>D</mi>
</msubsup>
<mrow>
<mo>(</mo>
<mi>g</mi>
<mo>(</mo>
<mrow>
<msubsup>
<mi>U</mi>
<mi>i</mi>
<mi>T</mi>
</msubsup>
<msub>
<mi>U</mi>
<mi>k</mi>
</msub>
</mrow>
<mo>)</mo>
<mo>-</mo>
<msub>
<mi>D</mi>
<mrow>
<mi>i</mi>
<mo>,</mo>
<mi>k</mi>
</mrow>
</msub>
<mo>)</mo>
</mrow>
<msup>
<mi>g</mi>
<mo>&prime;</mo>
</msup>
<mrow>
<mo>(</mo>
<msubsup>
<mi>U</mi>
<mi>i</mi>
<mi>T</mi>
</msubsup>
<msub>
<mi>U</mi>
<mi>k</mi>
</msub>
<mo>)</mo>
</mrow>
<msub>
<mi>U</mi>
<mi>k</mi>
</msub>
<mo>+</mo>
<msub>
<mi>&lambda;</mi>
<mi>U</mi>
</msub>
<msub>
<mi>U</mi>
<mi>i</mi>
</msub>
<mo>.</mo>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
<mfenced open = "" close = "">
<mtable>
<mtr>
<mtd>
<mrow>
<mfrac>
<mrow>
<mo>&part;</mo>
<mi>E</mi>
</mrow>
<mrow>
<mo>&part;</mo>
<msub>
<mi>V</mi>
<mi>j</mi>
</msub>
</mrow>
</mfrac>
<mo>=</mo>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>i</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>N</mi>
</munderover>
<msubsup>
<mi>I</mi>
<mrow>
<mi>i</mi>
<mo>,</mo>
<mi>j</mi>
</mrow>
<mi>R</mi>
</msubsup>
<mrow>
<mo>(</mo>
<mi>g</mi>
<mo>(</mo>
<mrow>
<msubsup>
<mi>U</mi>
<mi>i</mi>
<mi>T</mi>
</msubsup>
<msub>
<mi>V</mi>
<mi>j</mi>
</msub>
</mrow>
<mo>)</mo>
<mo>-</mo>
<msub>
<mi>R</mi>
<mrow>
<mi>i</mi>
<mo>,</mo>
<mi>j</mi>
</mrow>
</msub>
<mo>)</mo>
</mrow>
<msup>
<mi>g</mi>
<mo>&prime;</mo>
</msup>
<mrow>
<mo>(</mo>
<msubsup>
<mi>U</mi>
<mi>i</mi>
<mi>T</mi>
</msubsup>
<msub>
<mi>V</mi>
<mi>j</mi>
</msub>
<mo>)</mo>
</mrow>
<msub>
<mi>U</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mo>+</mo>
<mfrac>
<mrow>
<mn>2</mn>
<msubsup>
<mi>&sigma;</mi>
<mi>R</mi>
<mn>2</mn>
</msubsup>
</mrow>
<msubsup>
<mi>&sigma;</mi>
<mi>S</mi>
<mn>2</mn>
</msubsup>
</mfrac>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>p</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>M</mi>
</munderover>
<msubsup>
<mi>I</mi>
<mrow>
<mi>j</mi>
<mo>,</mo>
<mi>p</mi>
</mrow>
<mi>S</mi>
</msubsup>
<mrow>
<mo>(</mo>
<mi>g</mi>
<mo>(</mo>
<mrow>
<msubsup>
<mi>V</mi>
<mi>j</mi>
<mi>T</mi>
</msubsup>
<msub>
<mi>V</mi>
<mi>p</mi>
</msub>
</mrow>
<mo>)</mo>
<mo>-</mo>
<msub>
<mi>S</mi>
<mrow>
<mi>j</mi>
<mo>,</mo>
<mi>p</mi>
</mrow>
</msub>
<mo>)</mo>
</mrow>
<msup>
<mi>g</mi>
<mo>&prime;</mo>
</msup>
<mrow>
<mo>(</mo>
<msubsup>
<mi>V</mi>
<mi>j</mi>
<mi>T</mi>
</msubsup>
<msub>
<mi>V</mi>
<mi>p</mi>
</msub>
<mo>)</mo>
</mrow>
<msub>
<mi>V</mi>
<mi>p</mi>
</msub>
<mo>+</mo>
<msub>
<mi>&lambda;</mi>
<mi>V</mi>
</msub>
<msub>
<mi>V</mi>
<mi>j</mi>
</msub>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
4.根据权利要求3所述的一种融合相似性和共同评分项数量的概率矩阵分解模型,其特征在于,在所述步骤9之后还包括:
步骤10,依据所述步骤9所得公式求解出U和V,推荐***预测的用户i对项目j的评分
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710475797.4A CN107291894A (zh) | 2017-06-21 | 2017-06-21 | 一种融合相似性和共同评分项数量的概率矩阵分解模型 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710475797.4A CN107291894A (zh) | 2017-06-21 | 2017-06-21 | 一种融合相似性和共同评分项数量的概率矩阵分解模型 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107291894A true CN107291894A (zh) | 2017-10-24 |
Family
ID=60097218
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710475797.4A Pending CN107291894A (zh) | 2017-06-21 | 2017-06-21 | 一种融合相似性和共同评分项数量的概率矩阵分解模型 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107291894A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108318748A (zh) * | 2018-02-02 | 2018-07-24 | 湘潭大学 | 一种基站电磁辐射强度相似度评估方法 |
CN108959184A (zh) * | 2018-06-26 | 2018-12-07 | 武汉理工大学 | 一种基于相似性和相似性可信度的协同过滤推荐算法及装置 |
CN110110239A (zh) * | 2019-04-26 | 2019-08-09 | 常熟理工学院 | 基于多指标概率矩阵分解模型的美食推荐方法 |
CN111553401A (zh) * | 2020-04-22 | 2020-08-18 | 北京交通大学 | 一种应用在云服务推荐中基于图模型的QoS预测方法 |
-
2017
- 2017-06-21 CN CN201710475797.4A patent/CN107291894A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108318748A (zh) * | 2018-02-02 | 2018-07-24 | 湘潭大学 | 一种基站电磁辐射强度相似度评估方法 |
CN108318748B (zh) * | 2018-02-02 | 2020-06-12 | 湘潭大学 | 一种基站电磁辐射强度相似度评估方法 |
CN108959184A (zh) * | 2018-06-26 | 2018-12-07 | 武汉理工大学 | 一种基于相似性和相似性可信度的协同过滤推荐算法及装置 |
CN108959184B (zh) * | 2018-06-26 | 2022-06-07 | 武汉理工大学 | 一种基于相似性和相似性可信度的协同过滤推荐算法及装置 |
CN110110239A (zh) * | 2019-04-26 | 2019-08-09 | 常熟理工学院 | 基于多指标概率矩阵分解模型的美食推荐方法 |
CN111553401A (zh) * | 2020-04-22 | 2020-08-18 | 北京交通大学 | 一种应用在云服务推荐中基于图模型的QoS预测方法 |
CN111553401B (zh) * | 2020-04-22 | 2024-02-13 | 北京交通大学 | 一种应用在云服务推荐中基于图模型的QoS预测方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yu et al. | A cross-domain collaborative filtering algorithm with expanding user and item features via the latent factor space of auxiliary domains | |
CN111428147B (zh) | 结合社交和兴趣信息的异源图卷积网络的社交推荐方法 | |
CN103377250B (zh) | 基于邻域的top‑k推荐方法 | |
US11216503B1 (en) | Clustering search results | |
Huang et al. | Link prediction approach to collaborative filtering | |
CN105005589B (zh) | 一种文本分类的方法和装置 | |
Yang et al. | Image collection summarization via dictionary learning for sparse representation | |
CN111582443B (zh) | 一种基于Mask机制和层次注意力机制的推荐方法 | |
US20060004753A1 (en) | System and method for document analysis, processing and information extraction | |
CN108334592B (zh) | 一种基于内容与协同过滤相结合的个性化推荐方法 | |
CN109146626B (zh) | 一种基于用户动态兴趣分析的时尚服装搭配推荐方法 | |
CN103150667B (zh) | 一种基于本体结构的个性化推荐方法 | |
CN107291894A (zh) | 一种融合相似性和共同评分项数量的概率矩阵分解模型 | |
CN112380453B (zh) | 物品推荐方法、装置、存储介质及设备 | |
Zheng et al. | Deviation-based contextual SLIM recommenders | |
CN109902823B (zh) | 一种基于生成对抗网络的模型训练方法及设备 | |
Yin et al. | Exploring social activeness and dynamic interest in community-based recommender system | |
CN106952130A (zh) | 基于协同过滤的通用物品推荐方法 | |
CN109684561B (zh) | 基于用户签到行为变化的深层语义分析的兴趣点推荐方法 | |
Yu et al. | Point-of-interest recommendation based on user contextual behavior semantics | |
CN108182264A (zh) | 一种基于跨领域排名推荐模型的排名推荐方法 | |
CN110347916B (zh) | 跨场景的项目推荐方法、装置、电子设备及存储介质 | |
Song et al. | Determining user expertise for improving recommendation performance | |
Utama et al. | Scientific Articles Recommendation System Based On User’s Relatedness Using Item-Based Collaborative Filtering Method | |
CN114298118B (zh) | 一种基于深度学习的数据处理方法、相关设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171024 |