一种基于随机游走的服务和标签推荐方法

文档序号:6371842阅读:205来源:国知局
专利名称:一种基于随机游走的服务和标签推荐方法
技术领域
本发明属于服务计算技术领域,涉及基于语义扩充及随机游走的服务和标签推荐。
背景技术
社会化标注起初是作为一种提供个人用户对于查询控制的一种方法出现的。它允许个人用户使用自己的语言——带有个人理解的标签——来组织和获取信息。当把这些标签提供给其他个体时,标签的价值就从个体扩展到了团体,不但可以重新找到你标注的内 容,而且可以探索那些标注的类似的内容。所以标注从一种个人使用的工具发展到内容发现。大众标注存在标签滥用,标准缺乏,信息检索效率低的问题,用户之间难以理解对方的标签,系统不能为用户提供同义词词典,标签语义模糊,逻辑关系不明确,标签缺乏次序等缺点。但是由于其作为一种普通用户为网络资源提供元数据的方式,在网络上得到了广泛的使用。语义查询目的是为了通过了解搜索用户的目的以及搜索关键字的上下文意思来更好的提高搜索精度。对于语义查询,主要有扩充关键词实现语义查询,概念定位,复杂限制条件查询,问题解答,语义连接路径发现等。现在主流的搜索引擎如google,将某些语义查询进行融合。语义查询的结果是根据语义相关度大小从大到小给出搜索结果,而不是用类似googlePageRank算法来预测相关度。由于web2. 0时代主要关注数据的呈现和与人的交互,没有很好利用数据的内部结构,要实现对Mashup的智能搜索,需要对信息进行重组。Mashup是指将多个API服务加在一起,形成一个整合应用。标签作为一种新的资源描述方式,人们可以通过对资源使用各种标签标注实现对信息资源的归类整理。标签系统使得普通用户可以提供半结构化的元数据,以较好的完成智能搜索。但尚未出现将标签应用于Mashup技术的技术方案。

发明内容
本发明主要是针对随着服务数量的不断增多,服务搜索过程没有很好利用数据的内部结构、服务注册过程中标签标注的随意性等问题,提出一种基于随机游走的服务和标签推荐方法。本发明的技术方案为一种基于随机游走的服务及标签推荐方法,基于元信息数据进行Mashup服务推荐和标签推荐,所述元信息数据包括Mashup服务和API服务的元信息,Mashup服务的元信息包括Mashup文档集合,API服务的元信息包括API服务的标签;所述进行Mashup服务推荐,包括以下子步骤,步骤Al,根据元信息数据,建立标签与Mashup服务的关联网并记为TMAN,其中,节点代表标签或Mashup服务,边代表标签与Mashup服务之间的关联关系;步骤A2,根据步骤Al所得关联网TMAN,转化得到标签之间的共现网TTN1,如果两个标签在关联网TMAN中共用了一个Mashup服务,那么两个标签分别对应的节点之间存在一条边;步骤A3,输入待查询的标签t,在关联网TMAN上查找标签t对应的所有Mashup服务;步骤A4,计算标签t对应的所有Mashup服务分别的相关性分数,并给标签t对应的所有Mashup服务进行降序排序,按排列结果推荐给用户;相关性分数的计算公式如下,S(Xi) = - T i+l/rij其中,s (Xi)为关联网TMAN中与标签t对应的某个Mashup服务Xi的相关性分数,Iii代表Mashup服务Xi的标签数目,T i表示标签t在Mashup服务Xi的标签序列中的位置;所述Mashup服务Xi的标签序列,是根据在共现网TTNl上的随机游走,计算Mashup服务Xi的Hi个标签分别的分数并进行降序排列得到的结果;所述进行标签推荐,包括以下子步骤,步骤BI,根据元信息数据,构建标签与API服务的关联网并记为TAN,其中,节点代表标签或API服务,边代表标签与API服务之间的关联关系;步骤B2,根据步骤BI所得关联网TAN,转化得到标签之间的共现网TTN2,如果两个标签在关联网TAN中共用了一个API服务,那么两个标签分别对应的节点之间存在一条边; 步骤B3,根据元信息数据,通过计算API描述文档夹角余弦值,得到两个API描述文档的相似性;步骤B4,构建API服务的拓扑图,节点代表API服务,节点之间的边上权值为步骤B3所得两个API描述文档的相似性,根据拓扑图得到某个输入的API服务描述文本最近的K个邻居节点,K为预设参数;步骤B5,将步骤B4所得K个邻居节点分别的标签序列最前面的m个标签进行合并,m为预设参数;每个邻居节点的标签序列,是根据在共现网TTN2上的随机游走,计算邻居节点的相应Mashup服务的所有标签分别的分数并进行降序排列得到的结果;步骤B6,将从步骤B5中所得mXK个标签的合并结果,放入列表q中,按列表q中的各标签的分数及出现频率进行降序排列,按排列结果推荐给用户。而且,步骤A4和步骤B5中计算标签的分数实现方式如下,迭代计算标签所在节点j的分数Sk (j)直到满足预设的结束条件,计算公式为sk (j) = Y E Ph ⑴ Pij+(I-Y )1 其中,0〈i,j彡N',当前迭代次数k=l,2…,N'表示共现网中节点集中节点总数,
是共现网的邻接矩阵,Pij代表从共现网中的节点i到节点j的转移概率,所述
Lan in
转移概率为节点i和j之间的权值Wu除以节点i和与节点i直接相邻的所有节点Win之间的权值之和,n为节点i的邻居节点的总数,设以节点i为起点在共现网上进行随机游走,Y是预设的游走到邻居节点的概率,I-Y是游走到共现网中其他任一节点概率,是预设的节点i初始概率分布;步骤A4中,共现网为TTNl ;步骤B5中,共现网为TTN2。而且,步骤A4给标签t对应的所有Mashup服务进行排序时,若存在具有相同相关性分数的Mashup服务,采用互熵进行降序排序。
而且,步骤A3中,若输入的待查询的词不是元信息数据中的标签,采用wordNet进行同义词的扩充,直到找到和这个词相关的系统中的标签,作为待查询的标签t。而且,预设给定阈值k,若在关联网TMAN上查找所得标签t对应的所有Mashup服务的总数小于给定阈值k,根据基于Mashup服务之间的共现网MMN,采用TopKDijkastra算法查找扩充标签t对应的Mashup服务,然后执行步骤A4,否则直接执行步骤A4 ;所述共现网MMN,是根据元信息数据构建的Mashup服务之间的共现网,当两个Mashup服务之间的语义相关度大于0时相应节点之间有一条边,Mashup服务之间的语义相关度由三部分的加权和构成,三个部分分别为描述文本的距离函数、由共用API服务产生的相似度和由共用标签产生的相似度,第一部分为描述文本夹角余弦值,后两个部分的相似度通过Jacard相似度系数计算;
所述TopKDijkastra算法包括以下子步骤, 步骤A3. 1,在共现网TTNl上查找所得标签t关联的所有Mashup服务,作为初始的集合S,将集合S中Mashup服务的标记currentDistance都标记为0,其余标记为无穷大;步骤A3. 2,如果集合S中的Mashup服务数目小于给定阈值k,计算集合S中的所有Mashup服务在共现网MMN的邻居节点到集合S的最短距离,并将此距离赋值给标记currentDistance,进入步骤A3. 3,否则算法结束,返回集合S ;步骤A3. 3,将大于0且最小的标记currentDistance对应的Mashup服务加入到集合S中,并将该Mashup服务的标记currentDistance设置为0,返回步骤A3. 2,直到算法结束。而且,共现网TTN1、TTN2的边上权值通过Jacard相似度系数计算.。本发明通过在Mashup语义网上进行对查询结果的扩充来达到对结果集的查询,并且通过tag随机游走的方式来对Mashup结果集排序呈现给用户,同时根据标签和对应API服务之间的相关性对标签自动进行排序,进行API服务的标签推荐。具有如下优点
I.利用Mashup语义扩充和随机游走的方法提升了 Mashup服务的查询准确率;2.利用随机游走的方法进行标签推荐,过滤掉一些和API服务不直接相关的标签,提高了标签推荐的准确率。


图I是本发明实施例的关联网TAN与共现网TTN2的转化示意图。
具体实施例方式以下结合附图和实施例详细说明本发明技术方案。实施例是基于ProgrammableWeb, Programmableffeb 是著名的 Mashup 和开放 API服务目录,到2011年2月止已罗列了 6,000多个Mashup和4,000多个API服务,并提供了Mashup和API服务的一些注册信息,包括它们的名字、URL、提供者、标签等。Mashup是由API服务组合得到的,API是服务,因此符合本发明对数据的要求。以ProgrammableWeb上的数据为载体,可以根据用户需要提供Mashup服务推荐和标签推荐。元信息数据包括Mashup服务和API服务的元信息,Mashup服务的元信息包括Mashup文档集合,API服务的元信息包括API服务的标签。具体实施时,可以通过手工方式或开发专门的网络爬虫尽可能多的从网上收集Mashup和API的元信息,包括API的名称、API的id、API描述信息、API的标签、Mashup的名称、Mashup描述信息、Mashup使用的API服务集合、Mashup的标签、Mashup注册的时间、Mashup的开发者、Mashup的地址等,根据数据特点做必要的处理,尽量减少数据中的错误,并将这些处理后的数据存于本地数据库。实施例使用网爬工具将ProgrammableWeb上从2005年(建站时)到2010年I月12日所有Mashup应用的名称、描述信息、API和标签信息爬了下来,存储在本地数据库中。Programmableffeb上的数据都是由用户提交的,存在一定的随意性,数据存在一些错误
(I)有些Mashup存在重复注册现象,一些Mashup虽然它们名称不一样,但是它们的其它信息都一样。对于这些Mashup在数据集中只保存一份。(2)有些Mashup仅提供了名称,但是其它的注册信息缺失。这些Mashup将不作为实验数据。同时,用于标识Mashup的标签也存在不一致,同一种含义的标签有多种不同的表现形式,如“api”、“Api”和“APIs”都表示API,但是形式不同,有些标签甚至拼写错误。使用现有技术中的Suffix StrippingAlgorithm (后缀剥离算法)对标签进行预处理,并转化成同一词性,可以尽量消除存在的不 一致性。最终,数据集包含4,505个Mashup,4, 506个API和I, 806个标签。实施例进行Mashup服务推荐,包括以下子步骤,步骤Al,根据元信息数据,建立标签与Mashup服务的关联网并记为TMAN,其中,节点代表标签或Mashup服务,边代表标签与Mashup服务之间的关联关系。步骤A2,根据步骤Al所得关联网TMAN,转化得到标签之间的共现网TTN1,如果两个标签在关联网TMAN中共用了一个Mashup服务,那么两个标签分别对应的节点之间存在一条边。TTNl= (NI, El, Wl)共现网TTNl是一个无向加权网,每个标签是共现网TTNl中的一个节点,NI是共现网TTNl中所有标签构成的节点集,边上权值通过Jacard相似度系数计算,计算方式为标签之间的相似度在数值上等于由Mashup服务的交集的秩与API并集的秩的比值;E1是共现网TTNl中所有边构成的集合,Wl是存储共现网TTNl中每条边上权值的矩阵,矩阵Wl中的元素&标识节点i与节点j之间的权值。步骤A3,输入待查询的标签t,在关联网TMAN上查找标签t对应的所有Mashup服务。考虑到用户输入的词可能不是已有的标签,本发明进一步提出步骤A3中,若输入的待查询的词不是元信息数据中的标签,采用wordNet进行同义词的扩充,直到找到和这个词相关的系统中的标签,作为待查询的标签t。为了保证推荐服务的数量,还可以预设给定阈值k,若在关联网TMAN上查找所得标签t对应的所有Mashup服务的总数小于给定阈值k,根据基于Mashup服务之间的共现网MMN,采用TopKDijkastra算法查找扩充标签t对应的Mashup服务,然后执行步骤A4,否则直接执行步骤A4。例如,设定阈值为5,输入查询词vizualization,得到一个Mashup服务oddflower,此时结果数小于阈值5,再进行Mashup语义扩充查询返回4个Mashup服务:Eye Search、Search Mashup、TaggrouncU iPhone People Search。所述共现网MMN,是根据元信息数据构建的Mashup服务之间的共现网,当两个Mashup服务之间的语义相关度大于0时相应节点之间有一条边,
Mashup服务之间的语义相关度由三部分的加权和构成,三个部分分别为描述文本的距离函数、由共用API服务产生的相似度和由共用标签产生的相似度,第一部分为描述文本夹角余弦值,后两个部分的相似度通过Jacard相似度系数计算。即共用API服务产生的相似度由API服务产生的相似度在数值上等于由API服务的交集的秩与API服务并集的秩的比值;由共用标签产生的相似度在数值上等于由标签的交集的秩与标签并集的秩的比值。所述TopKDijkastra算法是通过对Dijkastra算法进行修改得到的,包括以下子步骤步骤A3. 1,在共现网TTNl上查找所得标签t关联的所有Mashup服务,作为初始的集合S,将集合S中Mashup服务的标记currentDistance都标记为0,其余标记为无穷大;步骤A3. 2,如果集合S中的Mashup服务数目小于给定阈值k,计算集合S中的所有Mashup服务在共现网MMN的邻居节点到集合S的最短距离,并将此距离赋值给标记currentDistance,进入步骤A3. 3,否则算法结束,返回集合S ;
步骤A3. 3,将大于0且最小的标记currentDistance对应的Mashup服务加入到集合S中,并将该Mashup服务的标记currentDistance设置为0,返回步骤A3. 2,直到算法结束。步骤A4,计算标签t对应的所有Mashup服务分别的相关性分数,给标签t对应的所有Mashup服务进行降序排序,按排列结果推荐给用户;相关性分数的计算公式如下,S(Xi) = - T i+l/rij其中,s (Xi)为关联网TMAN中与标签t对应的某个Mashup服务Xi的相关性分数,Iii代表Mashup服务Xi的标签数目,T i表示标签t在Mashup服务Xi的标签序列中的位置;所述Mashup服务Xi的标签序列,是根据在共现网TTNl上的随机游走,计算Mashup服务Xi的Hi个标签分别的分数并进行降序排列得到的结果。对给标签t对应的所有Mashup服务按相关性分数进行排序时,若存在具有相同相关性分数的Mashup服务,这些相同相关性分数的Mashup服务采用互熵进行降序排序。互熵计算为现有技术,可对于标签t对应的所有Mashup服务的Mashup文档集合中标签t的词频分布,和标签t对应的某个Mashup服务的Mashup文档中标签t的词频分布进行计算互熵。例如,给定阈值5,输入查询词email,搜索结果中的Mashup服务AOL Mail onNetvibes, AOLMail for Facebook, EasyMsg, Flickr Image Mail, Hulka Mail Search,Notifyr, Outlook Plugin for Box. net, usend. io,这八个 Mashup 服务的相关性分数相同,用互熵来进行排序之后的顺序如下A0L Mail on Netvibes, AOLMail for Facebook,usend. io, Flickr Image Mail, EasyMsg, Hulka Mail Search, Outlook Plugin for Box.net, Notifyr。本步骤计算标签的分数实现方式如下,迭代计算标签所在节点j的分数Sk (j)直到满足预设的结束条件,计算公式为sk (j) = Y E Ph ⑴ Pij+(I-Y )1 其中,0〈i,j彡N',当前迭代次数k=l,2…,N'表示共现网TTNl中节点集中节点
总数,Py = Y ",是共现网TTNl的邻接矩阵,Pij代表从共现网TTNl中的节点i到节点j
乙n m的转移概率,所述转移概率为节点i和j之间的权值wu除以节点i和与节点i直接相邻的所有节点Win之间的权值之和,n为节点i的邻居节点的总数,设以节点i为起点在共现网TTNl上进行随机游走,Y是预设的游走到邻居节点的概率,I-Y是游走到共现网TTNl中其他任一节点概率,Inj是预设的节点i初始概率分布,可设为TTNl中节点数目的倒数。例如,API 服务 Tribe HR 有 6 个标签sbweb、jobs、hrms、HR、enterprise、hris,他们初始概率mj为1/6,经过随机游走之后各标签节点分数为0. 0896,0. 0903,0. 1185,0. 0985,0. 0892、0. 1185。具体实施时,迭代的结束条件可由本领域技术人员自行根据需要设定,例如设为是否达到预设最大迭代次数,或者本次与上一次迭代所得分数的差值是否达到预设阈值。所述进行标签推荐,包括以下子步骤,步骤BI,根据元信息数据,构建标签与API服务的关联网并记为TAN (Tag-APINetwork, TAN)。其中,节点代表标签或API服务,边代表标签与API服务之间的关联关系。如图 I,节点代表 tag (包括 climate、weather、europe、mapping、Australia)和 API 服务(包括 weatherBug GEO、Navlost NWX Weather> Australian Burean of Meteorology),边代表他们之间的关联关系。步骤B2,根据步骤BI所得关联网TAN,转化得到标签之间的共现网TTN2(tag_tagNetwork〗),如果两个标签在关联网TAN中共用了一个API服务,那么两个标签分别对应的节点之间存在一条边。与共现网TTNl类似,共现网TTN2中,节点i和j之间的权值Wij同样也采用相似度,可通过Jacard相似度系数计算,如图I中标注的值I、1/2、1/3等。步骤B3,根据元信息数据,通过计算API描述文档夹角余弦值,得到两个API描述文档的相似性。实施例采用以下现有计算公式Sim(DP.Dl) = co<0) =’其中 Di 表示文档 i,Dj 表示文档 j,0 表示 Di和Dj之间的夹角。步骤B4,构建API服务的拓扑图,节点代表API服务,节点之间的边上权值为步骤B3所得两个API描述文档的相似性,根据拓扑图得到某个输入的API服务描述文本最近的K个邻居节点。K为预设参数。步骤B5,将步骤B4所得K个邻居节点分别的标签序列最前面的m个标签进行合并,m为预设参数;每个邻居节点的标签序列,是根据在共现网TTN2上的随机游走,计算邻居节点的相应Mashup服务的所有标签分别的分数并进行降序排列得到的结果。本步骤的实现与步骤A4 一致迭代计算标签所在节点j的分数Sk (j)直到满足预设的结束条件,计算公式为
权利要求
1.一种基于随机游走的服务及标签推荐方法,其特征在于基于元信息数据进行Mashup服务推荐和标签推荐,所述元信息数据包括Mashup服务和API服务的元信息,Mashup服务的元信息包括Mashup文档集合,API服务的元信息包括API服务的标签; 所述进行Mashup服务推荐,包括以下子步骤, 步骤Al,根据元信息数据,建立标签与Mashup服务的关联网并记为TMAN,其中,节点代表标签或Mashup服务,边代表标签与Mashup服务之间的关联关系; 步骤A2,根据步骤Al所得关联网TMAN,转化得到标签之间的共现网TTN1,如果两个标签在关联网TMAN中共用了一个Mashup服务,那么两个标签分别对应的节点之间存在一条边; 步骤A3,输入待查询的标签t,在关联网TMAN上查找标签t对应的所有Mashup服务;步骤A4,计算标签t对应的所有Mashup服务分别的相关性分数,并给标签t对应的所有Mashup服务进行降序排序,按排列结果推荐给用户;相关性分数的计算公式如下, S(Xi) = - T j+1/rii 其中,s (Xi)为关联网TMAN中与标签t对应的某个Mashup服务Xi的相关性分数,Iii代表Mashup服务Xi的标签数目,Ti表示标签t在Mashup服务Xi的标签序列中的位置;所述Mashup服务Xi的标签序列,是根据在共现网TTNl上的随机游走,计算Mashup服务Xi的Hi个标签分别的分数并进行降序排列得到的结果; 所述进行标签推荐,包括以下子步骤, 步骤BI,根据元信息数据,构建标签与API服务的关联网并记为TAN,其中,节点代表标签或API服务,边代表标签与API服务之间的关联关系; 步骤B2,根据步骤BI所得关联网TAN,转化得到标签之间的共现网TTN2,如果两个标签在关联网TAN中共用了一个API服务,那么两个标签分别对应的节点之间存在一条边;步骤B3,根据元信息数据,通过计算API描述文档夹角余弦值,得到两个API描述文档的相似性; 步骤B4,构建API服务的拓扑图,节点代表API服务,节点之间的边上权值为步骤B3所得两个API描述文档的相似性,根据拓扑图得到某个输入的API服务描述文本最近的K个邻居节点,K为预设参数; 步骤B5,将步骤B4所得K个邻居节点分别的标签序列最前面的m个标签进行合并,m为预设参数;每个邻居节点的标签序列,是根据在共现网TTN2上的随机游走,计算邻居节点的相应Mashup服务的所有标签分别的分数并进行降序排列得到的结果; 步骤B6,将从步骤B5中所得mXK个标签的合并结果,放入列表q中,按列表q中的各标签的分数及出现频率进行降序排列,按排列结果推荐给用户。
2.如权利要求I所述基于随机游走的服务及标签推荐方法,其特征在于步骤A4和步骤B5中计算标签的分数实现方式如下, 迭代计算标签所在节点j的分数sk (j)直到满足预设的结束条件,计算公式为 Sk (j) =YE(I)Pij+(I-y )mj 其中,0〈i,j≤N',当前迭代次数k=l,2…,N'表示共现网中节点集中节点总数,
3.如权利要求I所述基于随机游走的服务及标签推荐方法,其特征在于步骤A4给标签t对应的所有Mashup服务进行排序时,若存在具有相同相关性分数的Mashup服务,采用互熵进行降序排序。
4.如权利要求I所述基于随机游走的服务及标签推荐方法,其特征在于步骤A3中,若输入的待查询的词不是元信息数据中的标签,采用wordNet进行同义词的扩充,直到找到和这个词相关的系统中的标签,作为待查询的标签t。
5.如权利要求I所述基于随机游走的服务及标签推荐方法,其特征在于预设给定阈值k,若在关联网TMAN上查找所得标签t对应的所有Mashup服务的总数小于给定阈值k,根据基于Mashup服务之间的共现网MMN,采用TopKDijkastra算法查找扩充标签t对应的Mashup服务,然后执行步骤A4,否则直接执行步骤A4 ; 所述共现网MMN,是根据元信息数据构建的Mashup服务之间的共现网,当两个Mashup服务之间的语义相关度大于0时相应节点之间有一条边, Mashup服务之间的语义相关度由三部分的加权和构成,三个部分分别为描述文本的距离函数、由共用API服务产生的相似度和由共用标签产生的相似度,第一部分为描述文本夹角余弦值,后两个部分的相似度通过Jacard相似度系数计算; 所述TopKDijkastra算法包括以下子步骤, 步骤A3. 1,在共现网TTNl上查找所得标签t关联的所有Mashup服务,作为初始的集合S,将集合S中Mashup服务的标记currentDistance都标记为0,其余标记为无穷大; 步骤A3. 2,如果集合S中的Mashup服务数目小于给定阈值k,计算集合S中的所有Mashup服务在共现网MMN的邻居节点到集合S的最短距离,并将此距离赋值给标记currentDistance,进入步骤A3. 3,否则算法结束,返回集合S ; 步骤A3. 3,将大于0且最小的标记currentDistance对应的Mashup服务加入到集合S中,并将该Mashup服务的标记currentDistance设置为0,返回步骤A3. 2,直到算法结束。
6.如权利要求I或2或3或4或5所述基于随机游走的服务及标签推荐方法,其特征在于共现网TTN1、TTN2的边上权值通过Jacard相似度系数计算.。
全文摘要
本发明属于服务计算技术领域,涉及一种基于随机游走的服务及标签推荐方法,包括服务推荐步骤以及标签推荐步骤,服务推荐步骤包括搜集Mashup服务和API服务的信息,用关联网抽象它们之间的关系,在标签之间的共现网上进行随机游走之后给每个标签列表排序,再利用标签和Mashup服务之间的关联关系以及Mashup语义扩充的方法对Mashup服务进行推荐。标签推荐步骤包括利用API服务描述文本的相似性找最近邻,再随机游走标签排序的方法进行API服务的标签推荐。本发明提高了服务查找结果的精确性,解决了标签随意性问题。
文档编号G06F17/30GK102750375SQ201210206198
公开日2012年10月24日 申请日期2012年6月21日 优先权日2012年6月21日
发明者李兵, 沈水晶, 黄媛 申请人:武汉大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1