CN105354260B - 一种融合社会网络和项目特征的移动应用推荐方法 - Google Patents

一种融合社会网络和项目特征的移动应用推荐方法 Download PDF

Info

Publication number
CN105354260B
CN105354260B CN201510695180.4A CN201510695180A CN105354260B CN 105354260 B CN105354260 B CN 105354260B CN 201510695180 A CN201510695180 A CN 201510695180A CN 105354260 B CN105354260 B CN 105354260B
Authority
CN
China
Prior art keywords
mrow
msub
mobile solution
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.)
Active
Application number
CN201510695180.4A
Other languages
English (en)
Other versions
CN105354260A (zh
Inventor
邝砾
于美琪
呙斌
曹高峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Central South University
Original Assignee
Central South University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Central South University filed Critical Central South University
Priority to CN201510695180.4A priority Critical patent/CN105354260B/zh
Publication of CN105354260A publication Critical patent/CN105354260A/zh
Application granted granted Critical
Publication of CN105354260B publication Critical patent/CN105354260B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search 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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种融合社会网络和项目特征的移动应用推荐方法,首先使用基于本体的语义相似度方法计算移动应用项目之间的相似度,然后通过K‑means方法将相似项目进行聚类,进而利用用户在相似项目上的评分改进用户相似度的计算方法,改变了传统的基于用户的协同过滤推荐算法中利用用户在相同项目上的评分来计算用户相似度。为了充分利用社会网络中的用户信任关系,将项目相似特征和用户信任关系融合到评分预测公式中,有效地提高了预测的准确度。实验结果表明:将基于K‑means应用项目聚类的用户相似度计算与用户信任关系融合起来,能够提高移动应用推荐的准确度。本发明提高了移动应用推荐的准确性,对其它对象的推荐也具有适应性。

Description

一种融合社会网络和项目特征的移动应用推荐方法
技术领域
本发明涉及的移动应用推荐领域,特别是一种融合社会网络和项目特征的移动应用推荐方法。
背景技术
近年来,移动应用的发展十分迅猛。然而,移动应用行业长期以来存在的长尾问题却不容忽略,一些需求和下载量不高的应用所占据的共同市场份额可以和主流应用的市场相当,甚至更大。同时,移动应用市场存在显式反馈少、评分数据可信度较低的问题,国内应用市场推荐大多只考虑了评分和下载量两个因素,学术界则集中于研究基于社交关系的应用推荐,但这些实际应用和研究的推荐效果还有很大的提升空间,因此,移动应用领域推荐系统的研究势在必行。
推荐算法作为推荐系统的核心内容,对推荐结果的准确性有着直接影响。协同过滤算法是推荐系统中广泛应用的算法之一,主要分为基于用户的协同过滤算法和基于物品的协同过滤算法两大类。基于用户的协同过滤算法主要思想是利用已经掌握的用户群过去的行为和操作来推测当前用户的兴趣点。简单来说,就是通过分析用户共同评分项目来计算两个用户之间的相似度,从而为相似用户提供可能感兴趣的推荐。传统协同过滤算法通常使用余弦公式或Pearson公式来计算用户相似度。然而,协同过滤算法普遍存在数据稀疏性问题,当评分数据稀疏时,用户共同评分项目就会很少,甚至没有。显然,在这种情况下判断两个用户是否相似的计算方法并不准确。如表1所示,用户u1对“愤怒的小鸟Ⅰ”和“斗地主”进行了评分,用户u2对“愤怒的小鸟Ⅱ”和“升级”进行了评分。按照余弦和Pearson方法,两个用户之间没有共同评分项目,相似度为零。然而,“愤怒的小鸟Ⅰ”和“愤怒的小鸟Ⅱ”是同一游戏的不同版本,相似度极高。“斗地主”和“升级”都属于棋牌类游戏,也有一定的相似度。判断两个用户相似度为零显然是不合理的。
表1用户-应用评分矩阵示例
目前国内主流的移动应用市场主要包括腾讯应用宝、360手机助手、豌豆荚、小米应用市场等,其推荐策略如下:一,分类排行榜热门应用推荐;二,应用开发者其他热门应用推荐;三,与已下载应用有关联关系的系列应用推荐。此外,国外的一些移动应用推荐服务如AppHero等,还能根据用户的历史活动数据和社交数据进行应用推荐。总的来说,当前推荐所考虑的因素主要是用户评分和应用下载量。由于移动应用相关信息具有多样性、异构性、动态性等特点,并且面临着数据稀疏、用户欺诈等问题,导致推荐结果不够准确、不够全面、且相似和单一,严重影响了移动应用推荐的质量。
传统的协同过滤技术需要用户提供显示的评分才能产生推荐结果,给使用者增加了负担。有研究者提出利用数据挖掘技术来隐式获取用户的评分,常用技术有:基于关联规则挖掘的推荐、基于知识的推荐、基于贝叶斯分类和决策树技术等。对于评分数据的高度稀疏问题,可以利用奇异值分解技术来减少项目空间的维数,从而改善用户评分数据的稀疏性。
随着QQ、微信、微博等社交平台的广泛应用,研究学者对在线社会网络中丰富的社会关系类型、隐含的大量社会关系信息、社会关系信息与推荐系统的融合等进行了大量的研究。目前比较流行的是基于用户聚类的推荐算法,该方法在稀疏数据和冷启动的情况下具有更好的推荐效果;此外,Irwin King、Qiang Yang、Enhong Chen等在用户相似度、用户信任度和用户影响力的协同过滤推荐算法方面也进行了较为深入的研究;后来,为进一步提高推荐的准确性,Jon Kleinberg、Jie Tang等又提出了通过多重异构社会网络进行推荐的算法。但是,融合社会关系的推荐系统一般都聚焦于社会网络本身,如好友推荐、社会推荐等,如何针对移动应用推荐的特征,将社会关系与移动应用推荐相结合,仍有待进一步研究。
本发明基本定义如下:
定义1(移动应用集合)A={a1,...am}为移动应用集合,其中ai|1≤i≤m为项目名称。
定义2(用户集合)U={u1,...un}为用户集合,其中ui|1≤i≤n为用户ID。
定义3(用户-应用评分矩阵)R={ru,a|u∈U,a∈A}为用户-应用评分矩阵,其中ru,a表示用户u对应用a的评分,评分值为1~5的整数。
定义4(应用相似度矩阵)为应用相似度矩阵,其中表示应用ai与应用aj之间的相似程度,0表示完全不相似,1表示完全相同,值越大用户之间的相似度越高。
定义5(用户相似度矩阵)为用户相似度矩阵,其中表示用户ui与uj的相似度,0表示完全不相似,1表示完全相同,值越大用户之间的相似度越高。
注意,“项目”(item)是协同过滤推荐算法中的概念,用于表示待推荐的物品或对象,在本发明中,主要针对的推荐对象为移动应用,因此在后文中,“(移动)应用”和“项目”为等价互用的概念。
发明内容
本发明所要解决的技术问题是,针对现有技术不足,提供一种融合社会网络和项目特征的移动应用推荐方法。
为解决上述技术问题,本发明所采用的技术方案是:一种融合社会网络和项目特征的移动应用推荐方法,其特征在于,包括以下步骤:
1)从表征移动应用项目的节点集合中随机取出k个节点作为观测点;
2)利用如下所示的项目相似度计算公式,计算项目与每个观测点之间的相似度:
ItemSim(A,B)∈[0,1],如果项目与观测点完全相同,则相似度ItemSim(A,B)为1;如果项目与观测点没有任何的共同特征,那么相似度ItemSim(A,B)为0;其中,distant(A,B)表示A与B之间的语义距离,ε为调节因子,取值为1,用于防止distant(A,B)值为0;depth(A)表示项目A所在节点的深度;depth(B)表示项目B所在节点的深度;density(A,B)表示A与B最近的共同祖先的子节点密度;α、β、γ取值范围均为[0,1],且α+β+γ=1;
3)根据经上述步骤2)计算得到某节点与k个观测点之间的相似度,将该节点划归到相似度最高的观测点为中心的簇中;同理对所有节点进行划归,形成k个簇;
4)将每个簇中到簇中其它点距离和最小的点作为新的观测点;
5)迭代步骤2)~步骤4),直到这k个观测点收敛,得到最终的簇;
6)计算目标用户u与其它用户在项目评分经历上的相似度;计算目标用户u对其它用户的信任度;根据top-N最近邻选择策略,选择在项目评分经历上相似度最高的N个用户和信任度最高的N个的用户作为目标用户u的相似最近邻和信任最近邻,分别记为相似用户集合S和信任用户集合T;N为正整数;
7)利用下式预测目标用户对未评分项目的偏好r″u,i
r″u,i表示用户u对项目i的预测评分;其中,UserSim(u,us)和trust(u,ut)分别表示用户的相似度和信任度;表示两个最近邻集合的评分预测在计算中所占的权重;表示用户u评分的均值;us为相似用户集合S中的某一用户,表示用户us评分的均值;ut为信任用户集合T中的某一用户,表示用户ut评分的均值;表示用户us对项目i或其相似项目的评分;表示用户ut对项目i的评分;
8)根据用户对未评分项目的预测评分,选择预测评分前top-N的项目作为推荐项目推荐给用户。
其中,步骤(1)-(5)为使用K-means方法对应用进行聚类,聚类的结果是将相似的应用聚为一类,同时还完成了同一簇中应用之间相似度的计算。在步骤(6)中计算用户相似度UserSim(u1,u2)需要涉及到应用相似度ItemSim(ak,a′k),聚类的结果一方面可以缩小搜索应用ak的相似应用a′k的范围,另一方面可以直接获取两个相似项目之间的相似度。
distant(A,B)计算公式为:其中,l为连接A,B的最短路径的边数,weighti表示连接A,B的最短路径上第i条边的权值。
depth(A)的计算公式为:其中,d表示节点A与树根的最短路径中所包括的边数。
density(A,B)的计算公式为:density(A,B)=p/w表示A和B最近的共同祖先的子节点密度,其中,p表示A和B最近共同祖先的子节点个数;w表示A和B与最近共同祖先所组成的子图的深度。
用户相似度的计算公式为:
其中,是用户u1对应用ak的评分,是用户u2对应用a′k的评分,ItemSim(ak,a′k)表示应用ak与a′k之间的相似度,是用户u1对曾经评价过的应用的均值,是用户u2对曾经评价过的应用的均值,ak和a′k是相似应用,n表示相似项的数目。
从社交网站获取用户交流信息长度、交流频率,利用下式计算用户的信任权重:
trust(u1,u2)表示用户之间的信任程度。其中,表示与用户u1有交流信息的用户的集合,λ为调节因子,取值范围为[0,1],表示用户u1,u2之间交流信息的长度,表示用户u1与其他用户之间交流信息长度的最大值,表示用户u1,u2之间交流的频率,表示用户u1与其他用户之间交流频率的最大值。
用户u’对项目i或其相似项目的评分的计算公式如下:
r″u′,i表示用户u’对项目i或其相似项目的评分,其中,Ai为项目i的相似项目集合,ItemSimi,j表示项目i,j之间的相似度,ru′,j表示用户u’对项目j的评分。上述公式含义为:当用户u’对项目i有评分时,则使用该评分值ru′,i;当用户u’对项目i没有评分时,取用户u’对项目i的相似项目的评分集合来计算用u’对项目i的近似评分。
与现有技术相比,本发明所具有的有益效果为:本发明首先使用基于本体的语义相似度方法计算移动应用项目之间的相似度,然后通过K-means方法将相似项目进行聚类,进而利用用户在相似项目上的评分改进用户相似度的计算方法,改变了传统基于用户的协同过滤推荐算法中利用用户在相同项目上的评分来计算用户相似度。为了充分利用社会网络中的用户信任关系,将项目相似特征和用户信任关系融合到评分预测公式中,有效地提高了预测的准确度。实验结果表明:将基于K-means应用项目聚类的用户相似度计算与用户信任关系融合起来,能够提高移动应用推荐的准确度。本发明提高了移动应用推荐的准确性。
附图说明
图1为移动应用评分信息举例;
图2为移动应用简介信息举例;
图3为用户交流信息举例;
图4为用户-应用评分举例;
图5为参数的选取;
图6为传统协同过滤算法(CF)、基于项目特征推荐算法(IF-CF),以及融合社会网络和项目特征推荐算法(IF-SR-CF)的评分预测准确度的比较。
具体实施方式
余弦、Pearson方法使用用户共同项目评分来计算用户相似度,没有考虑项目相似性对推荐结果的影响。当用户没有共同评分的时候,无法计算用户的相似程度。而项目的相似程度往往会影响对用户相似度的判断。
本发明首先从移动应用集合A中随机选取k个项目,作为K-means聚类算法的初始中心点。然后遍历其余的观测点找到距离各自最近的聚类中心点,将其加入到该聚类中。为了计算应用与每个观测点之间的距离,需要先计算普通应用与观测点应用的相似度。本发明选用基于本体的语义相似度来计算应用之间的相似度。通过分析Hownet、Wordnet等语义词典中的同义词或义原组成的树状结构,计算两个应用名称之间的语义距离和信息熵,从而得到应用之间语义的相似度。计算公式如下:
其中,ItemSim(A,B)∈[0,1],如果两个应用完全相同,则相似度为1,即ItemSim(A,B)=1;如果两个应用没有任何的共同特征,那么相似度为0,即ItemSim(A,B)=0。
distant(A,B)表示A与B之间的语义距离,l表示连接A,B的最短路径的边数,weighti表示连接A,B的最短路径上第i条边的权值。
depth(A)表示节点A所在节点的深度,d表示节点A与树根的最短路径中所包括的边数。
density(A,B)=p/w (4)
density(A,B)表示节点A与B最近的共同祖先的子节点密度,其中,p表示A和B最近共同祖先的子节点个数;w表示A和B与最近共同祖先所组成的子图的深度。
ε为调节因子,为防止distant(A,B)为0无法做除数,其取值为1。α,β,γ是三部分的权重,取值范围均为[0,1],且满足α+β+γ=1。
当所有应用距离中心的距离都计算完成时,找到距离各自最近的中心点,加入到该簇中。此时,已经产生一个初始的聚类结果。然而,迭代过程并没有完成。计算每个簇的新的中心点,遍历其余点,分别将应用加入到距离自己最近的中心点所在的簇中。迭代上述过程,直到这k个中心点收敛为止。其中,每次迭代过程都选取每个簇中到其它点距离和最小的点作为新的中心点。当迭代过程结束时,最终的簇也就形成了。上述过程,不仅实现了应用之间的“物以类聚”,还完成了同一簇中应用之间相似度的计算。
此时,我们认为同一簇中的项目是相似的,并且相似程度不同。将相似项目的相似系数加入到Pearson用户相似度计算公式中,这样即便用户没有共同评分项目,只要存在共同相似项目的评分,就可以计算两个用户的相似度。改进的Pearson公式如下:
其中,是用户u1对应用ak的评分,是用户u2对应用a′k的评分,ItemSim(ak,a′k)表示应用ak与a′k之间的相似度,是用户u1对曾经评价过的应用的均值,是用户u2对曾经评价过的应用的均值,ak和a′k是相似应用,n表示相似项的数目。
例如,对于表1中的用户u1和用户u2,假设“愤怒的小鸟1”与“愤怒的小鸟2”的语义相似度为0.95,“斗地主”与“升级”的语义相似度为0.8,则用户相似度计算过程为:
利用用户的信任关系可以计算出在信任度上的用户最近邻。这种方法不需要计算项目相似度,从而能够在一定程度上缓解数据稀疏性问题。用户在社交网站上的交流信息往往能够反映出用户之间的信任关系,交流信息量大的用户之间信任度一般会大于交流信息量小的用户的信任度。交流频率高的用户之间的信任度一般会大于交流频率小的用户之间的信任度。也就是说,交流信息长度与交流频率能够在一定程度上反映用户之间的信任关系。本发明使用公式(6)来计算用户之间的信任度。
其中,trust(u1,u2)表示用户之间的信任程度,其中,表示与用户u1有交流信息的用户的集合,λ为调节因子,取值范围为[0,1],表示用户u1,u2之间交流信息的长度。表示用户u1与其他用户之间交流信息长度的最大值,表示用户u1,u2之间交流的频率,表示用户u1与其他用户之间交流频率的最大值。在公式(6)中,调节因子λ的作用在于,有的用户信任度受交流信息长度影响大一点,有的用户信任度受交流频率影响大一点。利用调节因子λ可以对交流信息长度、交流频率赋予不同的权重来表示二者的不同影响程度。本发明假定这两方面的信息对信任度计算的影响是相同的,即λ取值为0.5。
为了进一步缓解评分矩阵数据稀疏问题导致的推荐信息不准确,本发明将基于相似项目聚类的用户相似度计算与用户之间的信任关系结合,对应用评分进行预测。
基于用户的协同过滤算法通过对相似用户在某项目i上的评分来预测当前用户u对该项目的评分,以预测用户u对项目i感兴趣的程度。常用的评分预测公式如公式(7)所示:
其中,r″u,i表示用户u对项目i的预测评分,表示用户u评分的均值,表示用户u’评分的均值,S表示u在项目评分经历上的最近邻用户集合,ru′,i表示用户u’对项目i的评分,UserSim(u,u’)表示用户u和u’的相似度。传统的评分预测公式对目标项目的评分预测,来源于相似用户对该目标项目产生过的评分行为。也就是说,当相似用户没有对该项目进行过评分时,是无法计算该用户对项目的预测评分的。为了解决这一问题,提出了一种基于项目语义相似的预测公式,如公式(8)所示:
其中,r′u′,i表示用户u’对项目i或其相似项目的评分,计算方式如公式(9)所示:
其中,Ai为项目i的相似项目集合,ItemSimi,j表示项目i,j之间的相似度,ru′,j表示用户u’对项目j的评分。上述公式含义为:当用户u’对项目i有评分时,则使用该评分值ru′,i;当用户u’对项目i没有评分时,取用户u’对项目i的相似项目的评分集合来计算用u’对项目i的近似评分。
在社交网站中,用户之间交流信息长度越长、交流频率越高,用户之间的信任度通常也就越高。通过计算用户之间的信任关系来体现相互之间的影响力。本发明采用一种混合评分预测公式,既考虑了项目特征的影响,也考虑了信任用户的影响。计算公式如下:
其中,S和T分别表示在项目评分经历上的最近邻用户集合和在信任关系上的最近邻用户集合,UserSim(u,us)和trust(u,ut)分别表示用户的相似度和信任度。决定了两个最近邻集合的评分预测在计算中所占的比重。
输入:用户-项目的评分矩阵,用户之间交流信息
输出:用户的移动应用推荐列表
步骤1.使用K-means方法对应用进行聚类。
(1)从移动应用所表征的节点中随机取出k个观测点;
(2)使用公式(1)计算应用节点与每个观测点之间的距离;
(3)将每个应用归到距离最近的观测点,从而形成k个簇;
(4)将每个簇中到簇中其他点距离和最小的点作为新的观测点,迭代(2)-(4)步,直到k个观测点收敛为止;
(5)此时,得到最终的簇。
步骤2.计算用户相似度。使用基于项目相似度的改进的Pearson公式(5)。
步骤3.计算用户的信任权重。从社交网站获取用户交流信息长度、交流频率计算信任度。公式为(6)。
步骤4.为目标用户选择最近邻,根据top-N最近邻选择策略,从相似用户和信任用户中选择相应的用户作为最近邻。
步骤5.预测目标用户对未评分项目的偏好。使用评分预测公式(10)。
步骤6.构造推荐列表。根据用户对未评分项目的预测评分,选择预测评分前top-N的项目作为推荐项目推荐给用户。
实施例
由于豆瓣网既包含了用户对移动应用的评分信息又包含了用户之间的互动信息,所以本发明使用网页爬虫从豆瓣爬取相关数据信息。爬取的数据集中包含了298个用户对178个移动应用进行的5462条评分信息,以及4932个用户之间的19194条交流信息。其中,评分信息为1~5的整数。图1为移动应用评分信息举例,包含了若干用户对“愤怒的小鸟2”的打分及评论信息。图中星星数量即为用户打分情况,一颗星代表1分,两颗星代表2分,以此类推;移动应用信息包含了移动应用的名称和简介信息,图2为移动应用简介信息举例。图3为用户交流信息举例,显示了用户“大时代歌姬”与一些网友之间的互动信息。图4为用户-应用评分举例,显示了用户“小海狸”对使用过的移动应用的评分信息。该数据集的数据稀疏率为10.3%(计算方法见公式12),有利于验证融合社会网络和项目特征推荐算法的推荐效果。
为了能够通过实验来验证推荐算法的准确性,本发明将爬取下来的数据集按8:2的比例分成训练集和测试集。训练集用于学习和训练推荐算法中的相关参数,并通过训练集中的数据计算出相应的项目预测评分。然后,通过对比训练集中的项目预测评分与测试集中实际项目评分来验证推荐算法的准确性。
为了计算预测评分和真实评分的差异,采用经典算法MAE平均绝对误差。MAE用来表示系统预测的值和实际值之间的平均绝对误差。计算公式如公式(11)所示:
其中,{p1,p2,...,pn}表示预测的用户评分集,{q1,q2,...,qn}表示对应的实际用户的评分集。MAE的值越小,该推荐算法的评分集的准确度越高。换句话说,当MAE值足够小时,说明系统推荐的信息与用户的实际情况相符,推荐系统的准确度较高。
为了使公式10中预测评分和实际评分相差尽可能小,本发明通过训练集来训练参数并最终得到了MAE值最小时对应的值。实验结果表明:无论最近邻居选取5个用户、7个用户,还是9个用户,MAE值都在取值为0.6的时候最小。这说明,当取值为0.6时,评分预测的效果最好。实验结果如图5所示。
该实验主要用于验证传统协同过滤算法(CF)、基于项目特征推荐算法(IF-CF),以及融合社会网络和项目特征推荐算法(IF-SR-CF)的评分预测公式的准确度。将最近邻居个数以间隔为2的方式从3逐渐递增到11,计算不同最近邻居个数时上述三种预测公式对应的MAE值。实验结果如图6所示。其中,横坐标表示最近邻居数量,纵坐标表示选取不同最近邻居数量时对应的MAE值。由上图可以看出基于项目特征的推荐算法比传统协同过滤推荐算法的MAE值更小,随着最近邻居用户数量的增多它的MAE值比传统协同过滤推荐算法的MAE值下降得更快,这说明基于项目特征的推荐算法的评分预测效果更好;而融合了社会网络和项目特征的推荐算法比基于项目特征的推荐算法的MAE值还要小,这表明:融合了社会网络即用户信任关系后,评分预测的准确度又得到了进一步的提高。
对本发明所提方法进一步进行改进度验证:
第一步,计算出上述数据集的稀疏率。数据稀疏率的计算公式为:
其中,ReviewSum表示用户数量;ItemSum表示移动应用数量;UserSum表示用户数。数据率越小表示数据越稀疏,反之数据率越大表示数据越密集。例如:数据集中含有3个用户,10条评论,20个移动应用。则该数据集的稀疏率为:
第二步,从数据集中随机选取5组数据,这5组数据需要满足以下条件:(1)稀疏率各不相同;(2)因为,数据稀疏率越小表示数据越稀疏。所以,选取的5组数据要满足稀疏率都小于数据集的稀疏率(即:10.3%)。同时,将最近邻居个数以间隔为2的方式从3逐渐递增到11,计算出传统协同过滤算法、基于项目特征推荐算法、融合社会网络和项目特征推荐算法对应的MAE值。
第三步,计算改进度,验证算法有效性。改进度的计算公式为:
其中,x表示改进后算法的MAE值,y为原算法的MAE值。改进度越大表示推荐算法的改进效果越好。实验结果如表1、表2所示:
表1传统协同过滤算法与基于项目特征推荐算法改进度对比
邻居个数 稀疏率 CF IF-CF 改进度
3 13.66% 1.153 1.098 4.89%
5 11.40% 1.114 1.056 5.35%
7 8.78% 1.098 1.039 5.52%
9 4.36% 1.093 0.984 6.91%
11 2.13% 1.091 0.995 9.20%
观察上表可以发现,本实验中基于项目特征的推荐算法的MAE值小于传统协同过滤算法的MAE值,即:基于项目特征的推荐算法的评分预测准确度更高;同时,当数据越来越稀疏时(稀疏率变小时),基于项目特征的推荐算法的改进度就越高。这说明在数据稀疏的数据环境中,基于项目特征的推荐算法比传统协同过滤算法有更好的推荐表现。
表2基于项目特征推荐算法与融合社会网络和项目特征推荐算法改进度的比较
邻居个数 稀疏率 IF-CF IF-SR-CF 改进度
3 13.66% 1.098 1.080 1.65%
5 11.40% 1.056 1.045 2.49%
7 8.78% 1.039 1.010 2.83%
9 4.36% 1.020 0.945 7.63%
11 2.13% 0.995 0.913 8.60%
观察上表可以发现,本实验中融合社会网络和项目特征的推荐算法的MAE值小于基于项目特征的推荐算法的MAE值,即:融合社会网络和项目特征的推荐算法的评分预测准确度更高;同时,当数据越来越稀疏时(稀疏率变小时),融合社会网络和项目特征的推荐算法的改进度就越高。这说明在数据稀疏的数据环境中,融合社会网络和项目特征的推荐算法比基于项目特征的推荐算法推荐效果更完善。
本发明使用基于本体的语义相似度方法计算项目之间的相似度,并通过K-means方法将相似项目进行聚类,改变了传统基于用户的协同过滤推荐算法中利用用户在相同项目上的评分来计算用户相似度。与传统基于Pearson或余弦公式的协同过滤推荐方法相比较,基于K-means应用项目聚类的方法更准确。为了充分利用用户的信任关系,将项目相似特征和用户信任关系融合到评分预测公式中,有效地提高了预测的准确度。实验结果表明:将基于K-means聚类的用户相似度计算与用户信任关系融合起来,能够提高推荐准确度。

Claims (5)

1.一种融合社会网络和移动应用项目特征的移动应用推荐方法,其特征在于,包括以下步骤:
1)从表征移动应用项目的节点集合中随机取出k个节点作为观测点;
2)利用如下所示的移动应用项目相似度计算公式,计算移动应用项目与每个观测点之间的相似度ItemSim(A,B):
<mfenced open = "" close = ""> <mtable> <mtr> <mtd> <mrow> <mi>I</mi> <mi>t</mi> <mi>e</mi> <mi>m</mi> <mi>S</mi> <mi>i</mi> <mi>m</mi> <mrow> <mo>(</mo> <mrow> <mi>A</mi> <mo>,</mo> <mi>B</mi> </mrow> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mo>=</mo> <mrow> <mo>(</mo> <mfrac> <mi>&amp;epsiv;</mi> <mrow> <mi>d</mi> <mi>i</mi> <mi>s</mi> <mi>tan</mi> <mi>t</mi> <mrow> <mo>(</mo> <mrow> <mi>A</mi> <mo>,</mo> <mi>B</mi> </mrow> <mo>)</mo> </mrow> <mo>+</mo> <mi>&amp;epsiv;</mi> </mrow> </mfrac> <mo>)</mo> </mrow> <mo>*</mo> <mi>&amp;alpha;</mi> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mo>+</mo> <mrow> <mo>(</mo> <mfrac> <mrow> <mi>d</mi> <mi>e</mi> <mi>p</mi> <mi>t</mi> <mi>h</mi> <mrow> <mo>(</mo> <mi>A</mi> <mo>)</mo> </mrow> <mo>+</mo> <mi>d</mi> <mi>e</mi> <mi>p</mi> <mi>t</mi> <mi>h</mi> <mrow> <mo>(</mo> <mi>B</mi> <mo>)</mo> </mrow> </mrow> <mrow> <mo>|</mo> <mi>d</mi> <mi>e</mi> <mi>p</mi> <mi>t</mi> <mi>h</mi> <mrow> <mo>(</mo> <mi>A</mi> <mo>)</mo> </mrow> <mo>-</mo> <mi>d</mi> <mi>e</mi> <mi>p</mi> <mi>t</mi> <mi>h</mi> <mrow> <mo>(</mo> <mi>B</mi> <mo>)</mo> </mrow> <mo>+</mo> <mn>1</mn> <mo>|</mo> </mrow> </mfrac> <mo>)</mo> </mrow> <mo>*</mo> <mi>&amp;beta;</mi> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mo>+</mo> <mrow> <mo>(</mo> <mfrac> <mn>1</mn> <mrow> <mi>d</mi> <mi>e</mi> <mi>n</mi> <mi>s</mi> <mi>i</mi> <mi>t</mi> <mi>y</mi> <mrow> <mo>(</mo> <mrow> <mi>A</mi> <mo>,</mo> <mi>B</mi> </mrow> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>)</mo> </mrow> <mo>*</mo> <mi>&amp;gamma;</mi> </mrow> </mtd> </mtr> </mtable> </mfenced>
ItemSim(A,B)∈[0,1],如果移动应用项目与观测点完全相同,则相似度ItemSim(A,B)为1;如果移动应用项目与观测点没有任何的共同特征,那么相似度ItemSim(A,B)为0;其中,distant(A,B)表示A与B之间的语义距离,ε为调节因子,取值为1,用于防止distant(A,B)值为0;
depth(A)表示移动应用项目A所在节点的深度;depth(B)表示移动应用项目B所在节点的深度;density(A,B)表示A与B最近的共同祖先的子节点密度;α、β、γ取值范围均为[0,1],且α+β+γ=1;
3)根据经上述步骤2)计算得到某移动应用项目与k个观测点之间的相似度,将表征该移动应用项目的节点划归到相似度最高的观测点为中心的簇中;同理对所有节点进行划归,形成k个簇;
4)将每个簇中到簇中其它所有点距离和最小的点作为新的观测点;
5)迭代步骤2)~步骤4),直到这k个观测点收敛,得到最终的簇;
6)计算目标用户u与其它用户在移动应用项目评分经历上的相似度;计算目标用户u对其它用户的信任度;根据top-N最近邻选择策略,选择在移动应用项目评分经历上相似度最高的N个用户和信任度最高的N个的用户作为目标用户u的相似最近邻和信任最近邻,分别记为相似用户集合S和信任用户集合T;N为正整数;利用下式计算用户相似度:
<mrow> <mi>U</mi> <mi>s</mi> <mi>e</mi> <mi>r</mi> <mi>S</mi> <mi>i</mi> <mi>m</mi> <mrow> <mo>(</mo> <mi>u</mi> <mo>,</mo> <msub> <mi>u</mi> <mn>2</mn> </msub> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mrow> <msubsup> <mi>&amp;Sigma;</mi> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </msubsup> <mrow> <mo>(</mo> <msub> <mi>r</mi> <mrow> <mi>u</mi> <mo>,</mo> <msub> <mi>a</mi> <mi>k</mi> </msub> </mrow> </msub> <mo>-</mo> <mover> <msub> <mi>r</mi> <mi>u</mi> </msub> <mo>&amp;OverBar;</mo> </mover> <mo>)</mo> </mrow> <mrow> <mo>(</mo> <msub> <mi>r</mi> <mrow> <msub> <mi>u</mi> <mn>2</mn> </msub> <mo>,</mo> <msub> <msup> <mi>a</mi> <mo>&amp;prime;</mo> </msup> <mi>k</mi> </msub> </mrow> </msub> <mo>-</mo> <mover> <msub> <mi>r</mi> <msub> <mi>u</mi> <mn>2</mn> </msub> </msub> <mo>&amp;OverBar;</mo> </mover> <mo>)</mo> </mrow> <mi>I</mi> <mi>t</mi> <mi>e</mi> <mi>m</mi> <mi>S</mi> <mi>i</mi> <mi>m</mi> <mrow> <mo>(</mo> <msub> <mi>a</mi> <mi>k</mi> </msub> <mo>,</mo> <msub> <msup> <mi>a</mi> <mo>&amp;prime;</mo> </msup> <mi>k</mi> </msub> <mo>)</mo> </mrow> </mrow> <mrow> <msqrt> <mrow> <msubsup> <mi>&amp;Sigma;</mi> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </msubsup> <msup> <mrow> <mo>(</mo> <msub> <mi>r</mi> <mrow> <mi>u</mi> <mo>,</mo> <msub> <mi>a</mi> <mi>k</mi> </msub> </mrow> </msub> <mo>-</mo> <mover> <msub> <mi>r</mi> <mi>u</mi> </msub> <mo>&amp;OverBar;</mo> </mover> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> </msqrt> <msqrt> <mrow> <msubsup> <mi>&amp;Sigma;</mi> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </msubsup> <msup> <mrow> <mo>(</mo> <msub> <mi>r</mi> <mrow> <msub> <mi>u</mi> <mn>2</mn> </msub> <mo>,</mo> <msub> <msup> <mi>a</mi> <mo>&amp;prime;</mo> </msup> <mi>k</mi> </msub> </mrow> </msub> <mo>-</mo> <mover> <msub> <mi>r</mi> <msub> <mi>u</mi> <mn>2</mn> </msub> </msub> <mo>&amp;OverBar;</mo> </mover> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> </msqrt> </mrow> </mfrac> <mo>;</mo> </mrow>
其中,是目标用户u对移动应用项目ak的评分,是用户u2对移动应用项目a′k的评分,ItemSim(ak,a′k)表示移动应用项目ak与a′k之间的相似度,是目标用户u对曾经评价过的移动应用项目的均值,是用户u2对曾经评价过的移动应用项目的均值,ak和a′k是相似移动应用项目,n表示相似项的数目;
利用下式计算用户的信任程度:
<mrow> <mi>t</mi> <mi>r</mi> <mi>u</mi> <mi>s</mi> <mi>t</mi> <mrow> <mo>(</mo> <mi>u</mi> <mo>,</mo> <msub> <mi>u</mi> <mn>2</mn> </msub> <mo>)</mo> </mrow> <mo>=</mo> <mi>&amp;lambda;</mi> <mo>&amp;times;</mo> <mfrac> <mrow> <msub> <mi>length</mi> <mrow> <mi>u</mi> <mo>,</mo> <msub> <mi>u</mi> <mn>2</mn> </msub> </mrow> </msub> </mrow> <mrow> <msub> <mi>max</mi> <mrow> <mi>u</mi> <mo>&amp;Element;</mo> <msub> <mi>C</mi> <mi>u</mi> </msub> </mrow> </msub> <msub> <mi>length</mi> <mrow> <mi>u</mi> <mo>,</mo> <msub> <mi>u</mi> <mn>2</mn> </msub> </mrow> </msub> </mrow> </mfrac> <mo>+</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>&amp;lambda;</mi> <mo>)</mo> </mrow> <mo>&amp;times;</mo> <mfrac> <msub> <mi>f</mi> <mrow> <mi>u</mi> <mo>,</mo> <msub> <mi>u</mi> <mn>2</mn> </msub> </mrow> </msub> <mrow> <msub> <mi>max</mi> <mrow> <mi>u</mi> <mo>&amp;Element;</mo> <msub> <mi>C</mi> <mi>u</mi> </msub> </mrow> </msub> <msub> <mi>f</mi> <mrow> <mi>u</mi> <mo>,</mo> <msub> <mi>u</mi> <mn>2</mn> </msub> </mrow> </msub> </mrow> </mfrac> <mo>;</mo> </mrow>
trust(u,u2)表示用户之间的信任程度,其中,Cu表示与目标用户u有交流信息的用户的集合,λ为调节因子,取值范围为[0,1],表示目标用户u与用户u2之间交流信息的长度,表示目标用户u与其他用户之间交流信息长度的最大值,表示目标用户u与用户u2之间交流的频率,表示目标用户u与其他用户之间交流频率的最大值;
7)利用下式预测目标用户对未评分移动应用项目的偏好r″u,i
r″u,i表示目标用户u对移动应用项目i的预测评分;其中,
UserSim(u,us)和trust(u,ut)分别表示用户的相似度和信任度;
表示两个最近邻集合的评分预测在计算中所占的权重;
表示目标用户u评分的均值;us为相似用户集合S中的某一用户,表示用户us评分的均值;ut为信任用户集合T中的某一用户,表示用户ut评分的均值;表示用户us对移动应用项目i或其相似移动应用项目的评分;表示用户ut对移动应用项目i的评分;
8)根据用户对未评分移动应用项目的预测评分,选择预测评分前top-N的移动应用项目作为推荐项目推荐给用户。
2.根据权利要求1所述的融合社会网络和移动应用项目特征的移动应用推荐方法,其特征在于,distant(A,B)计算公式为:其中,l表示连接A,B的最短路径的边数,weighti表示连接A,B的最短路径上第i条边的权值。
3.根据权利要求2所述的融合社会网络和移动应用项目特征的移动应用推荐方法,其特征在于,depth(A)的计算公式为:其中,d表示移动应用项目A与树根的最短路径中所包括的边数。
4.根据权利要求3所述的融合社会网络和移动应用项目特征的移动应用推荐方法,其特征在于,density(A,B)的计算公式为:density(A,B)=p/w,其中,p表示A和B最近共同祖先的子节点个数;w表示A和B与最近共同祖先所组成的子图的深度。
5.根据权利要求4所述的融合社会网络和项目特征的移动应用推荐方法,其特征在于,利用下式计算目标用户u’对移动应用项目i或其相似移动应用项目的评分r′u′,i
<mrow> <msubsup> <mi>r</mi> <mrow> <msup> <mi>u</mi> <mo>&amp;prime;</mo> </msup> <mo>,</mo> <mi>i</mi> </mrow> <mo>&amp;prime;</mo> </msubsup> <mo>=</mo> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <mfrac> <mn>1</mn> <mrow> <msub> <mi>&amp;Sigma;</mi> <mrow> <mi>j</mi> <mo>&amp;Element;</mo> <msub> <mi>A</mi> <mi>i</mi> </msub> </mrow> </msub> <msub> <mi>ItemSim</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>j</mi> </mrow> </msub> </mrow> </mfrac> <munder> <mo>&amp;Sigma;</mo> <mrow> <mi>j</mi> <mo>&amp;Element;</mo> <msub> <mi>A</mi> <mi>i</mi> </msub> </mrow> </munder> <msub> <mi>r</mi> <mrow> <msup> <mi>u</mi> <mo>&amp;prime;</mo> </msup> <mo>,</mo> <mi>j</mi> </mrow> </msub> <mo>&amp;times;</mo> <msub> <mi>ItemSim</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>j</mi> </mrow> </msub> <mo>,</mo> </mrow> </mtd> <mtd> <mrow> <msub> <mi>r</mi> <mrow> <msup> <mi>u</mi> <mo>&amp;prime;</mo> </msup> <mo>,</mo> <mi>i</mi> </mrow> </msub> <mo>=</mo> <mn>0</mn> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>r</mi> <mrow> <msup> <mi>u</mi> <mo>&amp;prime;</mo> </msup> <mo>,</mo> <mi>i</mi> </mrow> </msub> <mo>,</mo> </mrow> </mtd> <mtd> <mrow> <msub> <mi>r</mi> <mrow> <msup> <mi>u</mi> <mo>&amp;prime;</mo> </msup> <mo>,</mo> <mi>i</mi> </mrow> </msub> <mo>&amp;NotEqual;</mo> <mn>0</mn> </mrow> </mtd> </mtr> </mtable> </mfenced> </mrow> 2
其中,Ai为移动应用项目i的相似移动应用项目集合,ItemSimi,j表示移动应用项目i,j之间的相似度,ru′,j表示目标用户u’对移动应用项目j的评分;上述公式含义为:当目标用户u’对移动应用项目i有评分时,则使用该评分值ru′,i;当目标用户u’对移动应用项目i没有评分时,取目标用户u’对移动应用项目i的相似移动应用项目的评分集合来计算用u’对移动应用项目i的近似评分。
CN201510695180.4A 2015-10-22 2015-10-22 一种融合社会网络和项目特征的移动应用推荐方法 Active CN105354260B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510695180.4A CN105354260B (zh) 2015-10-22 2015-10-22 一种融合社会网络和项目特征的移动应用推荐方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510695180.4A CN105354260B (zh) 2015-10-22 2015-10-22 一种融合社会网络和项目特征的移动应用推荐方法

Publications (2)

Publication Number Publication Date
CN105354260A CN105354260A (zh) 2016-02-24
CN105354260B true CN105354260B (zh) 2017-09-29

Family

ID=55330233

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510695180.4A Active CN105354260B (zh) 2015-10-22 2015-10-22 一种融合社会网络和项目特征的移动应用推荐方法

Country Status (1)

Country Link
CN (1) CN105354260B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105959365B (zh) * 2016-04-26 2019-01-18 中国联合网络通信集团有限公司 应用推荐方法和应用推荐装置
CN107885749B (zh) * 2016-09-30 2022-01-11 南京理工大学 本体语义扩展与协同过滤加权融合的工艺知识检索方法
CN106484876A (zh) * 2016-10-13 2017-03-08 中山大学 一种基于典型度和信任网络的协同过滤推荐方法
CN107220303A (zh) * 2017-05-10 2017-09-29 努比亚技术有限公司 一种应用的推荐方法、装置及计算机可读介质
CN107862012A (zh) * 2017-10-30 2018-03-30 江苏大学 一种针对大学生群体的信息资源自动推荐方法
CN108320187B (zh) * 2018-02-02 2021-04-06 合肥工业大学 一种基于深度社交关系的推荐方法
CN109101667B (zh) * 2018-09-29 2021-07-09 新乡学院 一种基于显式信任和隐式信任的个性化推荐方法
CN111553657A (zh) * 2020-04-28 2020-08-18 贝壳技术有限公司 基于行为分析的匹配方法和装置、电子设备和存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2627096A1 (en) * 2012-02-09 2013-08-14 Thomson Licensing Recommendation method using similarity metrics
CN103399858B (zh) * 2013-07-01 2016-08-10 吉林大学 基于信任的社会化协同过滤推荐方法
CN103399919A (zh) * 2013-08-02 2013-11-20 浙江大学 基于社会关系网的信任增强服务推送方法
CN103761237A (zh) * 2013-12-04 2014-04-30 南京邮电大学 一种基于用户特征及其信任度的协同过滤推荐方法

Also Published As

Publication number Publication date
CN105354260A (zh) 2016-02-24

Similar Documents

Publication Publication Date Title
CN105354260B (zh) 一种融合社会网络和项目特征的移动应用推荐方法
CN105740430B (zh) 一种融合社会化信息的个性化推荐方法
CN103514304B (zh) 一种项目推荐方法和装置
CN107391670A (zh) 一种融合协同过滤和用户属性过滤的混合推荐方法
CN103793476B (zh) 基于网络社区的协同过滤推荐方法
CN103325061B (zh) 一种社区发现方法和系统
CN103971161B (zh) 基于柯西分布量子粒子群的混合推荐方法
CN108920503A (zh) 一种基于社交网络信任度的微视频个性化推荐算法
CN106682114A (zh) 一种融合用户信任关系和评论信息的个性化推荐方法
CN104199818B (zh) 一种基于分类的社会化推荐方法
Yu et al. Recommender systems based on multiple social networks correlation
CN103729359A (zh) 一种推荐搜索词的方法及系统
CN107679239B (zh) 一种基于用户行为的个性化社区推荐方法
CN105868281A (zh) 基于非支配排序多目标方法的位置感知推荐系统
CN107657034A (zh) 一种社交信息增强的事件社交网络推荐算法
CN107169873A (zh) 一种多特征融合的微博用户权威度评价方法
CN105069072A (zh) 基于情感分析的混合用户评分信息推荐方法及其推荐装置
CN107657043B (zh) 一种基于内容的混合图模型图像推荐方法
US9147009B2 (en) Method of temporal bipartite projection
CN108647216A (zh) 基于开发人员社交网络的软件众包任务推荐系统及方法
CN108053050A (zh) 点击率预估方法、装置、计算设备及存储介质
CN104794367A (zh) 基于隐语义模型的就医资源评分与推荐方法
CN110136015B (zh) 一种在线社交网络中节点相似性与凝聚力并重的信息传播方法
CN107145541A (zh) 基于超图结构的社交网络推荐模型构建方法
CN110209946A (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