一种基于异质信息网络元路径的API推荐方法

文档序号:30583028发布日期:2022-06-29 13:30阅读:75来源:国知局
一种基于异质信息网络元路径的API推荐方法
一种基于异质信息网络元路径的api推荐方法
技术领域
1.本发明涉及服务计算以及数据分析领域,具体是一种异质信息网络元路径的api(application programming interface,应用程序接口)推荐方法。


背景技术:

2.web api即网络应用程序接口,包含了广泛的功能,网络应用通过api接口,可以实现存储服务、消息服务、计算服务、信息服务、搜索服务等能力,利用这些能力可以开发出强大功能的web应用。尽管网络上存在很多优秀的api,但是面对信息社会的快速发展和大量附加要求的出现,单一api的功能己越来越无法应对复杂的业务需求。因此,通过将不同api混搭在一起创建新应用的开发模式,受到了开发者乃至普通web 2.0用户的广泛欢迎。这种由api混搭产生的应用称为mashup。
3.尽管基于mashup的应用开发已经十分流行。但是想要在大规模的、包含形形色色各种功能的api数据库中,快速地发现和选择适合mashup需求的api,仍然是具有挑战性的难题。除此之外,由于大多数api是使用纯文本或html而非结构化语言来描述的,这进一步增加了自动的api发现难度。传统的推荐方法没有学习描述api和mashup之间关系的推荐方法中元路径的显式表示,且将辅助信息描述为孤立的特征而不是完整的语义信息,因此推荐性能仍有待进一步提高。


技术实现要素:

4.本发明的目的是提供一种基于异质信息网络元路径的api推荐方法,用以克服现有技术中存在的问题。
5.为了实现上述任务,本发明采用以下技术方案:
6.一种基于异质信息网络元路径的api推荐方法,包括:
7.获取api及其mashup应用的描述信息,构建围绕api的异质信息网络;
8.生成api与mashup的初始低维嵌入;
9.生成基于api与mashup交互的上下文元路径嵌入;
10.融合api与mashup的初始低维嵌入和基于api与mashup交互的上下文元路径嵌入,训练神经网络模型,实现api推荐。
11.进一步地,所述api及其mashup应用的描述信息,包括api名称、api类别、api提供者、mashup名称、mashup与api调用关系,合并得到名为pw的数据集;将mashup和api的调用关系视为两者的交互,围绕pw数据集中的mashup、api交互,构建mashup-api二部;选取类别、提供者作为二部图的补充信息构建api异质信息网络,所述api异质信息网络包括四种类型的对象和四种类型的关系,其中四种类型的对象也称为四类节点,包括mashup、api、类别、提供商;四种类型的关系包括mashup与api的关系m-a、api与提供商的关系a-p、mashup与类别的关系m-c、api与类别的关系a-c;
12.所述异质信息网络中,当在api异质信息网络进行元路径采样时,包含具体节点信
息的元路径称为路径实例。
13.进一步地,所述生成api与mashup的初始低维嵌入,包括:
14.分别通过两个线性变换层对mashup和api的嵌入进行随机初始化,输入mashup和api的one-hot向量um、va,得到其映射后的初始低维嵌入em、ea,公式如下:
15.em=wm·
um16.ea=wa·
va17.其中wm∈rm×d和wa∈ra×d为随机初始化的特征矩阵,m和a分别为用户和api的个数,d是mashup和api的嵌入维度,r表示实数集。
18.进一步地,所述生成基于api与mashup交互的上下文元路径嵌入,包括:
19.通过图表示学习框架预训练,获得初始节点表达;
20.根据选定的元路径,对路径实例进行采样,并生成元路径嵌入;
21.通过注意力机制按不同权重参数合并元路径嵌入,获得元路径的注意力分布值;
22.通对元路径的注意力分布值进行归一化计算,得到不同元路径n对api与mashup交互作用的贡献,最后通过权重求和方法根据权重贡献融合元路径上下文信息,得到基于元路径的上下文嵌入表示。
23.进一步地,所述通过图表示学习框架预训练,获得初始节点表达,包括:
24.通过将api异质信息网络中的节点与节点之间的连接关系输入图表示学习框架进行预训练,最后得到节点的预训练向量;在每一轮训练过程中,通过输入任意两个节点x,y和通过正则化处理后的节点x,y间的关系向量r的三个one-hot编码向量,分别经过线性变换层的特征矩阵映射得到三个初始低维嵌入;当获得所述三个初始低维嵌入后,对三个向量运用一个hadamard函数,对乘积再运用一个线性激活函数,最后输出层对乘积求和后的值进行一个sigmoid非线性转换,最后输出两个节点x,y经过预训练后的特征表达,为api异质信息网络的节点预训练向量。
25.进一步地,所述根据选定的元路径,对路径实例进行采样,并生成元路径嵌入,包括:
26.在api异质信息网络中进行随机游走,采样得到所有固定长度的路径实例;根据mashup、api节点进行路径实例的选取,当路径的两个端点为指定的mashup和api时,选择同样包含这两个端点的所有路径实例作为当前m-a交互元路径的采样实例集合;
27.对采样实例集合中的mashup或api节点进行相似度计算、排序,选择l条路径实例;
28.将指定交互m-a下元路径的l条路径实例分别进行合并,得到元路径嵌入。
29.进一步地,所述通过注意力机制按不同权重参数合并元路径嵌入,获得注意力分布值,包括:
30.基于mashup、api的初始低维嵌入em、ea,结合元路径嵌入通过两层线性结构构建注意力模型结构,获得元路径的注意力分布值公式如下:
[0031][0032][0033]
其中,表示两层注意力模型结构得到的注意力分布值,w1∈r
3d
×v,
w2∈rv×1是随机初始化的特征矩阵,d为em、ea、三个输入向量维度之和,v是向量的维度,leakyrelu(
·
)是激活函数。
[0034]
进一步地,所述融合api与mashup的初始低维嵌入和基于api与mashup交互m-a的上下文元路径嵌入,训练模型,实现api推荐,包括:
[0035]
给定mashup和api之间的交互,合并操作定义如下:
[0036][0037]
其中是连接操作,e
p
是基于元路径的上下文嵌入表示,em和ea分别是mashup和api的初始低维嵌入;
[0038]
然后将合并后的向量x
m,a
输入到mlp组件中以实现非线性变换来模拟mashup和api之间的复杂交互,进行模型训练,最后得到mashup和api之间的交互得分利用损失函数j
m,a
来优化模型,在模型训练完成后,固定模型参数,对用户进行api推荐。
[0039]
一种终端设备,包括处理器、存储器以及存储在所述存储器中的计算机程序;处理器执行计算机程序时,实现所述基于异质信息网络元路径的api推荐方法步骤。
[0040]
一种计算机可读存储介质,所述介质中存储有计算机程序;计算机程序被处理器执行时,实现所述基于异质信息网络元路径的api推荐方法的步骤。
[0041]
与现有技术相比,本发明具有以下技术特点:
[0042]
1.可以构建api异质信息网络;2.可以利用图预训练模型融入节点间的关系,获得异质信息网络中的节点表示;3.引入api异质信息网络中的元路径,定义用户创建api应用时,对api选择的不同偏好;4.利用注意力模块区分元路径中用户不同偏好的力度;5.利用元路径的显式表示,将辅助信息在一个统一的空间下进行表征利,进行api、mashup以及用户的不同偏好进行非线性评分预测建模。
附图说明
[0043]
图1为本发明的方法流程图;
[0044]
图2为api异质信息网络的示例图;
[0045]
图3为本发明中基于相似性对路径实例进行选择的示例图。
具体实施方式
[0046]
下面结合附图进一步详细描述本发明的技术方案,有必要在此指出的是以下技术方案只是用于对本发明进行进一步的说明,不能理解为对本发明保护范围的限制,该领域的技术熟练人员根据上述发明内容所做出的一些非本质的改进和调整,仍属于本发明保护范围。
[0047]
如图1所示,本发明提供了一种基于异质信息网络元路径的api推荐方法,包括以下步骤:
[0048]
s1,构建api异质信息网络:获取api及其mashup应用的描述信息,构建围绕api的异质信息网络。
[0049]
在本实施例中,从网络api门户网站与注册中心(prgrammableweb.com)中抓取了api和mashup的描述信息,包括api名称、api类别、api提供者、mashup名称、mashup与api调
用关系等,合并得到名为pw的数据集。进一步地,将mashup和api的调用关系视为两者的交互,围绕pw数据集中的mashup、api交互,构建mashup-api二部图。选取类别、提供者作为二部图的补充信息构建如图2所示的api异质信息网络,所述api异质信息网络由四种类型的对象,也称为四类节点,(即mashup(m)、api(a)、类别(c)、提供商(p))和四种类型的关系,即mashup与api的关系m-a、api与提供商的关系a-p、mashup与类别的关系m-c、api与类别的关系a-c组成。
[0050]
其中,mashup与api的连接关系(m-a)代表了它们的交互信息,他们构成mashup-api二部图;在此基础上,mashup与类别、api与类别(m-c、a-c)、api与提供者(a-p)的连接关系为辅助信息,合并交互信息与辅助信息构成api异质信息网络。由于异质信息网络包含丰富的高阶结构信息,元路径(两个节点类型之间的关系类型序列)被广泛用作获取此类信息的基本工具,如图1中api:twitter-category:social-api:linkedin(a-c-a),意为属于同一类别的api,此三个节点连线连通,长度为3。当在api异质信息网络进行元路径采样时,包含具体节点信息的元路径称为路径实例。
[0051]
s2,生成api与mashup的初始低维嵌入
[0052]
在本实施例中,分别通过两个线性变换层对mashup和api的嵌入进行随机初始化,分别输入mashup和api的one-hot向量um、va,得到其映射后的初始低维嵌入em、ea,公式如下:
[0053]em
=wm·
um[0054]
ea=wa·
va[0055]
其中wm∈rm×d和wa∈ra×d为随机初始化的特征矩阵,m和a分别为用户和api的个数,d是mashup和api的嵌入维度,r表示实数集;该步骤可减少建模中计算资源的开销。
[0056]
s3,生成基于api与mashup交互的上下文元路径嵌入
[0057]
根据api异质信息网络中api与mashup的元路径,获得用户对于api选择的不同偏好,并生成基于上下文元路径的嵌入。在本实施例中,s3由三部分组成。
[0058]
第一部分,通过图表示学习框架预训练,获得初始节点表达。具体方式是:
[0059]
通过将训练数据api异质信息网络中的节点与节点之间的连接关系输入图表示学习框架进行预训练,最后得到节点的预训练向量。在每一轮训练过程中,通过输入任意两个节点x,y和通过正则化处理后的节点x,y间的关系向量r的三个one-hot编码向量,分别经过线性变换层的特征矩阵映射得到三个初始低维嵌入,类似步骤s2;进一步地,当获得所述三个初始低维嵌入后,图表示学习框架对三个向量运用一个hadamard函数(例如,对应元素相乘),对乘积再运用一个线性激活函数,最后输出层对乘积求和后的值进行一个sigmoid非线性转换,最后输出两个节点x,y经过预训练后的特征表达,为api异质信息网络的节点预训练向量。本实施例中,所述图表示学习框架可采用hin2vec。
[0060]
其中预训练时目标函数为o,为方便计算取与o成正比(

)的logo作为优化目标,具体公式如下:
[0061][0062]
其中logo
x,y,r
(x,y,r)衡量的是预训练模型如何正确预测训练数据,具体为
[0063][0064]
其中l(x,y,r)用来指示x,y之间是否存在关系r,若存在则l(x,y,r)置为1,否则置0。p(r|x,y)为当节点是x,y时,关系为r的概率。
[0065]
该部分运用一种合理的训练框架及评价体系,确保了经过初始预训练的节点向量是包含了足够api异质信息网络上下文语义及网络信息,对于元路径的偏好信息提取至关重要。
[0066]
第二部分,根据选定的元路径(例如表1中的4条元路径),对路径实例进行采样,并生成元路径嵌入。具体方式是:
[0067]
在api异质信息网络中进行随机游走,采样得到所有固定长度的路径实例。本实施例中所采样的元路径如表1所示,当采样所有固定长度的路径实例后,根据mashup、api节点进行路径实例的选取,当路径的两个端点为指定的mashup和api时,选择同样包含这两个端点的所有路径实例作为当前m-a交互元路径的采样实例集合。
[0068]
表1
[0069][0070]
进一步地,在第一部分获取节点预训练向量的基础上,对采样实例集合中的mashup或api节点进行相似度计算,排序,选择l条路径实例。具体计算方式如图3所示:
[0071]
首先计算路径实例中两个同类型节点,mashup或api相似度,例如在mcma的元路径中,我们可以计算两个相同mashup节点m1和m2的相似度(如果元路径是maca或mapa,计算两个相同api节点a1和a2的相似度),对采样实例集合中相同类型节点的相似度得分进行排序,最后保留路径实例中,mashup节点m1和m2相似度最高的l条,具体公式如下:
[0072][0073]
其中node1,node2为同一类型的节点,分子表示节点向量node1与节点向量node2的点乘,分母表示二者的l2相乘,即将所有维度值的平方相加后开方。
[0074]
进一步地,将指定交互m-a下最优用户偏好表达的元路径的l条路径实例分别进行合并,得到元路径嵌入。具体方式是:
[0075]
如元路径maca的一条路径实例由四个节点的节点预训练向量组成,分别是mashup、api1、category和api2,构造卷积神经网络cnn,将四个节点的节点预训练向量以节点嵌入矩阵的形式输入进cnn,得到映射在低维向量空间的路径实例嵌入h
p
,具体公式如下:
[0076]hp
=cnn(x
p
;θ)
[0077]
其中,x
p
∈rs×d为路径实例的节点嵌入矩阵,s为路径实例的节点数,d为预训练节点的嵌入维度;θ是卷积层中的所有相关参数;在获得元路径maca下的l条路径实例嵌入后,其中l=1,2,...,l;通过最大池化操作获得m-a交互下maca元路径嵌入
[0078][0079]
其中,max-pooling为最大池化操作,cnn()表示卷积神经网络。
[0080]
该部分创新地在api异质信息网络中使用了元路径嵌入表示作为相似度计算的依据,相较于传统的矩阵分解更具可解释性。
[0081]
第三部分,通过注意力机制按不同权重参数合并元路径嵌入。具体方式:
[0082]
首先输入由s2得到的mashup、api的向量表示,和s3得到的元路径嵌入n为元路径类型(maca、mama、mapa、mcma),通过两层线性结构构建注意力模型结构,获得元路径的注意力分布值公式如下:
[0083][0084][0085]
其中,表示两层注意力模型结构得到的注意力分布值,w1∈r
3d
×v,w2∈rv×1是随机初始化的特征矩阵,d为em、ea、三个输入向量维度之和,v是的维度,em和ea分别为mashup和api的初始低维嵌入,leakyrelu(
·
)是激活函数。
[0086]
进一步地,通过softmax函数对元路径的注意力分布值进行归一化计算,得到不同元路径n对m-a交互作用的贡献公式如下:
[0087][0088]
其中,exp为自然常数e为底的指数函数,最后通过权重求和方法根据权重贡献融合元路径上下文信息,得到基于元路径的上下文嵌入表示:
[0089][0090]
该部分在对多条元路径的贡献分数的计算上创新地引入了注意力机制,更好地捕捉到用户的选择偏好,并体现在元路径的上下文嵌入表示中,也使得后续的api推荐更加精准。
[0091]
s4,融合api与mashup的初始低维嵌入和基于api与mashup交互m-a的上下文元路径嵌入,训练模型,实现api推荐。
[0092]
在本实施例中,给定mashup和api之间的交互,通过步骤s2、s3得到mashup和api的嵌入以及它们之间交互的上下文元路径的嵌入表示。我们将这三个嵌入在统一的向量空间下合并为m-a交互的向量表示x
m,a
。合并操作定义如下:
[0093][0094]
其中是连接操作,e
p
是基于元路径的上下文嵌入表示,em和ea分别是mashup和api的初始低维嵌入。
[0095]
进一步地,然后将合并后的向量x
m,a
输入到mlp组件中以实现非线性变换来模拟mashup和api之间的复杂交互,进行模型训练,最后得到mashup和api之间的交互得分具体公式如下:
[0096][0097]
其中,mlp(
·
)为非线性变换组件。在进行评分预测时,利用损失函数j
m,a
来优化模型,具体公式为:
[0098][0099]
其中θ
neg
为负采样概率。
[0100]
最后,在模型训练完成后,固定模型参数,对用户进行api推荐。
[0101]
实际应用时,对于一个用户待完成的mashup,首先通过前面的步骤s2,得到该mashup的输入向量,和所有候选api的输入向量;进一步,通过步骤s3,计算mashup和每一个候选api之间的上下文元路径嵌入;最后对mashup、api和上下文元路径向量合并为表示x
m,a
,计算mashup和每一个api之间的交互得分通过对所有交互得分进行排序,从高到低输出api推荐列表,从而实现推荐。
[0102]
在本实施例中,借助a平均召回率(recall)、归一化折损累计增益(ndcg)与准确率(precision)评价指标来对比分析注意力机制训练方法,其中phrec-avg为四条元路径按平均贡献进行融合,生成元路径的上下文嵌入表示,phrec-att为s3第三部分,通过注意力机制按不同权重参数生成的上下文嵌入表示。在不同训练方法下的结果如表2所示。
[0103]
表2融合元路径方法的性能比较
[0104][0105]
本发明在采用以上两种训练策略下训练获得的api推荐评价指标下,召回率、归一化折损累计增益与准确率提升分别为1.34%、0.57%和1.29%。根据表2数据可知,与将所有元路径视为同等重要相比,区分不同元路径的权重分数后有助于提高推荐性能。
[0106]
以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含
在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1