CN103473128A - 一种用于mashup应用推荐的协同过滤方法 - Google Patents

一种用于mashup应用推荐的协同过滤方法 Download PDF

Info

Publication number
CN103473128A
CN103473128A CN2013104147937A CN201310414793A CN103473128A CN 103473128 A CN103473128 A CN 103473128A CN 2013104147937 A CN2013104147937 A CN 2013104147937A CN 201310414793 A CN201310414793 A CN 201310414793A CN 103473128 A CN103473128 A CN 103473128A
Authority
CN
China
Prior art keywords
mashup application
mashup
similarity
application
target
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
Application number
CN2013104147937A
Other languages
English (en)
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.)
Nanjing University
Original Assignee
Nanjing 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 Nanjing University filed Critical Nanjing University
Priority to CN2013104147937A priority Critical patent/CN103473128A/zh
Publication of CN103473128A publication Critical patent/CN103473128A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种用于mashup应用推荐的协同过滤方法,包括以下步骤:步骤1,计算mashup应用之间的内容相似度;步骤2,传递内容相似度;步骤3,聚类mashup应用;步骤4,计算属于同一个聚类的mashup应用之间的评分相似度;步骤5,选择邻居;步骤6,推荐mashup应用。本发明优势包括:聚类中的mashup应用数目远小于推荐系统中所有mashup应用的数目,推荐系统响应速度较快;同一聚类中的用户评分相对更集中,密度较大,稀疏度较小,mashup应用的评分相似度计算更准确;同一聚类中mashup应用更相关,评分推测更准确;离线完成聚类过程,保证了推荐系统的及时更新。

Description

一种用于mashup应用推荐的协同过滤方法
技术领域
本发明涉及计算机软件技术领域,特别是一种用于mashup应用的推荐的协同过滤方法。
背景技术
自20世纪80年代开始,全球产业结构呈现出“工业型经济”向“服务型经济”转型的总趋势。根据世界银行的统计,现代服务业的总产出占世界总产出的60%以上,而发达国家则超过70%。现代服务业的竞争正成为世界经济发展的焦点。服务计算提供灵活的计算架构支持现代服务业,逐渐成为极富前途的研究领域。
随着服务计算和Web2.0技术的发展,一种新型的网络应用mashup应用在因特网上逐渐兴起。互联网实验室的《2006-2007互联网前沿发展大趋势》中指出:“Mashup应用将成为未来内容创新性组合的全新方式。而Mashup应用程序就是使用这种模式搭建而成的全新的创新服务,使用到外部的多个数据源的内容和服务,把松散的资源、要素、服务和功能集成在网络环境中,并且新的服务的价值大于所使用服务组合的简单叠加,它带给用户集成体验;分散在各地的页面被以一种新奇的重用模式合并、表达出来。Mashup应用体现了面向服务的框架(Service Oriented Architecture,SOA)的理念,是一种基于网络的、可复用的、轻量级的内容集成。近年来,mashup应用已经成为web应用领域的热门词汇,许多公司和机构提供了多种多样的mashup应用解决方案或将已有的整合方案重新标记为mashup应用工具。目前,已推出的mashup应用开发工具主要有Yahoo!Pipes、Microsoft’s PopFly、Google Mashup Editor、IBM Damia以及
Figure BDA0000381269110000011
Mash Maker等。这些工具使得用户更加容易、方便地糅合web应用,加速了mashup应用的开发进程,导致mashup应用的数目日益增加。来自programmableweb网站的数据显示,截至2013年9月5日,全球在该网站上注册的API数目达到9902个,基于API开发的mashup应用达到7172个。典型的mashup应用包括地图mashup应用,图片和视频mashup应用,搜索和购物mashup应用等。这些mashup应用及其生成的数据具有数据量大、处理速度快、数据类型多等大数据特征。为了从大数据中发现知识并加以利用,指导人们的决策,必须对这些数据进行深入的分析,而不是仅仅生成简单的报表。
面对大量类似功能的mashup应用,大部分用户缺乏足够的经验或能力选择合适的mashup应用,因此,为用户推荐适合个性需求的mashup应用,成为当前急需解决的问题。推荐系统是解决信息过载问题的有效手段之一,而协同过滤是推荐系统中最常用的方法。协同过滤分析用户兴趣,在用户群中找到指定用户的相似(兴趣)用户,综合这些相似用户对某一信息的评价,形成系统对该指定用户对此信息的喜好程度预测。然而,随着mashup应用及其产生的数据量越来越大,mashup应用的协同过滤技术面临诸多挑战:(1)mashup应用数量巨大,但推荐系统需极可能快地作出响应;(2)尽管mashup应用增长迅速,但表达用户对mashup应用的兴趣的信息非常稀疏,使得用户或mashup应用之间相似度的计算可能不准确;(3)mashup应用的种类越来越多,从用户对各种其他类别中的mashup应用的评价推测其对于给定mashup应用的评价很可能并不准确;(4)新的用户和新的mashup应用不断加入推荐系统,推荐算法应该快速、准确地更新。
发明内容
发明目的:本发明所要解决的技术问题是针对现有技术中响应时间长,推荐质量不高的缺陷,提供一种用于mashup应用推荐的协同过滤方法。
为了解决上述技术问题,本发明公开了一种用于mashup应用推荐的协同过滤方法,包括以下步骤:
步骤1,计算mashup应用之间的内容相似度:提取所有mashup应用的应用程序接口(Application Programming Interface,API)和标签信息,基于杰卡德相似系数(Jaccard Similarity Coefficient,JSC),得到任意两个mashup应用之间的API相似度和标签相似度,加权合成mashup应用之间的内容相似度;
步骤2,传递内容相似度:建立一个无向加权图,图中一个结点对应一个mashup应用并以相应的mashup应用为标记,若两个mashup应用之间内容相似度不为0,则在以这两个mashup应用为标记的结点之间加上一条边,而这两个mashup应用之间的内容相似度则作为边的权值,然后根据相似度传递规则匹配情况,计算两个不直接相连但有路径相通的mashup应用之间被传递的内容相似度;
步骤3,聚类mashup应用:采用凝聚型层次聚类方法,首先将每个mashup应用看作一个聚类,迭代地将相似度最高的mashup应用聚为一类,直至所有mashup应用聚为一类;
步骤4,计算mashup应用之间的评分相似度:在两个mashup应用都属于同一个聚类的前提下,使用皮尔逊相关系数(Pearson Correlation Coefficient,PCC)方法计算mashup应用之间的评分相似度;
步骤5,选择mashup应用的邻居:设定一个相似阈值,若某个mashup应用与目标mashup应用的评分相似度超过相似阈值,则将其加入目标mashup应用的邻居集合;
步骤6,推荐mashup应用:根据目标mashup应用的邻居评分计算目标mashup应用的预测评分值,若该值超过预设的推荐阈值,则将目标mashup应用推荐给用户,否则不推荐。
本发明中,需要指出,内容相似度传递仅在没有直接边相连的两个mashup应用之间进行。传递路径长度阈值L为大于1的整数,值越大,越多mashup应用可建立内容相似关系,但被传递的内容相似度越小,当L超过4时,大多数被传递的内容相似度接近于0,因此,权衡关系的传递和相似度的大小,本发明中,L取值为4。
本发明中,需要指出,在使用基于项目的皮尔逊相关系数方法计算目标mashup应用和其他mashup应用的评分相似度时,仅当其他mashup应用也属于目标聚类时才进行评分相似度计算。
本发明中,需要指出,在选择目标mashup应用的邻居时,设置的相似阈值越大,得到的邻居与目标mashup应用越相似,但同时也减少了目标mashup应用的邻居数目甚至使邻居数为0,因此可通过实验调节进行权衡。
本发明中,需要指出,在进行mashup应用推荐时,由用户或系统预先设定一个推荐阈值,推荐阈值越大,为用户推荐的mashup应用越有价值,但如果推荐阈值大于评分制中值,将只有很少的mashup应用能够得到推荐,这也不利于推荐系统的应用,因此,本发明中,设置推荐阈值为评分制中值,(例如用户采用5分制评分,则2.5被设为推荐阈值),若目标mashup应用的预测评分值超过推荐阈值,则将之推荐给活动用户,否则不推荐。
与现有的推荐方法相比,本发明提出的方法,其优势包括:(1)聚类中的mashup应用数目远小于推荐系统中所有mashup应用的数目,因此,推荐系统响应速度较快;(2)同一聚类中的用户评分相对更集中,密度较大,稀疏度较小,mashup应用的评分相似度计算更准确;(3)一个聚类中的mashup应用的种类较少,用户对这些mashup应用的评分与同属于一个聚类中的给定mashup应用的评分相关,评分推测更准确;(4)离线完成聚类过程,保证了推荐系统的及时更新。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
图1是本发明一种用于mashup应用推荐的协同过滤方法的流程图。
图2是本发明实施例中基于传递规则的相似度传递的示意图。
图3是本发明实施例中凝聚型层次聚类结果示意图。
具体实施方式
本发明公开了一种用于mashup应用推荐的协同过滤方法,包括以下步骤:
步骤1,计算mashup应用之间的内容相似度:提取目标网站上所有mashup应用的API接口和标签信息,计算任意两个mashup应用之间的API相似度和标签相似度,加权合成mashup应用之间的内容相似度;
步骤2,传递内容相似度:建立一个无向加权图,图中一个结点对应一个mashup应用并以相应的mashup应用为标记,若两个mashup应用之间内容相似度不为0,则在以这两个mashup应用为标记的结点之间加上一条边,而这两个mashup应用之间的内容相似度则作为边的权值,然后根据相似度传递规则匹配情况,计算两个不直接相连但有路径相通的mashup应用之间被传递的内容相似度;
步骤3,聚类mashup应用:采用凝聚型层次聚类方法,将每个mashup应用看作一个聚类,迭代地将相似度最高的mashup应用聚为一类,直至所有mashup应用聚为一类;
步骤4,计算mashup应用之间的评分相似度:在两个mashup应用都属于同一个聚类的情况下,计算mashup应用之间的评分相似度;
步骤5,选择邻居mashup应用:设定一个相似阈值,若一个mashup应用与目标mashup应用的评分相似度超过相似阈值,则将其加入目标mashup应用的邻居集合;
步骤6,推荐mashup应用:根据目标mashup应用的邻居集合内的mashup应用评分计算目标mashup应用的预测评分值,根据用户对mashup应用的评分范围设定推荐阈值,若目标mashup应用的预测评分值大于等于推荐阈值,则将之推荐给用户,否则不推荐。
步骤1中,采用杰卡德相似系数计算第i个mashup应用mi和第j个mashup应用mj的API相似度SA(mi,mj),计算公式为:
S A ( m i , m j ) = | A i ∩ A j | | A i ∪ A j | ,
其中,Ai为被第i个mashup应用mi所使用的API集合,Aj是被第j个mashup应用mj所使用的API集合。
步骤1中,采用杰卡德相似系数计算第i个mashup应用mi和第j个mashup应用mj的标签相似度ST(mi,mj),计算公式为:
S T ( m i , m j ) = | T i ∩ T j | | T i ∪ T j | ,
其中,Ti是标注第i个mashup应用mi的标签集合,Tj是标注第j个mashup应用mj的标签集合。
步骤1中,加权合成第i个mashup应用mi和第j个mashup应用mj之间的内容相似度SC(mi,mj),计算公式为:
SC(mi,mj)=α×ST(mi,mj)+(1-α)×SA(mi,mj),
其中,α是标签相似度权值,取值范围为0~1,(1-α)是API相似度权值。
步骤2中根据相似度传递规则匹配情况,计算两个不直接相连但有路径相通的mashup应用之间被传递的内容相似度,包括以下三种情况:
情况1:如果以第p个mashup应用mp为标记的结点
Figure BDA0000381269110000053
和以第q个mashup应用mq为标记的结点
Figure BDA0000381269110000054
两个之间仅有一条路径相通,将该路径定义为结点序列集合
Figure BDA0000381269110000055
节点
Figure BDA0000381269110000056
Figure BDA0000381269110000057
都是结点至结点路径上的节点,如果该路径长度小于预设的传递路径长度阈值L(L>1),则通过该路径所传递第p个mashup应用mp和第q个mashup应用mq之间的内容相似度SP(mp,mq)为:
SP(mp,mq)=MIN{SC(mp,mp+1),...,SC(mp+i,mp+i+1),...,SC(mq-1,mq)}×β,
其中,SC(mp,mp+1)是路径上直接相连的两个结点的标记mp和mp+1之间的内容相似度,SC(mp+i,mp+i+1)是路径上直接相连的两个结点的标记mp+i和mp+i+1之间的内容相似度,SC(mq-1,mq)是路径上直接相连的两个结点的标记mq-1和mq之间的内容相似度,MIN是取最小值函数,β是路径长度衰减因子,β其计算方法为:
β = L - l 1 ( v m p , v m q ) + 1 L ,
其中,
Figure BDA0000381269110000062
是以第p个mashup应用mp为标记的结点
Figure BDA0000381269110000063
和以第q个mashup应用mq为标记的结点
Figure BDA0000381269110000064
之间的路径长度;
情况2:如果以第p个mashup应用mp为标记的结点
Figure BDA00003812691100000610
和以第q个mashup应用mq为标记的结点
Figure BDA0000381269110000065
之间有一条以上的路径相通,且每条路径长度都小于预设的传递路径长度阈值L,则其传递相似度SP(mp,mq)为:
S P ( m p , m q ) = Σ i = 1 n S P i ( m p , m q ) n ,
其中,
Figure BDA0000381269110000067
是通过第i条路径所传递的第p个mashup应用mp和第q和mashup应用mq之间的内容相似度,n表示路径条数;
情况3:如果以第p个mashup应用mp为标记的结点
Figure BDA0000381269110000068
和以第q个mashup应用mq为标记的结点
Figure BDA0000381269110000069
之间的任一条路径长度都大于预设的传递路径长度阈值L,则通过这些路径传递的第p个mashup应用mp和第q个mashup应用mq之间的内容相似度SP(mp,mq)=0。
步骤4中,定义当前需要判断是否向活动用户推荐的一个mashup应用为目标mashup应用mt,而目标mashup应用mt所在的聚类则定义为目标聚类Ct,然后采用基于项目的皮尔逊相关系数公式计算目标mashup应用mt和目标聚类Ct中的第j个mashup应用mj之间的评分相似度i_sim(mt,mj):
i _ sim ( m t , m j ) = Σ u i ∈ U t ∩ U j ( r u i , m t - r ‾ m t ) ( r u i , m j - r ‾ m j ) Σ u i ∈ U t ∩ U j ( r u i , m t - r ‾ m t ) 2 Σ u i ∈ U t ∩ U j ( r u i , m j - r ‾ m j ) 2 ,
其中,Ut是评分过目标mashup应用mt的用户集合,Uj是评分过第j个mashup应用mj的用户集合,ui∈Ut∩Uj表示第i个用户ui是既评分过mashup应用mt又评分过第j个mashup应用mj的用户之一,
Figure BDA0000381269110000072
是第i个用户ui对目标mashup应用mt的评分,
Figure BDA0000381269110000073
是第i个用户ui对第j个mashup应用mj的评分,是目标mashup应用mt得到的评分的平均值,
Figure BDA0000381269110000075
是第j个mashup应用mj得到的评分的平均值;
约束条件为:
mt∈Ct∧mj∈Ct
表明目标mashup应用mt和第j个mashup应用mj同时属于目标聚类Ct
步骤5中,使用以下约束条件选择目标mashup应用mt的邻居,并加入目标mashup应用mt的邻居集合N(mt):
N(mt)={mj|i_sim(mt,mj)>γ,mt≠mj},
其中,i_sim(mt,mj)是目标mashup应用mt和第j个mashup应用mj之间的评分相似度,γ是预设的相似阈值,0≤γ≤1。
步骤6中,对于活动用户ua而言使用以下公式计算目标mashup应用mt的预测评分值
Figure BDA0000381269110000076
P i ( r u a , m t ) = m ‾ t + Σ m j ∈ N ( m t ) ( r u a , m j - m ‾ j ) × i _ sim ( m t , m j ) Σ m j ∈ N ( m t ) | i _ sim ( m t , m j ) | ,
其中,
Figure BDA0000381269110000078
是目标mashup应用mt的平均评分,N(mt)是目标mashup应用mt的邻居集合,
Figure BDA0000381269110000079
是活动用户ua对第j个mashup应用mj的评分,i_sim(mt,mj)是目标mashup应用mt和第j个mashup应用mj之间的评分相似度。
实施例1
本实施例的技术构思在于提供一种快速的mashup应用推荐方案,该方案通过mashup应用之间所共同使用的应用程序接口(Application Programming Interface,API)和被mashup应用创建者所共同标注的标签信息衡量mashup应用之间的内容相似度,并基于mashup应用之间的内容相似度对mashup应用进行层次聚类,大大缩减了需要参与协同推荐的mashup应用数目,限制了mashup应用的相似邻居的范围,使mashup应用推荐系统在适应大数据环境下的实时计算的同时,保证了推荐的准确性。
本发明一个实施例提供的实现mashup应用推荐的方法,参见图1,包括:
步骤1,计算mashup应用之间的内容相似度:提取所有mashup应用的应用程序接口(Application Programming Interface,API)和标签信息,基于杰卡德相似系数(Jaccard Similarity Coefficient,JSC),得到任意两个mashup应用之间的API相似度和标签相似度,加权合成mashup应用之间的内容相似度;
步骤2,传递内容相似度:设每个mashup应用为一个结点,mashup应用之间的相似关系为结点之间的边,mashup应用之间的内容相似度为边的权值,所有mashup应用形成一个无向加权图,根据相似度传递规则匹配情况,采用不同的公式计算两个不直接相连但有路径相通的mashup应用之间被传递的内容相似度;
步骤3,聚类mashup应用:采用凝聚型层次聚类方法,首先将每个mashup应用看作一个聚类,迭代地将相似度最高的mashup应用聚为一类,直至所有mashup应用聚为一类;
步骤4,计算mashup应用之间的评分相似度:在两个mashup应用都属于同一个聚类的前提下,使用皮尔逊相关系数(Pearson Correlation Coefficient,PCC)方法计算mashup应用之间的评分相似度;
步骤5,选择邻居:设定一个相似阈值,若某个mashup应用与目标mashup应用的评分相似度超过相似阈值,则将其加入目标mashup应用的邻居集合;
步骤6,推荐mashup应用:根据目标mashup应用的邻居评分计算目标mashup应用的预测评分值,若该值超过预设的推荐阈值,则将目标mashup应用推荐给用户,否则不推荐。
实施例2
本实施例的基本内容来自从programmableweb网站(http://www.programmableweb.com/)爬取的mashup应用及其描述信息。
本实施例包括以下六个步骤:
(1)计算mashup应用之间的内容相似度
从programmableweb网站(http://www.programmableweb.com)收集了6,226个mashup应用及每个mashup应用所使用的API和被标注的标签信息。
表1
Figure BDA0000381269110000091
表1中列举了七个mashup应用,分别使用了若干API,并标注了若干标签。根据任两个mashup应用之间共同使用的API和共同被标注的标签,可以计算出他们之间的内容相似度。如第1个mashup应用m1和第2个mashup应用m2两个的API相似度为:
Figure BDA0000381269110000092
而第1个mashup应用m1和第2个mashup应用m2的标签相似度为:
Figure BDA0000381269110000093
标签相似度权值α为0.5,加权相加得到第1个mashup应用m1和第2个mashup应用m2之间的内容相似度: S C ( m 1 , m 2 ) = α × S T ( m 1 , m 2 ) + ( 1 - α ) × S A ( m 1 , m 2 ) = 0.5 × 1 + 0.5 × 1 7 = 0.57 .
类似地计算其余mashup应用之间的内容相似度,得到的结果如表2所示:
表2
Figure BDA0000381269110000096
(2)传递内容相似度
建立一个无向加权图,图中一个结点对应一个mashup应用并以相应的mashup应用为标记,若两个mashup应用之间内容相似度不为0,则在以这两个mashup应用为标记的结点之间加上一条边,而这两个mashup应用之间的内容相似度则作为边的权值。根据表2建立的无向加权图如图2所示。根据图2,按照相似度传递规则,使用相似度传递公式计算没有直接边相连的mashup应用之间的内容相似度。设置传递路径长度阈值L为4,则两个没有直接相连的mashup应用之间传递的内容相似度计算如下:
-从以第1个mashup应用m1为标记的结点
Figure BDA0000381269110000102
到以第4个mashup应用m4为标记的结点
Figure BDA0000381269110000103
之间仅有一条路径
Figure BDA0000381269110000104
且路径长度l符合传递规则1,因此第1个mashup应用m1和第4个mashup应用m4之间通过从结点到结点
Figure BDA0000381269110000107
的路径传递的内容相似度为0.053,计算公式为:SP(m1,m4)=MIN{SC(m1,m3),SC(m3,m4)}×β,其中
Figure BDA0000381269110000109
类似地计算其余只有一条路径相连的结点标记之间的内容相似度,得到:SP(m2,m3)=0.053,SP(m2,m4)=0.036,SP(m2,m5)=0.018,SP(m2,m6)=0.018。
-从以第1个mashup应用m1为标记的结点
Figure BDA00003812691100001010
到以第5个mashup应用m5为标记的结点
Figure BDA00003812691100001011
之间有两条长度小于L的路径
Figure BDA00003812691100001119
第1条路径长度 l 1 = ( V m 1 , V m 5 ) = 3 , 第2条路径长度
Figure BDA0000381269110000112
符合传递规则2,因此第1个mashup应用m1和第5个mashup应用m5之间通过从结点
Figure BDA0000381269110000113
到结点
Figure BDA0000381269110000114
的路径传递的内容相似度为0.027,计算方法为: S P ( m 1 , m 5 ) = S P 1 ( m 1 , m 5 ) + S P 2 ( m 1 , m 5 ) 2 , 其中,
S P 1 ( m 1 , m 5 ) = MIN { S C ( m 1 , m 3 ) , S C ( m 3 , m 4 ) , S C ( m 4 , m 5 ) } × β ,
β = L - l 1 ( V m 1 , V m 5 ) + 1 L = 2 4 ,
S P 2 ( m 1 , m 5 ) = MIN { S C ( m 1 , m 3 ) , S C ( m 3 , m 4 ) , S C ( m 4 , m 6 ) , S C ( m 6 , m 5 ) } × β ,
β = L - l 2 ( V m 1 , V m 5 ) + 1 L = 1 4 .
类似地计算其余有两条或两条以上路径相连的结点标记之间的内容相似度,得到:SP(m1,m6)=0.027,SP(m1,m7)=0.018,SP(m3,m5)=0.162,SP(m3,m6)=0.143,SP(m3,m7)=0.056,SP(m4,m7)=0.090。
-从以第2个mashup应用m2为标记的结点
Figure BDA00003812691100001110
到以第7个mashup应用m7为标记的结点
Figure BDA00003812691100001111
有三条路径
Figure BDA00003812691100001112
Figure BDA00003812691100001113
Figure BDA00003812691100001114
这三条路径的长度分别为 l 1 ( V m 2 , V m 7 ) = 5 , l 2 ( V m 2 , V m 7 ) = 5 , l 3 ( V m 2 , V m 7 ) = 6 , 都大于传递路径长度阈值L,符合传递规则3,因此SP(m2,m7)=0。
将实施例中的7个mashup应用之间的内容相似度及其传递的内容相似度都用s(mi,mj)表示,其值如表3所示。
表3
Figure BDA00003812691100001118
Figure BDA0000381269110000121
(3)聚类mashup应用
使用凝聚型层次聚类方法,将相似度高的mashup应用聚为一类。如表1中的7个mashup应用,经过层次聚类后,第1个mashup应用m1和第2个mashup应用m2聚为一类,而第3个mashup应用m3,第4个mashup应用m4,第5个mashup应用m5,第6个mashup应用m6,第7个mashup应用m7聚为一类。聚类结果如图3所示。
(4)计算mashup应用之间的评分相似度
表4是部分4个用户(u1,u2,u3,u4,)对7个mashup应用(m1,m2,m3,m4,m5,m6,m7)的评分,评分值从1~5,值越大表示用户越满意,而0分表示用户没有评价过该mashup应用。从表1中可以看出,第3个用户u3没有评价过第5个mashup应用m5,因此,在本实施例中,我们选择第3个用户u3为活动用户,选择第5个mashup应用m5为目标mashup应用,通过计算第5个mashup应用m5对于活动用户u3的预测评分值来判断该mashup应用是否值得推荐给活动用户u3
表4中的7个mashup应用分别属于2个聚类(C1和C2),因为目标mashup应用m5属于聚类C2,则目标聚类为C2。使用基于项目的皮尔逊相关系数方法计算目标聚类中的mashup应用之间的评分相似度,得到的结果如表5所示。
表4
Figure BDA0000381269110000122
表5
Figure BDA0000381269110000131
(5)选择邻居
若定义相似阈值γ=0.4,则目标mashup应用m5的邻居为第3个mashup应用m3,第4个mashup应用m4,和第7个mashup应用m7,即目标mashup应用m5的邻居集合N(m5)={m3,m4,m7}。
(6)推荐mashup应用
计算对于活动用户u3的目标mashup应用m5的预测评分值:
P i ( r u 3 , m 5 ) = m ‾ 5 + Σ m j ∈ N ( m 5 ) ( r u 3 , m j - m ‾ j ) × i _ sim ( m 5 , m j ) Σ m j ∈ N ( m t ) | i _ sim ( m 5 , m j ) | = 2.63 .
设推荐阈值为5分评分制的中值2.5,则预测评分为2.63的目标mashup应用m5可以被推荐给活动用户u3
此外,为验证本发明的实施效果,可设第3个用户u3已评价过的第3个mashup应用m3为目标mashup应用,计算其预测评分值,然后与真实用户评分值进行比较,预测评分值越接近真实评分值,表明方法越有效。表6是目标聚类C2中其他mashup应用与第3个mashup应用m3的评分相似度。
表6
Figure BDA0000381269110000133
同样定义相似阈值γ=0.4,则第3个mashup应用m3的邻居为第4个mashup应用m4,第5个mashup应用m5,和第7个mashup应用m7,即第3个mashup应用m3的邻居集合N(m3)={m4,m5,m7}。根据这些邻居的评分计算第3个mashup应用m3对于活动用户u3的预测评分值:
P i ( r u 3 , m 3 ) = m ‾ 3 + Σ m j ∈ N ( m 3 ) ( r u 3 , m j - m ‾ j ) × i sim ( m 5 , m j ) Σ m j ∈ N ( m t ) | i sim ( m 5 , m j ) | = 1.72
活动用户u3对于第3个mashup应用m3的真实评分值为2(见表4),预测评分值1.72相当接近真实评分值2,因此在本实施例中,本发明所述方法的实施效果较好。实际上,经过大规模实验,得到预测评分值与真实评分值的平均绝对误差(Mean Absolute Error,MEA)小于0.7,较之于传统的基于项目的协同过滤方法,MEA更小,但计算时间大大缩短。

Claims (8)

1.一种用于mashup应用推荐的协同过滤方法,其特征在于,包括以下步骤:
步骤1,计算mashup应用之间的内容相似度:提取目标网站上所有mashup应用的API接口和标签信息,计算任意两个mashup应用之间的API相似度和标签相似度,加权合成mashup应用之间的内容相似度;
步骤2,传递内容相似度:建立一个无向加权图,图中一个结点对应一个mashup应用并以相应的mashup应用为标记,若两个mashup应用之间内容相似度不为0,则在以这两个mashup应用为标记的结点之间加上一条边,而这两个mashup应用之间的内容相似度则作为该边的权值,然后根据相似度传递规则匹配情况,计算两个不直接相连但有路径相通的mashup应用之间被传递的内容相似度;
步骤3,聚类mashup应用:采用凝聚型层次聚类方法,将每个mashup应用看作一个聚类,迭代地将相似度最高的mashup应用聚为一类,直至所有mashup应用聚为一类;
步骤4,计算mashup应用之间的评分相似度:在两个mashup应用都属于同一个聚类的情况下,计算mashup应用之间的评分相似度;
步骤5,选择邻居mashup应用:设定一个相似阈值,若一个mashup应用与目标mashup应用的评分相似度超过相似阈值,则将其加入目标mashup应用的邻居集合;
步骤6,推荐mashup应用:根据目标mashup应用的邻居集合内的mashup应用评分计算目标mashup应用的预测评分值,根据用户对mashup应用的评分范围设定推荐阈值,若目标mashup应用的预测评分值大于等于推荐阈值,则将之推荐给用户,否则不推荐。
2.根据权利要求1所述的方法,其特征在于,步骤1中,采用杰卡德相似系数计算第i个mashup应用mi和第j个mashup应用mj的API相似度SA(mi,mj),计算公式为:
S A ( m i , m j ) = | A i ∩ A j | | A i ∪ A j | ,
其中,Ai为被第i个mashup应用mi所使用的API集合,Aj是被第j个mashup应用mj所使用的API集合。
3.根据权利要求2所述的方法,其特征在于,步骤1中,采用杰卡德相似系数计算mashup应用mi和mashup应用mj的标签相似度ST(mi,mj),计算公式为:
S T ( m i , m j ) = | T i ∩ T j | | T i ∪ T j | ,
其中,Ti是标注mashup应用mi的标签集合,Tj是标注mashup应用mj的标签集合。
4.根据权利要求3所述的方法,其特征在于,步骤1中,加权合成mashup应用mi和mashup应用mj之间的内容相似度SC(mi,mj),计算公式为:
SC(mi,mj)=α×ST(mi,mj)+(1-α)×SA(mi,mj),
其中,α是标签相似度权值,取值范围为0~1,(1-α)是API相似度权值。
5.根据权利要求1所述的方法,其特征在于,步骤2中根据相似度传递规则匹配情况,计算两个不直接相连但有路径相通的mashup应用之间被传递的内容相似度,包括以下三种情况:
情况1:如果以第p个mashup应用mp为标记的结点
Figure FDA0000381269100000022
和以第q个mashup应用mq为标记的结点
Figure FDA0000381269100000023
两个之间仅有一条路径相通,将该路径定义为结点序列集合
Figure FDA0000381269100000024
节点
Figure FDA0000381269100000025
Figure FDA0000381269100000026
都是结点
Figure FDA0000381269100000027
至结点
Figure FDA0000381269100000028
路径上的节点,如果该路径长度小于预设的传递路径长度阈值L(L>1),则通过该路径所传递的第p个mashup应用mp和第q个mashup应用mq之间的内容相似度SP(mp,mq)为:
SP(mp,mq)=MIN{SC(mp,mp+1),...,SC(mp+i,mp+i+1),...,SC(mq-1,mq)}×β,
其中,SC(mp,mp+1)是路径上直接相连的两个结点的标记mp和mp+1之间的内容相似度,SC(mp+i,mp+i+1)是路径上直接相连的两个结点的标记mp+i和mp+i+1之间的内容相似度,SC(mq-1,mq)是路径上直接相连的两个结点的标记mq-1和mq之间的内容相似度,MIN是取最小值函数,β是路径长度衰减因子,β的计算方法为:
β = L - l 1 ( V m p , V m q ) + 1 L ,
其中,
Figure FDA00003812691000000210
是以第p个mashup应用mp为标记的结点
Figure FDA00003812691000000211
和以第q个mashup应用mq为标记的结点
Figure FDA00003812691000000312
之间的路径长度;
情况2:如果以第p个mashup应用mp为标记的结点
Figure FDA0000381269100000031
和以第q个mashup应用mq为标记的结点
Figure FDA0000381269100000032
之间有n条路径相通(n>1),且每条路径长度都小于预设的传递路径长度阈值L,则其传递相似度SP(mp,mq)为:
S P ( m p , m q ) = Σ i = 1 n S P i ( m p , m q ) n ,
其中,
Figure FDA0000381269100000034
是通过第i条路径所传递的第p个mashup应用mp和第q和mashup应用mq之间的内容相似度,n表示路径条数;
情况3:如果以第p个mashup应用mp为标记的结点
Figure FDA0000381269100000035
和以第q个mashup应用mq为标记的结点之间的任一条路径长度都大于预设的传递路径长度阈值L,则通过这些路径传递的第p个mashup应用mp和第q个mashup应用mq之间的内容相似度SP(mp,mq)=0。
6.根据权利要求1所述的方法,其特征在于,步骤4中,定义当前需要判断是否向活动用户推荐的一个mashup应用为目标mashup应用mt,而目标mashup应用mt所在的聚类则定义为目标聚类Ct,然后采用基于项目的皮尔逊相关系数公式计算目标mashup应用mt和目标聚类Ct中的第j个mashup应用mj之间的评分相似度i_sim(mt,mj):
i _ sim ( m t , m j ) = Σ u i ∈ U t ∩ U j ( r u i , m t - r ‾ m t ) ( r u i , m j - r ‾ m j ) Σ u i ∈ U t ∩ U j ( r u i , m t - r ‾ m t ) 2 Σ u i ∈ U t ∩ U j ( r u i , m j - r ‾ m j ) 2 ,
其中,Ut是评分过目标mashup应用mt的用户集合,Uj是评分过第j个mashup应用mj的用户集合,
Figure FDA0000381269100000038
是用户ui对目标mashup应用mt的评分,
Figure FDA0000381269100000039
是用户ui对第j个mashup应用mj的评分,是目标mashup应用mt得到的评分的平均值,是第j个mashup应用mj得到的评分的平均值;
约束条件为:
mt∈Ct∧mj∈Ct
表明目标mashup应用mt和第j个mashup应用mj同时属于目标聚类Ct
7.根据权利要求6所述的方法,其特征在于,步骤5中,使用以下约束条件选择目标mashup应用mt的邻居,并加入目标mashup应用mt的邻居集合N(mt):
N(mt)={mj|i_sim(mt,mj)>γ,mt≠mj},
其中,i_sim(mt,mj)是目标mashup应用mt和第j个mashup应用mj之间的评分相似度,γ是预设的相似阈值,0≤γ≤1。
8.根据权利要求6所述的方法,其特征在于,步骤6中,对于活动用户ua而言使用以下公式计算目标mashup应用mt的预测评分值
Figure FDA0000381269100000041
P i ( r u a , m t ) = m ‾ t + Σ m j ∈ N ( m t ) ( r u a , m j - m ‾ j ) × i _ sim ( m t , m j ) Σ m j ∈ N ( m t ) | i _ sim ( m t , m j ) | ,
其中,
Figure FDA0000381269100000043
是目标mashup应用mt的平均评分,N(mt)是目标mashup应用mt的邻居集合,
Figure FDA0000381269100000044
是活动用户ua对第j个mashup应用mj的评分,i_sim(mt,mj)是目标mashup应用mt和第j个mashup应用mj之间的评分相似度。
CN2013104147937A 2013-09-12 2013-09-12 一种用于mashup应用推荐的协同过滤方法 Pending CN103473128A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2013104147937A CN103473128A (zh) 2013-09-12 2013-09-12 一种用于mashup应用推荐的协同过滤方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2013104147937A CN103473128A (zh) 2013-09-12 2013-09-12 一种用于mashup应用推荐的协同过滤方法

Publications (1)

Publication Number Publication Date
CN103473128A true CN103473128A (zh) 2013-12-25

Family

ID=49797997

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2013104147937A Pending CN103473128A (zh) 2013-09-12 2013-09-12 一种用于mashup应用推荐的协同过滤方法

Country Status (1)

Country Link
CN (1) CN103473128A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104794167A (zh) * 2015-03-27 2015-07-22 北京洋浦伟业科技发展有限公司 获取相似应用的方法及装置
CN105069003A (zh) * 2015-06-15 2015-11-18 北京工业大学 一种基于转发链相似度的用户关注对象推荐计算方法
CN106250391A (zh) * 2016-07-15 2016-12-21 浙江大学 一种基于服务聚合与功能信息的api推荐方法
CN106250502A (zh) * 2016-07-28 2016-12-21 五八同城信息技术有限公司 确定相似职位的方法及装置
CN107423396A (zh) * 2017-07-26 2017-12-01 中山大学 一种基于功能隐含关系及聚类的Mashup推荐方法
CN109948710A (zh) * 2019-03-21 2019-06-28 杭州电子科技大学 基于api相似度的微服务识别方法
CN110175291A (zh) * 2019-05-24 2019-08-27 武汉斗鱼网络科技有限公司 基于相似度计算的手游推荐方法、存储介质、设备及系统
CN110291541A (zh) * 2017-02-16 2019-09-27 国际商业机器公司 认知内容过滤
US10606658B2 (en) 2016-03-22 2020-03-31 International Business Machines Corporation Approach to recommending mashups

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7908278B2 (en) * 2008-02-07 2011-03-15 International Business Machines Corporation Recommendation system for assisting mashup developers at build-time
CN102331929A (zh) * 2011-06-27 2012-01-25 武汉大学 一种基于服务组合历史的服务分类和推荐方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7908278B2 (en) * 2008-02-07 2011-03-15 International Business Machines Corporation Recommendation system for assisting mashup developers at build-time
CN102331929A (zh) * 2011-06-27 2012-01-25 武汉大学 一种基于服务组合历史的服务分类和推荐方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
曹步清 等: "Mashup服务网络及其拓扑结构分析", 《湖南科技大学学报(自然科学版)》 *
胡福华 等: "基于相似度传递的协同过滤算法", 《计算机工程》 *
辛勤芳: "电子商务个性化推荐系统研究", 《中国优秀硕士学位论文全文数据库(信息科技辑)》 *
闫洲 等: "基于用户和项目组合的协同过滤推荐算法", 《电脑知识与技术》 *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104794167A (zh) * 2015-03-27 2015-07-22 北京洋浦伟业科技发展有限公司 获取相似应用的方法及装置
CN104794167B (zh) * 2015-03-27 2018-07-24 北京梆梆安全科技有限公司 获取相似应用的方法及装置
CN105069003A (zh) * 2015-06-15 2015-11-18 北京工业大学 一种基于转发链相似度的用户关注对象推荐计算方法
CN105069003B (zh) * 2015-06-15 2018-06-29 北京工业大学 一种基于转发链相似度的用户关注对象推荐计算方法
US10606658B2 (en) 2016-03-22 2020-03-31 International Business Machines Corporation Approach to recommending mashups
CN106250391B (zh) * 2016-07-15 2019-06-25 浙江大学 一种基于服务聚合与功能信息的api推荐方法
CN106250391A (zh) * 2016-07-15 2016-12-21 浙江大学 一种基于服务聚合与功能信息的api推荐方法
CN106250502A (zh) * 2016-07-28 2016-12-21 五八同城信息技术有限公司 确定相似职位的方法及装置
CN110291541A (zh) * 2017-02-16 2019-09-27 国际商业机器公司 认知内容过滤
CN107423396A (zh) * 2017-07-26 2017-12-01 中山大学 一种基于功能隐含关系及聚类的Mashup推荐方法
CN109948710A (zh) * 2019-03-21 2019-06-28 杭州电子科技大学 基于api相似度的微服务识别方法
CN110175291A (zh) * 2019-05-24 2019-08-27 武汉斗鱼网络科技有限公司 基于相似度计算的手游推荐方法、存储介质、设备及系统
CN110175291B (zh) * 2019-05-24 2021-09-07 武汉斗鱼网络科技有限公司 基于相似度计算的手游推荐方法、存储介质、设备及系统

Similar Documents

Publication Publication Date Title
CN103473128A (zh) 一种用于mashup应用推荐的协同过滤方法
CN102495864A (zh) 基于评分的协同过滤推荐方法及系统
CN102004774B (zh) 基于统一概率模型的个性化用户标签建模与推荐方法
CN103514304B (zh) 一种项目推荐方法和装置
CN103678431A (zh) 一种基于标准标签和项目评分的推荐方法
CN103544623A (zh) 一种基于用户偏好特征建模的Web 服务推荐方法
CN103761254B (zh) 多领域服务主题匹配推荐方法
CN104933622A (zh) 一种基于用户和微博主题的微博流行度预测方法及系统
CN105893609A (zh) 一种基于加权混合的移动app推荐方法
CN105893406A (zh) 群体用户画像方法及系统
CN104834686A (zh) 一种基于混合语义矩阵的视频推荐方法
CN103995839A (zh) 基于协同过滤的商品推荐优化方法和系统
CN104935963A (zh) 一种基于时序数据挖掘的视频推荐方法
CN109933699A (zh) 一种学术画像模型的构建方法及装置
CN105447193A (zh) 一种基于机器学习和协同过滤的音乐推荐系统
Liang et al. Courseware recommendation in e-learning system
CN103617146B (zh) 一种基于硬件资源消耗的机器学习方法及装置
CN107045533A (zh) 基于标签的教育资源推荐方法及系统
Zhong et al. Design of a personalized recommendation system for learning resources based on collaborative filtering
CN110334278A (zh) 一种基于改进深度学习的web服务推荐方法
CN104199836A (zh) 一种基于子兴趣划分的标注用户模型建构方法
CN103942298A (zh) 基于线性回归的推荐方法及系统
CN103903163A (zh) 一种基于耦合主题模型的协同滤波方法
Ren et al. Api: An index for quantifying a scholar’s academic potential
CN104778205A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20131225