一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种面向开发者的网络API推荐方法

2022-06-30 01:32:19 来源:中国专利 TAG:

一种面向开发者的网络api推荐方法
技术领域
1.本发明属于服务计算以及数据分析领域,具体涉及一种面向开发者的网络api(application programming interface,应用编程接口)推荐方法。


背景技术:

2.随着互联网的快速发展,利用网络api快速开发新应用的方式掀起来热潮。特别是mashup技术的出现,可以使得开发人员自由地按照自己的意愿组合api以开发新的应用,简化了api的复用过程,提高了应用开发的效率。随着大量的api被发布到互联网上,出现了许多api门户网站与注册库,例如:programmableweb.com,apis.guru等。截止到2021年,programmableweb平台上已有24000多个网络api,并且这个数量还在迅速增长。庞大的api数量让开发者在查找合适的api时面临严重的信息过载问题,因此,向开发者准确推荐用于创建新应用的api是非常有必要的。api推荐不仅可以在一定程度上解决api信息过载的问题,而且还可以启发开发者开发新的应用,从而促进整个api生态系统的发展。
3.传统的协同过滤式推荐方法无法充分提取用户行为和api描述数据中的隐含信息,导致推荐性能不高。


技术实现要素:

4.本发明的目的是提供一种面向开发者的网络api推荐方法,用以克服现有方法无法充分提取用户行为和api描述数据中的隐含信息,导致推荐性能不高的问题。
5.为了实现上述任务,本发明采用以下技术方案:
6.一种面向开发者的网络api推荐方法,包括:
7.获取网络api描述信息以及开发者与api的交互历史记录,并抽取api之间的共现关系;
8.将开发者与api的交互历史记录、api描述信息、api之间的共现关系构造成为一个开发者api交互矩阵并进行编码处理;
9.将开发者api交互矩阵转换为密集特征的嵌入向量矩阵;
10.通过因子分解机捕获所述嵌入向量矩阵中一阶、二阶的低阶特征交叉关系;其中,一阶特征为每个特征对于预测分数的影响,二阶特征为特征组合对于预测分数的影响;
11.基于所述嵌入向量矩阵,使用多头注意力机制来按权重来捕获不同内部特征的交叉关系,并根据各关系搭配的权重来重新进行向量编码,得到整合的高阶向量表征形式,拼接后得到高阶表征向量;
12.将所述高阶表征向量输入深度神经网络模型,利用模型的多层全连接层来捕获高阶特征交互关系;
13.将得到的低阶特征交叉关系和高阶特征交叉关系进行计算得到开发者对api喜好的可能性分数,按照从高到低排序进行推荐。
14.进一步地,所述api描述信息包括api的类别信息、api提供商、api的流行度以及开
发者对api的关注关系;将开发者对api的关注关系作为交互关系,得到开发者与api的交互历史记录;获取mashup应用的信息,并从中提取api的共现关系;如一个mashup应用同时调用了两个api,则称这两个api之间存在着共现关系。
15.进一步地,所述开发者api交互矩阵中的特征包括开发者名称、关注的api、api的类别信息、api类别信息、api提供商、api共现关系以及api流行度;对这些特征进行独热编码;api流行度为连续值,不进行处理直接保留。
16.进一步地,所述将开发者api交互矩阵转换为密集特征的嵌入向量矩阵,包括:
17.嵌入向量矩阵中的一条属性嵌入向量e
ik
的计算公式如下:
18.e
ik
=x
iek
19.其中,xi={feature1,feature2,

,featurek}为开发者api交互矩阵中的一条记录,feature1,feature2,

,featurek指代开发者api交互矩阵中的k个特征;ek∈rh×
embedding size
为嵌入层的参数矩阵中的一组参数向量,rh×
embedding size
为嵌入层的参数矩阵,h表示总的特征的类别个数,embedding size为可设置的嵌入向量维度。
20.进一步地,所述通过因子分解机捕获所述嵌入向量矩阵中一阶、二阶的低阶特征交叉关系,表示为:
[0021][0022]
上式中,y
fm
是因子分解机部分得到的预测分数,w0是全局偏置,wi是一阶特征的权重项;d是编码之后的维度,e
im
和e
in
是不同的输入特征,即特征嵌入向量e
ik
,k代表特征个数;e
im
和e
in
之间的关联特征权重由它们对应的隐向量vi和vj的平方欧式距离d2(vi vj,vj)表示;代表一阶特征交叉关系,代表二阶特征交叉关系。
[0023]
进一步地,所述基于所述嵌入向量矩阵,使用多头注意力机制来按权重来捕获不同内部特征的交叉关系,并根据各关系搭配的权重来重新进行向量编码,得到整合的高阶向量表征形式,拼接后得到高阶表征向量,包括:
[0024][0025][0026][0027][0028]
其中,k表示一条开发者api交互矩阵记录中含有的特征数,f代表特征,表示第i条记录第k1k2个特征的嵌入向量,代表k1k2两个特征的注意力权重分数,是注意力机制中的转换矩阵,《
·
》表示点积,是注意力权重的转换矩阵,表示第k个特征和第j个特征的权重分数,e
ij
为嵌入向量矩阵中的一条属性嵌入向
量e
ik
;是第k个特征在第h个注意力头得到的特征值,将这k个特征组合起来得到组合起来得到是单个注意力头计算出的表征向量,h=1,2,

h;将h个注意力头得到的向量拼接起来得到高阶表征向量起来得到高阶表征向量表示拼接操作。
[0029]
进一步地,所述将得到的低阶特征交叉关系和高阶特征交叉关系进行计算得到开发者对api喜好的可能性分数,按照从高到低排序进行推荐,包括:
[0030]
将经因子分解机处理后输出的预测分数y
fm
与深度神经网络模型的预测分数y
deep
连接起来,得到输出数据
[0031][0032]
其中,sigmoid是激活函数,
[0033]
将按照从高到低排序进行推荐,用来预测开发者对于api的喜好进而向开发者推荐api。
[0034]
一种终端设备,包括处理器、存储器以及存储在所述存储器中的计算机程序;处理器执行计算机程序时,实现所述面向开发者的网络api推荐方法的步骤。
[0035]
一种计算机可读存储介质,所述介质中存储有计算机程序;计算机程序被处理器执行时,实现所述面向开发者的网络api推荐方法的步骤。
[0036]
与现有技术相比,本发明具有以下技术特点:
[0037]
1.不仅使用了api的描述信息,还使用了api的共现关系以及api的质量属性,用以解决现有技术推荐效果不佳的问题。
[0038]
2.对深度因子分解机进行改进,引入自注意力机制构成自注意力表征学习模块,用以克服现有技术表征能力不足的问题。
[0039]
3.将改进后的因子分解机与深度神经网络结合,因子分解机模块和深度神经网络模块可以一起训练。因子分解机模型负责提取低阶特征之间的关联特征及用户行为的序列特征,深度神经网络负责提取更高阶的特征,从而更加准确高效的进行推荐。作为端到端模型,与其它模型相比,不需要多余特征工程的操作,更加方便,训练的效率更高。
附图说明
[0040]
图1是本发明面向开发者的网络api推荐方法的流程图;
[0041]
图2是本发明面向开发者的网络api推荐方法中利用的api信息示例图;
[0042]
图3是本发明面向开发者的网络api推荐方法的模型结构图。
具体实施方式
[0043]
下面结合实施例对本发明做进一步的描述,有必要在此指出的是以下实施例只是用于对本发明进行进一步的说明,不能理解为对本发明保护范围的限制,该领域的技术熟练人员根据上述发明内容所做出的一些非本质的改进和调整,仍属于本发明保护范围。
[0044]
参见图1,本发明提供的一种面向开发者的网络api推荐方法,包括以下步骤:
[0045]
步骤1,获取网络api描述信息以及开发者与api的交互历史记录,并抽取api之间的共现关系。
[0046]
本发明的一个具体应用示例中,从网络api门户网站(prgrammableweb.com)中获取api描述信息,获取的api描述信息包括api的类别信息、api提供商、api的流行度以及开发者对api的关注关系;本示例采用programmableweb上开发者对api的关注关系作为交互关系,交互关系的记录即为所述交互历史记录。同时从programmableweb上获取mashup应用的信息,并从中提取api的共现关系。mashup是基于api所开发的网络应用,如果一个mashup同时调用了两个api,则称这两个api之间存在着共现关系。关于以上信息的示例如图2所示。图中的mashup应用followerfly同时调用了reddit api和twitter api,故认为reddit api和twitter api之间存在着共现关系。
[0047]
步骤2,将开发者与api的交互历史记录、api描述信息、api之间的共现关系构造成为一个开发者api交互矩阵并进行编码处理。
[0048]
对开发者api交互矩阵中的特征,包括开发者名称、关注的api、api的类别信息、api类别信息、api提供商、api共现关系以及api流行度进行独热编码。独热编码是指用一个长度为n的向量表示一个实体,向量中第n位为1,其它位为0表示第n个实体。而api流行度为连续值,不进行处理直接保留即可。
[0049]
本发明的一个示例中,开发者api交互矩阵的示例如下所示:
[0050][0051]
步骤3,将开发者api交互矩阵转换为密集特征的嵌入向量矩阵。
[0052]
本发明的一个具体应用示例,如图3所示,使用深度学习中的嵌入层来将开发者api交互矩阵转换为特征空间中连续且稠密的嵌入向量矩阵;其中,该嵌入向量矩阵中的一条属性嵌入向量e
ik
的计算公式如下:
[0053]eik
=x
iek
[0054]
其中,xi={feature1,feature2,

,featurek}为开发者api交互矩阵中的一条记录,feature1,feature2,

,featurek指代开发者api交互矩阵中的k个特征,包括开发者名称、关注的api等;ek∈rh×
embedding size
为嵌入层的参数矩阵中的一组参数向量,rh×
embedding size
为嵌入层的参数矩阵,h表示总的特征的类别个数,embedding size为可设置的嵌入向量维度。
[0055]
步骤4,通过因子分解机捕获所述嵌入向量矩阵中一阶、二阶的低阶特征交叉关系;其中,一阶特征是指单独考虑每个特征对于预测分数的影响,而二阶特征是指特征组合对于预测分数的影响。
[0056]
本发明的一个具体应用示例,如图3所示,因子分解机的输出由两个部分相加组成,分别是一个额外单元和多个内积单元,y
fm
是因子分解机部分得到的预测分数:
[0057][0058]
上式中,w0是全局偏置,wi是一阶特征的权重项;d是one-hot编码之后的维度,e
im
和e
in
是不同的输入特征,即步骤3得到特征嵌入向量e
ik
(k=m,n);k代表特征个数。e
im
和e
in
之间的关联特征权重由它们对应的隐向量vi和vj的平方欧式距离d2(vi vj,vj)表示;代表一阶特征交叉关系,代表二阶特征交叉关系。
[0059]
步骤5,基于所述嵌入向量矩阵,使用多头注意力机制来按权重来捕获不同内部特征的交叉关系,并根据各关系搭配的权重来重新进行向量编码,得到整合的高阶向量表征形式拼接后得到高阶表征向量
[0060]
本发明的一个具体应用示例,如图3所示。计算公式如下:
[0061][0062][0063][0064][0065]
其中,k表示一条开发者api交互矩阵记录中含有的特征数,f代表特征,表示第i条记录第k1k2个特征的嵌入向量,代表k1k2两个特征的注意力权重分数,是注意力机制中的转换矩阵,《
·
》表示点积,是注意力权重的转换矩阵,表示第k个特征和第j个特征的权重分数,e
ij
为嵌入向量矩阵中的一条属性嵌入向量,即步骤3中的e
ik
;是第k个特征在第h个注意力头得到的特征值,将这k个特征组合起来得到合起来得到是单个注意力头计算出的表征向量,h=1,2,

h;式4代表将h个注意力头得到的向量拼接起来得到高阶表征向量力头得到的向量拼接起来得到高阶表征向量表示拼接操作。
[0066]
该步骤的目的在于对深度因子分解机进行改进,引入自注意力机制,用以克服现有技术表征能力不足的问题;将最终得到的向量输入到深度神经网络模型。
[0067]
步骤6,将所述高阶表征向量输入深度神经网络模型dnn,利用模型的多层全连接层来捕获高阶特征交互关系。
[0068]
本发明的一个具体应用示例,如图3所示,步骤如下:
[0069][0070]
神经网络模型前馈过程如下:
[0071]a(l 1)
=σ(w
(l)a(l)
b
(l)
)
[0072]
其中,a
(l)
表示神经网络模型第l层的输出,表示高阶表征向量中的各嵌入向量,l是神经网络模型的层深度,σ是激活函数,a
(l)
,w
(l)
,b
(l)
分别是第l层的输出,权重和偏置,h是深度神经网络的层数。然后得到特征矢量,最后被送到sigmoid函数σ做预测,得到y
deep
为深度神经网络模型得到的预测分数:
[0073]ydeep
=σ(w
|h| 1
·a|h|
b
|h| 1
)
[0074]
上式中,h表示神经网络模型的层数,w
|h| 1
、a
|h|
、b
|h| 1
表示权重、输出和偏置。
[0075]
步骤7,将得到的低阶特征交叉关系和高阶特征交叉关系进行计算得到开发者对api喜好的可能性分数,按照从高到低排序进行推荐。
[0076]
按照公式将步骤4中所述经因子分解机处理后输出的预测分数y
fm
与步骤6中所述深度神经网络模型的预测分数y
deep
连接起来,得到输出数据
[0077][0078]
sigmoid是sigmoid激活函数,
[0079]
将按照从高到低排序进行推荐,用来预测开发者对于api的喜好进而向开发者推荐api。
[0080]
以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献