CN106055715B - 一种基于产品项目特征扩充的最近邻协同过滤方法 - Google Patents
一种基于产品项目特征扩充的最近邻协同过滤方法 Download PDFInfo
- Publication number
- CN106055715B CN106055715B CN201610547148.6A CN201610547148A CN106055715B CN 106055715 B CN106055715 B CN 106055715B CN 201610547148 A CN201610547148 A CN 201610547148A CN 106055715 B CN106055715 B CN 106055715B
- Authority
- CN
- China
- Prior art keywords
- product
- item
- scoring
- user
- information user
- 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.)
- Active
Links
Classifications
-
- 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/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0631—Item recommendations
-
- 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
- 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/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0623—Item investigation
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Marketing (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于产品项目特征扩充的最近邻协同过滤方法(IFA),该方法包括如下步骤:1)用二维表表示产品的评分数据;2)基于朴素贝叶斯分类器的贫信息用户项目相似度计算;3)富信息用户项目相似度计算;4)基于贫信息用户的项目相似度与富信息用户的项目相似度融合;5)结合基于项目的协同过滤算法给出未评分产品的评分预测值集合,并取前N项作为最终推荐结果。本发明能有效反映用户评价的真实情况,提高个性化推荐精度。
Description
技术领域
本发明属于电子商务领域,具体地说是一种基于产品项目特征扩充的最近邻协同过滤方法(Item Feature Augmentation,IFA)。
背景技术
电子商务的迅速发展,使得如何有效提高用户购买率成为各大电商企业主要思考的问题,协同过滤技术作为个性化推荐应用最早和最为成功的技术之一,能够很好地基于项目或用户之间的相似性对企业的购买决策提供技术支撑,基于项目最近邻的协同过滤推荐技术因为其可扩展性强和可解释性好成为了基于最近邻协同过滤算法中最流行的算法,在亚马逊购物网站和Netflix电影租赁网站中都得到了实际应用。
项目相似度计算是基于项目最近邻协同过滤算法中最重要的步骤,它决定了协同过滤算法中项目最近邻选择和邻居的评分加权,进而影响算法最终的推荐精度。传统计算两个产品的项目相似度的方法是首先分离出对两个项目都有评分行为的用户评分项,然后对这些用户的评分项利用皮尔逊相似度或者余弦距离等计算方法计算项目相似度,现有研究方法虽然为个性化推荐的构建提供基础理论支撑和实践指导,但是仍然存在诸多问题:
(1)数据稀疏性问题加剧。在实际生活中,消费者购买的产品在整个产品目录中占比很少。因此在对实际的电子商务数据集计算两个产品的项目相似度时会有大量只对一个产品有过评分行为的用户。如表1所示,在计算产品I1和I2的项目相似度时,传统的项目相似度计算方法只利用了U3和U7对这两个产品的评分,而U1,U2,U4,U5,U6的评分信息将被直接忽视,导致大量的评分信息没有得到有效利用,这就会更一步加剧数据稀疏性问题。
表1
(2)相似性计算的不准确。基于皮尔逊相似度公式计算得到的项目相似度会存在下面的情况:那些被较少用户共同评价过的项目对可能有着相对更高的相似度,但是如果两个项目被大量用户评价过,但仅仅有两个用户对他们同时评价,这并不能表明它们之间有着非常高的相似度。这也就导致现有协同过滤算法中对项目之间相似性的计算相似性度量出现误差,降低了推荐系统的精度。
发明内容
本发明为克服现有技术存在的不足之处,提出一种基于产品项目特征扩充的最近邻协同过滤方法,以期能充分利用评分信息来反映用户评价的真实情况,使得计算得到的项目邻居可靠性更高,从而提高个性化推荐的精度。
为了达到上述目的,本发明所采用的技术方案为:
本发明一种基于产品项目特征扩充的最近邻协同过滤方法的特点是按如下步骤进行:
步骤一、用二维表T={U,I,S}表示产品的评分数据;
所述二维表T中,U={U1…,Uu,…,U|u|}表示用户集合,I={I1…,Ii,…,I|i|}表示产品集合,S={S(1)…,S(s),…,S(|s|)}表示用户对产品的评分集合;
所述用户集合U中,|u|为用户的总数目,Uu表示第u个用户;1≤u≤|u|;所述产品集合I中,|i|为产品的总数目,Ii表示第i个产品;1≤i≤|i|;所述评分集合S中,S(s)表示所述评分集合中第s个评分,且S(1)<…<S(s)<…<S(s);
令第u个用户Uu对第i个产品Ii的评分为Su,i,且Su,i∈S;
对任意第i个产品Ii和第j个产品Ij;若第u个用户Uu对所述第i个产品Ii和第j个产品Ij均有评分Su,i和Su,j,则表示第u个用户Uu为富信息用户;第u个用户Uu对第i个产品Ii的评分Su,i和第u个用户Uu对第j个产品Ij的评分Su,j均称为富信息用户评分项;1≤j≤|i|;i≠j;
对任意第i个产品Ii和第j个产品Ij;若第u个用户Uu仅对所述第i个产品Ii有评分Su,i或仅对第j个产品Ij有评分Su,j,则表示第u个用户Uu为贫信息用户;第u个用户Uu对第i个产品Ii的评分Su,i和第u个用户Uu对第j个产品Ij的评分Su,j均称为贫信息用户评分项;并有:
当第u个用户Uu仅对所述第j个产品Ij有评分Su,j时,第u个用户Uu对第i个产品Ii的评分Su,i称为贫信息用户评分项中的缺失值;
令所有产品具有的项目特征集合为G={g1…,gn,…,g|n|},gn表示所有产品的第n个项目特征;令贫信息用户评分项中的缺失值Su,i所代表的第i个产品Ii的项目特征集合为Gi={gi,1…,gi,n,…,gi,|n|};gi,n表示第i个产品Ii在第n个项目特征gn上的特征值;若第i个产品Ii具有第n个项目特征gn,则gi,n=1;否则,gi,n=0;1≤n≤|n|;
步骤二、假设第u个用户Uu为贫信息用户;第u个用户Uu对所述第i个产品Ii的评分Su,i为贫信息用户评分项中的缺失值;计算贫信息用户Uu对所述第i个产品Ii与所述第j个产品Ij的项目相似度simu(Ii,Ij);
步骤2.1、利用式(1)计算获得贫信息用户Uu对所述第i个产品Ii的评分项中的缺失值Su,i为S(s)时的先验概率P(S(s)):
式(1)中,I(u)表示贫信息用户Uu对所述产品集合I中所有已评分的产品集合;item表示所述已评分产品集合I(u)中的任一产品;|I(u)|表示所述已评分产品集合I(u)中的产品数目;Su,item表示贫信息用户Uu对所述已评分产品集合I(u)中产品item的评分;|{item∈I(u)|Su,item=S(s)}|表示贫信息用户Uu在所述已评分产品集合I(u)中评分Su,item为S(s)的产品数目;
步骤2.2、利用式(2)计算获得贫信息用户Uu对所述第i个产品Ii的评分项中的缺失值Su,i为S(s)时的似然函数P(gn|S(s)):
式(2)中,gitem,n表示贫信息用户Uu对所述已评分产品集合I(u)中的产品item在第n个项目特征gn上的特征值;|{item∈I(u),gi,n=1|Su,item=S(s)∩gitem,n=gi,n}|表示贫信息用户Uu对所述已评分的产品集合I(u)中的产品item中评分Su,item为S(s),且贫信息用户Uu对产品item在第n个项目特征gn上的特征值gitem,n与第i个产品Ii在第n个项目特征gn上的特征值gi,n取值均为“1”的项目个数;
步骤2.3、利用式(3)计算获得贫信息用户Uu对所述第i个产品Ii的评分Su,i为S(s)时的概率P(S(s)|Ii):
步骤2.4、重复步骤2.1-步骤2.3,从而获得贫信息用户Uu对第i个产品Ii的缺失值Su,i分别为S(1)…,S(s),…,S(s)时的概率,并将最大概率所对应的评分作为贫信息用户Uu对第i个产品Ii的缺失值Su,i的预测评分;
步骤2.5、重复步骤2.4,预测所有贫信息用户评分项中的缺失值,从而补全所述二维表T中所有贫信息用户的缺失值;
步骤2.6、基于传统皮尔森相关系数,利用式(4)得到贫信息用户Uu对所述第i个产品Ii与所述第j个产品Ij的项目相似度sim′u(Ii,Ij):
式(4)中,Uu∈UIi∩UIj表示在补全所有贫信息用户的缺失值二维表T中,既对所述第i个产品Ii有评分Su,i,又对所述第j个产品Ij有评分Su,j的贫信息用户Uu;表示在补全所有贫信息用户的缺失值二维表T中,所有贫信息用户对第i个产品Ii的平均评分;表示在补全所有贫信息用户的缺失值二维表T中,所有贫信息用户对第j个产品Ij的平均评分;
步骤2.7、基于加权皮尔森相关系数,利用式(5)计算得到贫信息用户Uu对所述第i个产品Ii与所述第j个产品Ij的项目相似度simu(Ii,Ij):
式(5)中,|UIi∩UIj|表示既对所述第i个产品Ii的有评分Su,i,又对所述第j个产品Ij有评分Su,j的贫信息用户数目,λ是待调节参数;
步骤三、假设第v个用户Uv即为富信息用户;计算富信息用户Uv对所述第i个产品Ii与所述第j个产品Ij的项目相似度simv(Ii,Ij);1≤v≤|u|;v≠u;
步骤3.1,基于传统皮尔森相关系数,利用式(6)得到富信息用户Uv对所述第i个产品Ii与所述第j个产品Ij的项目相似度sim′v(Ii,Ij):
式(6)中,Uv∈UIi∩UIj表示既对所述第i个产品Ii的有评分Sv,i,又对所述第j个产品Ij有评分Sv,j的富信息用户Uv;表示所有富信息用户对第i个产品Ii的平均评分;表示所有富信息用户对第j个产品Ij的平均评分;
步骤3.2、基于加权皮尔森相关系数,利用式(7)计算得到富信息用户Uv对所述第i个产品Ii与所述第j个产品Ij的项目相似度simv(Ii,Ij):
式(7)中,|UIi∩UIj|′表示既对所述第i个产品Ii的有评分Sv,i,,又对所述第j个产品Ij有评分Sv,j,的富信息用户数目,λ′是另一个待调节参数;
步骤四、利用式(8)进行基于贫信息用户Uu对所述第i个产品Ii与所述第j个产品Ij的项目相似度simu(Ii,Ij),与富信息用户Uv对所述第i个产品Ii与所述第j个产品Ij的项目相似度simv(Ii,Ij)的项目相似度融合;得到融合相似度sim(Ii,Ij):
sim(Ii,Ij)=(1-γ)×simu(Ii,Ij)+γ×simv(Ii,Ij) (8)
式(8)中,γ是待调节参数;
步骤五、根据所述融合相似度sim(Ii,Ij),利用基于项目的最近邻协同过滤算法,获得未评分产品的所有最终预测评分的降序排序集合;选取所述预测评分的降序排序集合的前N项作为推荐结果,并推荐给所述贫信息用户Uu。
与已有技术相比,本发明的有益效果体现在:
1、本发明对协同过滤方法中项目最近邻的计算,在已有传统协同过方法中仅对两个项目均有评分项的富信息用户评分项近似性计算上,新加入对两个项目中只有一个评分的贫信息用户项的相似性计算,所提方法考虑到所有用户的已有评分,因此该方法计算得到的项目最近邻可靠性更高,有效克服了数据稀疏性这一问题,为已有信息的充分利用提供了解决思路,其推荐精度明显优于基于Pearson,WeightedPearson,Cosine Norm,概率矩阵分解(PMF)相似度的项目最近邻协同过滤方法。
2、本发明中使用基于多元伯努利模型的朴素贝叶斯分类器,对两个产品中仅有一个项目评分的贫信息用户评分缺失值进行评分概率预测,已有评论信息对贝叶斯分类器相关参数的学习以及对信息用户评分项的缺失值的预测提供了可靠真实的支持,且选取概率最高评分为缺失值的预测值,能够真实有效反映消费者整体对产品评分现实情况,提高了个性化推荐的精度。
3、本发明中对贫信息用户与富信息用户均使用McLanughlin提出的加权皮尔森相关系数来计算项目相似度,贫信息用户评分项与富信息用户项的相似度具有统一的测量尺度,保证了后续步骤中两类用户项相似度融合的可操作性,确保了项目最近邻计算的稳定性与可靠性。
4、本发明中在进行基于富信息用户评分项的相似度和基于贫信息用户的项目相似度进行融合时,引入调节参数对二者进行线性融合,其中通过交叉验证方法对调节参数进行寻优,使得推荐精度效果得以显著提高,克服了现有技术中仅基于对二者均有评分的富用户信息推荐技术的缺点。
5、本发明可用于手机和书籍等实体产品,音乐和电影等数字产品,旅游计划和度假行程等服务产品的个性化推荐系统,可以在网页和APP等平台同时使用,以期提高商家和消费者的双向经济效益及整体满意度。
附图说明
图1为本发明的流程示意图;
图2为本发明富信息用户评分项与贫信息用户说明图;
图3为本发明训练集和测试集比例0.3,参数λ对算法的影响分析实验结果;
图4为本发明训练集和测试集比例0.5,参数λ对算法的影响分析实验结果;
图5为本发明训练集和测试集比例0.7,参数λ对算法的影响分析实验结果;
图6为本发明训练集和测试集比例0.9,参数λ对算法的影响分析实验结果;
图7为本发明训练集和测试集比例0.3,参数γ对算法的影响分析实验结果;
图8为本发明训练集和测试集比例0.5,参数γ对算法的影响分析实验结果;
图9为本发明训练集和测试集比例0.7,参数γ对算法的影响分析实验结果;
图10为本发明训练集和测试集比例0.9,参数γ对算法的影响分析实验结果。
具体实施方式
如图1所示,一种基于产品项目特征扩充的最近邻协同过滤方法(Item FeatureAugmentation,IFA),是按如下步骤进行:
步骤一、用二维表T={U,I,S}表示产品的评分数据;
所述二维表T中,U={U1…,Uu,…,Uu}表示用户集合,I={I1…,Ii,…,I|i|}表示产品集合,S={S(1)…,S(s),…,S(|s|)}表示用户对产品的评分集合;
所述用户集合U中,|u|为用户的总数目,Uu表示第u个用户;1≤u≤|u|;所述产品集合I中,|i|为产品的总数目,Ii表示第i个产品;1≤i≤|i|;所述评分集合S中,S(s)表示所述评分集合中第s个评分,且S(1)<…<S(s)<…<S(|s|);
令第u个用户Uu对第i个产品Ii的评分为Su,i,且Su,i∈S;
如图2所示,对任意第i个产品Ii和第j个产品Ij;若第u个用户Uu对所述第i个产品Ii和第j个产品Ij均有评分Su,i和Su,j,则表示第u个用户Uu为富信息用户;第u个用户Uu对第i个产品Ii的评分Su,i和第u个用户Uu对第j个产品Ij的评分Su,j均称为富信息用户评分项;1≤j≤|i|;i≠j;
如图2所示,对任意第i个产品Ii和第j个产品Ij;若第u个用户Uu仅对所述第i个产品Ii有评分Su,i或仅对第j个产品Ij有评分Su,j,则表示第u个用户Uu为贫信息用户;第u个用户Uu对第i个产品Ii的评分Su,i和第u个用户Uu对第j个产品Ij的评分Su,j均称为贫信息用户评分项;并有:
当第u个用户Uu仅对所述第j个产品Ij有评分Su,j时,第u个用户Uu对第i个产品Ii的评分Su,i称为贫信息用户评分项中的缺失值;
令所有产品具有的项目特征集合为G={g1…,gn,…,g|n|},对于本文后续实验中使用的电影产品中数据,其项目特征集合即为电影的流派集合,gn表示所有产品的第n个项目特征;令贫信息用户评分项中的缺失值Su,i所代表的第i个产品Ii的项目特征集合为Gi={gi,1…,gi,n,…,gi,|n|};gi,n表示第i个产品Ii在第n个项目特征gn上的特征值;若第i个产品Ii具有第n个项目特征gn,则gi,n=1;否则,gi,n=0;1≤n≤|n|;如表2所示:
表2
步骤二、对任意第i个产品Ii和第j个产品Ij;当第u个用户Uu仅对所述第j个产品Ij有评分Su,j时,第u个用户Uu即为贫信息用户;第u个用户Uu对所述第i个产品Ii的评分Su,i为贫信息用户评分项中的缺失值;计算贫信息用户Uu对所述第i个产品Ii与所述第j个产品Ij的项目相似度simu(Ii,Ij);
在进行相似度sim1(Ii,Ij)计算之前,要对缺失值Su,i进行预测,本发明中首先基于贫信息用户的历史评分记录和产品的项目特征信息进行朴素贝叶斯分类器的训练;然后基于该分类器对贫信息用户评分项中的缺失值Su,i进行预测。由于后续实验中所使用的电影产品的项目特征数据均为电影的流派数据,不存在出现次数问题,故而使用基于多元伯努利模型的朴素贝叶斯分类器。
步骤2.1、利用式(1)计算获得贫信息用户Uu对所述第i个产品Ii的评分项中的缺失值Su,i为S(s)时的先验概率P(S(s)):
式(1)中,I(u)表示贫信息用户Uu对所述产品集合I中所有已评分的产品集合;item表示所述已评分产品集合I(u)中的任一产品;|I(u)|表示所述已评分产品集合I(u)中的产品数目;Su,item表示贫信息用户Uu对所述已评分产品集合I(u)中产品item的评分;
|{item∈I(u)|Su,item=S(s)}|表示贫信息用户Uu在所述已评分产品集合I(u)中评分Su,item为S(s)的产品数目;
步骤2.2、利用式(2)计算获得贫信息用户Uu对所述第i个产品Ii的评分项中的缺失值Su,i为S(s)时的似然函数P(gn|S(s)):
式(2)中,gitem,n表示贫信息用户Uu对所述已评分产品集合I(u)中的产品item在第n个项目特征gn上的特征值;|{item∈I(u),gi,n=1|Su,item=S(s)∩gitem,n=gi,n}|表示贫信息用户Uu对所述已评分的产品集合I(u)中的产品item中评分Su,item为S(s),且贫信息用户Uu对产品item在第n个项目特征gn上的特征值gitem,n与第i个产品Ii在第n个项目特征gn上的特征值gi,n取值均为“1”的项目个数;
步骤2.3、利用式(3)计算获得贫信息用户Uu对所述第i个产品Ii的评分Su,i为S(s)时的概率P(S(s)|Ii):
为防止参数概率为0的情况,本发明对上述参数均使用拉普拉斯平滑方法。
步骤2.4、重复步骤2.1-步骤2.3,从而获得贫信息用户Uu对第i个产品Ii的缺失值Su,i分别为S(1)…,S(s),…,S(s)时的概率,并将最大概率所对应的评分作为贫信息用户Uu对第i个产品Ii的缺失值Su,i的预测评分;
步骤2.5、重复步骤2.4,预测所有贫信息用户评分项中的缺失值,从而补全所述二维表T中所有贫信息用户的缺失值;
步骤2.6、基于传统皮尔森相关系数,利用式(4)得到贫信息用户Uu对所述第i个产品Ii与所述第j个产品Ij的项目相似度sim′u(Ii,Ij):
式(4)中,Uu∈UIi∩UIj表示在补全所有贫信息用户的缺失值二维表T中,既对所述第i个产品Ii有评分Su,i,又对所述第j个产品Ij有评分Su,j的贫信息用户Uu;表示在补全所有贫信息用户的缺失值二维表T中,所有贫信息用户对第i个产品Ii的平均评分;表示在补全所有贫信息用户的缺失值二维表T中,所有贫信息用户对第j个产品Ij的平均评分;
步骤2.7、基于加权皮尔森相关系数,利用式(5)计算得到贫信息用户Uu对所述第i个产品Ii与所述第j个产品Ij的项目相似度simu(Ii,Ij):
式(5)中,表示既对所述第i个产品Ii的有评分Su,i,又对所述第j个产品Ij有评分Su,j的贫信息用户数目,λ是待调节参数,λ的具体取值由交叉验证实验确定;
步骤三、对任意第i个产品Ii和第j个产品Ij;当第v个用户Uv对第i个产品Ii和第j个产品Ij均有评分Sv,i和Sv,j,则第v个用户Uv即为富信息用户;计算富信息用户Uv对第i个产品Ii与第j个产品Ij的项目相似度simv(Ii,Ij);1≤v≤|u|;v≠u;
步骤3.1,基于传统皮尔森相关系数,利用式(6)得到富信息用户Uv对第i个产品Ii与第j个产品Ij的项目相似度sim′v(Ii,Ij):
式(6)中,表示所有富信息用户对第i个产品Ii的平均评分;表示所有富信息用户对第j个产品Ij的平均评分;Uv∈UIi∩UIj表示既对第i个产品Ii的有评分Sv,i,又对第j个产品Ij有评分Sv,j的富信息用户Uv;
步骤3.2、基于加权皮尔森相关系数,利用式(7)计算得到富信息用户Uv对第i个产品Ii与第j个产品Ij的项目相似度simv(Ii,Ij):
式(7)中,表示既对第i个产品Ii的有评分Sv,i,又对第j个产品Ij有评分Sv,j的富信息用户数目,λ′是另一个待调节参数,λ′的具体取值由交叉验证实验确定;
步骤四、利用式(8)进行基于贫信息用户Uu对第i个产品Ii与第j个产品Ij的项目相似度simu(Ii,Ij),与富信息用户Uv对第i个产品Ii与第j个产品Ij的项目相似度simv(Ii,Ij)的项目相似度融合;得到融合相似度sim(Ii,Ij):
sim(Ii,Ij)=(1-γ)×simu(Ii,Ij)+γ×simv(Ii,Ij) (8)
式(8)中,γ是待调节参数,γ的具体取值由交叉验证实验确定;
步骤五、根据所述融合相似度sim(Ii,Ij),利用基于项目的最近邻协同过滤算法——式(9),获得未评分产品的所有最终预测评分的降序排序集合;选取所述预测评分的降序排序集合的前N项作为推荐结果,并推荐给所述贫信息用户Uu。
步骤5.1、当用户Uu对所述第i个产品Ii未真实产生评分Su,i时,利用式(9)计算得到用户Uu对所述第i个产品Ii的最终预测评分值
式(9)中,表示除第i个产品Ii外产品集合I内的其他所有产品;表示用户对第i个产品Ii真实产生评分的所有评分的平均评分,即第i个产品Ii的平均评分的计算不包括步骤二中通过朴素贝叶斯分类器获得的预测评分。
步骤5.2、重复步骤5.1,计算获得用户Uu对所有未真实产生评分的最终预测评分并进行降序排列,获得未评分产品预测评分值的排序集合;
步骤5.3、选取所述未评分项排序集合的前N项作为推荐结果推荐给所述用户Uu。
针对本发明方法进行实验论证,具体包括:
1)准备标准数据集
本发明使用GroupLens的MovieLens100k数据集。这个数据集包括943个用户对1682部电影的100000条评分记录。每个用户评价过至少20部电影。此外,这个数据集包含每个电影的流派信息,电影库中的所有电影共涉及到18种流派,每种流派下的电影个数如表3所示,每个电影至少涉及到一种流派信息。
表3
2)评价指标
采用均方根误差(RMSE)作为本实施例的评价指标,式(10)。将具有最优效果的IFA算法与其它基准算法进行比较,均方根误差RMSE通过计算测试集中实际的用户评分与对应项的最终预测值之间的偏差度量预测的准确性,RMSE越小,推荐质量越高:
式(10)中,Su,i为测试集ITest中用户Uu对第i个产品Ii的实际评分,为算法计算得到的用户Uu对第i个产品Ii的预测评分,|ITest|为测试集中评分记录个数。
3)IFA算法的参数选择
IFA算法有两个参数控制着算法的结果,分别是利用加权皮尔逊相关系数计算富信息用户与贫信息用户的项目相似度时的加权因子λ,基于富信息用户与贫信息用户的项目相似度贡献权重γ。本发明中先确定使得WeightedPearson算法取得最优预测精度的λ,然后用确定的λ来调节最优的γ。
3.1)加权因子λ:
参数λ对WeightedPearson的影响如图3~图6所示,由于篇幅限制这里本发明中只列出了训练集和测试集比例为0.3,0.5,0.7和0.9,不同的测试集ITest的产品项目集规格Neighbor Size下,即测试集中的评分记录数目不同时,参数λ对算法的影响分析实验结果。发现对于所有稀疏度等级的数据集,使得WeightedPearson算法获得最优评分预测精度的λ维持在
140-200之间。这证实了较少的富信息用户数目不一定意味着项目对有着较高的相似度。在后续确定最优γ的试验中,本发明将各个稀疏度数据集的λ分别设为180,180,190,140。
3.2)相似度贡献权重γ:
在确定使得WeightedPearson算法取得最优预测精度的λ后,本发明分别展示了γ从0到1变化时算法的预测精度的变化,如图7~图10所示。由公式(8)知,当γ取1时,IFA算法转变为WeightedPearson算法:当训练集和测试集比例为0.3时,我们发现IFA算法在γ取0-0.9之间的任意数,算法效果都优于γ取1时的效果,这充分说明了利用朴素贝叶斯分类器预测贫信息用户评分项的贫信息用户评分项中的缺失值的有效性;当训练集和测试集比例为0.5,0.7和0.9时算法γ取0.8-0.9之间的任意数算法IFA算法效果都要优于WeightedPearson算法,这表明了融合贫信息用户评分项可以提升评分预测精度。此外对所有稀疏度等级的数据集,γ在0.9-0.95时算法取得最优,这也说明虽然贫信息用户评分项有助于提升推荐准确性,但是用户的实际评分项还是为用户邻居选择贡献最大。
4)在标准数据集上进行实验
表4为各个算法在不同训练/测试集比例的数据集上的RMSE值。每种数据集中最好的算法用粗体表示。本发明表4列出了所提的IFA算法在各种比例下相对于其它算法的提升,并对提升求取均值。我们发现在7种不同稀疏度条件的数据集下,所提IFA算法在5种较为稀疏的数据集下均优于其它所有算法,只在在1个较为密集的数据集下IFA算法略逊于Cosine Norm算法,在ratio为0.8时IFA算法和CosineNorm算法表现相当。
与Pearson算法相比,IFA算法在所有稀疏条件下的效果都优于Pearson算法,平均提升精度为3.0%。此外,我们发现Pearson算法在所有稀疏度条件的数据集下的推荐精度都逊于所有其它算法。这表明考虑贫信息用户的评分项有助于提升推荐的预测精度。
表4
与基于Weighted Pearson的算法相比,IFA算法在所有稀疏度条件下都优于Weighted Pearson算法,精度平均提升为0.8%。特别是当训练集和测试集比例为30%和40%时,此时训练集中的评分数据极度稀疏,IFA算法相对于Weighted Pearson算法的提升分别为1.5%和1.2%,这说明利用项目项目特征对贫信息用户评分项的贫信息用户评分项中的缺失值进行预测有助于缓解数据集的稀疏性问题。另外我们发现Weighted Pearson在所有稀疏度条件下的效果都优于Pearson算法,这说明惩罚贫信息用户过多的项目对的相似度有助于提升基于项目最近邻协同过滤算法的评分预测精度。
与基于Cosine Norm相似度的项目最近邻协同过滤算法相比,所提算法在训练集和测试集比例为30%-70%时均优于Cosine Norm算法,当训练集和测试集比例为90%时,Cosine Norm算法略逊于所提IFA算法。总体来说,Cosine Norm是对数据集稀疏度依赖非常高的算法,当数据集较为密集时,算法效果非常好,但是当数据集极度稀疏时,该算法几乎是最差的算法。
与基于概率矩阵分解(PMF)的算法相比,所提算法在所有数据集上均优于PMF算法,不过值得一提的是,PMF算法在最为稀疏的一个数据集中的表现仅次于所提IFA算法。
Claims (1)
1.一种基于产品项目特征扩充的最近邻协同过滤方法,其特征是按如下步骤进行:
步骤一、用二维表T={U,I,S}表示产品的评分数据;
所述二维表T中,U={U1…,Uu,…,U|u|}表示用户集合,I={I1…,Ii,…,I|i|}表示产品集合,S={S(1)…,S(s),…,S(|s|)}表示用户对产品的评分集合;
所述用户集合U中,|u|为用户的总数目,Uu表示第u个用户;1≤u≤|u|;所述产品集合I中,|i|为产品的总数目,Ii表示第i个产品;1≤i≤|i|;所述评分集合S中,S(s)表示所述评分集合中第s个评分,且S(1)<…<S(s)<…<S(|s|);
令第u个用户Uu对第i个产品Ii的评分为Su,i,且Su,i∈S;
对任意第i个产品Ii和第j个产品Ij;若第u个用户Uu对所述第i个产品Ii和第j个产品Ij均有评分Su,i和Su,j,则表示第u个用户Uu为富信息用户;第u个用户Uu对第i个产品Ii的评分Su,i和第u个用户Uu对第j个产品Ij的评分Su,j均称为富信息用户评分项;1≤j≤|i|;i≠j;
对任意第i个产品Ii和第j个产品Ij;若第u个用户Uu仅对所述第i个产品Ii有评分Su,i或仅对第j个产品Ij有评分Su,j,则表示第u个用户Uu为贫信息用户;第u个用户Uu对第i个产品Ii的评分Su,i和第u个用户Uu对第j个产品Ij的评分Su,j均称为贫信息用户评分项;并有:
当第u个用户Uu仅对所述第j个产品Ij有评分Su,j时,第u个用户Uu对第i个产品Ii的评分Su,i称为贫信息用户评分项中的缺失值;
令所有产品具有的项目特征集合为G={g1…,gn,…,g|n|},gn表示所有产品的第n个项目特征;令贫信息用户评分项中的缺失值Su,i所代表的第i个产品Ii的项目特征集合为Gi={gi,1…,gi,n,…,gi,|n|};gi,n表示第i个产品Ii在第n个项目特征gn上的特征值;若第i个产品Ii具有第n个项目特征gn,则gi,n=1;否则,gi,n=0;1≤n≤|n|;
步骤二、假设第u个用户Uu为贫信息用户;第u个用户Uu对所述第i个产品Ii的评分Su,i为贫信息用户评分项中的缺失值;计算贫信息用户Uu对所述第i个产品Ii与所述第j个产品 Ij的项目相似度simu(Ii,Ij);
步骤2.1、利用式(1)计算获得贫信息用户Uu对所述第i个产品Ii的评分项中的缺失值Su,i为S(s)时的先验概率P(S(s)):
式(1)中,I(u)表示贫信息用户Uu对所述产品集合I中所有已评分的产品集合;item表示所述已评分产品集合I(u)中的任一产品;|I(u)|表示所述已评分产品集合I(u)中的产品数目;Su,item表示贫信息用户Uu对所述已评分产品集合I(u)中产品item的评分;
|{item∈I(u)|Su,item=S(s)}|表示贫信息用户Uu在所述已评分产品集合I(u)中评分Su,item为S(s)的产品数目;
步骤2.2、利用式(2)计算获得贫信息用户Uu对所述第i个产品Ii的评分项中的缺失值Su,i为S(s)时的似然函数P(gn|S(s)):
式(2)中,gitem,n表示贫信息用户Uu对所述已评分产品集合I(u)中的产品item在第n个项目特征gn上的特征值;|{item∈I(u),gi,n=1|Su,item=S(s)∩gitem,n=gi,n}|表示贫信息用户Uu对所述已评分的产品集合I(u)中的产品item中评分Su,item为S(s),且贫信息用户Uu对产品item在第n个项目特征gn上的特征值gitem,n与第i个产品Ii在第n个项目特征gn上的特征值gi,n取值均为“1”的项目个数;
步骤2.3、利用式(3)计算获得贫信息用户Uu对所述第i个产品Ii的评分Su,i为S(s)时的概率P(S(s)|Ii):
步骤2.4、重复步骤2.1-步骤2.3,从而获得贫信息用户Uu对第i个产品Ii的缺失值Su,i分别为S(1)…,S(s),…, S(|s|)时的概率,并将最大概率所对应的评分作为贫信息用户Uu对第i个产品 Ii的缺失值Su,i的预测评分;
步骤2.5、重复步骤2.4,预测所有贫信息用户评分项中的缺失值,从而补全所述二维表T中所有贫信息用户的缺失值;
步骤2.6、基于传统皮尔森相关系数,利用式(4)得到贫信息用户Uu对所述第i个产品Ii与所述第j个产品Ij的项目相似度sim′u(Ii,Ij):
式(4)中,表示在补全所有贫信息用户的缺失值二维表T中,既对所述第i个产品Ii有评分Su,i,又对所述第j个产品Ij有评分Su,j的贫信息用户Uu;表示在补全所有贫信息用户的缺失值二维表T中,所有贫信息用户对第i个产品Ii的平均评分;表示在补全所有贫信息用户的缺失值二维表T中,所有贫信息用户对第j个产品Ij的平均评分;
步骤2.7、基于加权皮尔森相关系数,利用式(5)计算得到贫信息用户Uu对所述第i个产品Ii与所述第j个产品Ij的项目相似度simu(Ii,Ij):
式(5)中,表示既对所述第i个产品Ii的有评分Su,i,又对所述第j个产品Ij有评分Su,j的贫信息用户数目,λ是待调节参数;
步骤三、假设第v个用户Uv即为富信息用户;计算富信息用户Uv对所述第i个产品Ii与所述第j个产品Ij的项目相似度simv(Ii,Ij);1≤v≤|u|;v≠u;
步骤3.1,基于传统皮尔森相关系数,利用式(6)得到富信息用户Uv对所述第i个产品Ii与所述第j个产品Ij的项目相似度sim′v(Ii,Ij):
式(6)中,表示既对所述第i个产品Ii的有评分Sv,i,又对所述第j个产品Ij有评分Sv,j的富信息用户Uv;表示所有富信息用户对第i个产品Ii的平均评分;表示所有富信息用户对第j个产品Ij的平均评分;
步骤3.2、基于加权皮尔森相关系数,利用式(7)计算得到富信息用户Uv对所述第i个产品Ii与所述第j个产品Ij的项目相似度simv(Ii,Ij):
式(7)中,表示既对所述第i个产品Ii的有评分Sv,i,又对所述第j个产品Ij有评分Sv,j的富信息用户数目,λ′是另一个待调节参数;
步骤四、利用式(8)进行基于贫信息用户Uu对所述第i个产品Ii与所述第j个产品Ij的项目相似度simu(Ii,Ij),与富信息用户Uv对所述第i个产品Ii与所述第j个产品Ij的项目相似度simv(Ii,Ij)的项目相似度融合;得到融合相似度sim(Ii,Ij):
sim(Ii,Ij)=(1-γ)×simu(Ii,Ij)+γ×simv(Ii,Ij) (8)
式(8)中,γ是待调节参数;
步骤五、根据所述融合相似度sim(Ii,Ij),利用基于项目的最近邻协同过滤算法,获得未评分产品的所有最终预测评分的降序排序集合;选取所述预测评分的降序排序集合的前N项作为推荐结果,并推荐给所述贫信息用户Uu。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610547148.6A CN106055715B (zh) | 2016-07-12 | 2016-07-12 | 一种基于产品项目特征扩充的最近邻协同过滤方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610547148.6A CN106055715B (zh) | 2016-07-12 | 2016-07-12 | 一种基于产品项目特征扩充的最近邻协同过滤方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106055715A CN106055715A (zh) | 2016-10-26 |
CN106055715B true CN106055715B (zh) | 2018-03-09 |
Family
ID=57186087
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610547148.6A Active CN106055715B (zh) | 2016-07-12 | 2016-07-12 | 一种基于产品项目特征扩充的最近邻协同过滤方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106055715B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108510373A (zh) * | 2018-04-12 | 2018-09-07 | 京东方科技集团股份有限公司 | 画作推荐方法、画作推荐装置、设备及存储介质 |
CN112396547B (zh) * | 2021-01-21 | 2021-04-20 | 平安科技(深圳)有限公司 | 基于无监督学习的课程推荐方法、装置、设备及介质 |
CN112925980B (zh) * | 2021-03-11 | 2022-08-19 | 合肥工业大学 | 一种基于文本和图像的用户个性化偏好挖掘方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104899321A (zh) * | 2015-06-19 | 2015-09-09 | 中国石油大学(华东) | 一种基于项目属性评分均值的协同过滤推荐方法 |
-
2016
- 2016-07-12 CN CN201610547148.6A patent/CN106055715B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN106055715A (zh) | 2016-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103632290B (zh) | 一种基于推荐概率融合的混合推荐方法 | |
CN104063481A (zh) | 一种基于用户实时兴趣向量的电影个性化推荐方法 | |
CN109740064A (zh) | 一种融合矩阵分解和挖掘用户项目信息的cf推荐方法 | |
CN106651519A (zh) | 基于标签信息的个性化推荐方法和系统 | |
CN103136683A (zh) | 计算产品参考价格的方法、装置及产品搜索方法、系统 | |
CN103559622A (zh) | 基于特征的协同过滤推荐方法 | |
CN105678590B (zh) | 一种面向社交网络基于云模型的topN推荐方法 | |
CN108198045A (zh) | 基于电子商务网站数据挖掘的混合推荐系统的设计方法 | |
CN106610970A (zh) | 基于协同过滤的内容推荐系统与方法 | |
CN106055715B (zh) | 一种基于产品项目特征扩充的最近邻协同过滤方法 | |
CN104166732B (zh) | 一种基于全局评分信息的项目协同过滤推荐方法 | |
CN106980646A (zh) | 基于流行度对用户兴趣的影响机制分析及其在推荐算法中应用的方法 | |
CN112100512A (zh) | 一种基于用户聚类和项目关联分析的协同过滤推荐方法 | |
CN104298787A (zh) | 一种基于融合策略的个性化推荐方法及装置 | |
CN103530416A (zh) | 项目数据预测评分库的生成、项目数据的推送方法和系统 | |
CN106919699A (zh) | 一种面向大规模用户的个性化信息推荐方法 | |
CN106846029B (zh) | 基于遗传算法和新型相似度计算策略的协同过滤推荐算法 | |
CN108109058A (zh) | 一种融合人格特质和物品标签的单分类协同过滤方法 | |
CN107133811A (zh) | 一种目标用户的识别方法和装置 | |
CN110059257B (zh) | 基于评分修正的项目推荐方法 | |
Devika et al. | Book recommendation system | |
CN107291894A (zh) | 一种融合相似性和共同评分项数量的概率矩阵分解模型 | |
CN104462597B (zh) | 一种综合用户正负性评分和评分偏好因子的协同过滤方法 | |
Fareed et al. | A collaborative filtering recommendation framework utilizing social networks | |
CN106204153A (zh) | 一种基于属性比重相似性的两步预测Top‑N推荐算法 |
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 |