1.一种基于主题模型聚类的Web API推荐方法,其特征在于,所述方法包括如下步骤:第一步:根据上下文信息计算单词的语义权重信息从而得到文档‑单词语义权重信息矩阵D;
第二步:统计单词共现信息,从而计算出SPPMI矩阵信息;
第三步:基于第一步,第二步得到Mashup服务文档单词的词频信息矩阵D,单词的上下文SPPMI矩阵M,通过分解M得到词嵌入信息矩阵,进一步将上述两种信息进行结合,计算服务的主题信息;
第四步:将第三步得到的Mashup服务主题特征,作为谱聚类的输入进行聚类,通过对所有数据点组成的图进行切图,让切图后不同的子图间边权重和尽可能的低,而子图内的边权重和尽可能的高,从而达到聚类的目的;
第五步:结合GBDT和FM方法对Web API服务进行预测推荐,步骤如下:
5.1利用第三步对Mashup服务需求Mre进行主题模型建模,获取服务需求Mre的文档‑主题矩阵Tre作为Mashup服务主题特征;之后,对Web API服务语料APIA进行建模,APIA的获取文档‑主题矩阵Tapi作为Web API服务主题特征;
5.2设置一个为空的set类型的集合Um,set集合为只包含唯一值的集合,设置sim为0,对第四步最终输出的服务类簇Mset进行遍历处理,每次遍历的簇设置为C,将Mashup服务类簇主题功能特征向量的平均值作为每一个类的簇中心,即计算C中所有向量的平均值,将Tre中的所有向量分别与该平均值利用余弦公式进行相似度计算,并将该相似度计算结果之和设置为Temp,对sim与Temp的大小进行判断,若Temp大于sim,则将Um设置为C,sim设置为Temp,遍历结束,此时的Um即为与Mashup服务需求Mre最相近的类簇;
余弦相似度计算公式如下所示:
其中Vi与Vj分别表示计算相似度的两个向量,T表示矩阵倒置运算,‖V‖表示向量的模运算;
5.3设置Setapi为候选的Web API集合,将步骤5.2输出的Um与Web API服务主题特征Tapi作为输入,统计Mashup服务类簇中所有Mashup服务所调用过的Web API服务,将其对应的Tapi中的主题特征存入Setapi中,获取候选API集合;
5.4设置Pop为Web API服务的流行度,以Web API服务语料A为输入,计算Web API服务的流行度,流行度计算公式如下:
pop(api)为API的流行度,其表示Web API在不同类簇中的流行程度,其中use(api)表示该Web API被数据集中Mashup服务使用过的次数,Cuse(api)表示聚类后的Mashup服务类簇中该Web API被调用过的次数,通过计算Web API的类簇中流行度,可以有效地反应Web API的可用性;
设置Co为Web API服务的共现度信息,计算Web API服务的共现度,共现度计算公式如下:
Co(apii,apij)为Web API服务之间的共现度,其表示Web API之间可组合性,其中M(apii,apij)表示同时调用Web API服务i和j的Mashup服务的数量,O(apii)表示调用过apii的Mashup服务数量;
设置AvCo为Web API服务的平均共现度信息,平均共现度信息计算公式如下:AvCo(apii)为平均共现度信息,其中NO(apij)表示和apii间共现度不为0的Web API数量,根据平均共现度反应了Web API的可组合性;
5.5以步骤5.1中计算得到的Mashup服务主题特征Tre与Web API服务主题特征Tapi,步骤
5.3中计算得到的候选Web API集合Setapi,5.4步骤中得到的Web API服务的流行度Pop与Web API服务的平均共现度AvCo作为参数,将Mashup服务名称与Web API服务名称One‑Hot化,组合形成原始特征向量Vec(Idm,Ida,Tm,Ta,Pop,AvCo),其中Idm表示Mashup服务名称的One‑Hot编码,Ida表示Web API服务名称的One‑Hot编码,Tm表示Mashup服务的主题功能特征,为Mashup服务描述对应的文档‑主题矩阵Tre中的向量,Ta表示Web API的主题功能特征,为Web API服务描述对应的文档‑主题矩阵Tapi中的向量,Pop和AvCo为对应Web API服务的流行度信息以及平均共现度信息,在原始特征向量Vec综合了功能特征信息和非功能特征信息,可以更全面的考虑Web API服务的质量,提高推荐的可靠性,One‑Hot编码利用与分类状态数量相同的状态寄存器来对所有状态进行编码,每个状态都有独立的寄存器位,并且在任意时候只有一位有效,表示形式为只有一个分量为1,其余分量都为0的二进制向量;
5.6设置转换后的特征向量为TranVec,以步骤5.5中获得的原始特征向量Vec为输入,基于梯度提升决策树GBDT进行特征转换,GBDT是一种功能强大的回归和分类模型,GBDT模型由若干棵独立的决策树组成,每棵树都由之前的树的残差进行训练,GBDT不断地进行迭代,每一次迭代都会产生一个增益较大的分类特征,每个节点的分裂可以视作为特征选择的操作,多棵树以及多层节点的结构可以对原始特征进行自动选择和组合,进而生成新的特征向量,通过GBDT模型可以自动对特征选择,组合和转换,从而提高后续推荐模型的学习能力,通过GBDT对原始特征向量进行转换得到维度较低的转换后的特征向量集合TranVec,向量中包含所有叶节点的序号;
5.7对步骤5.6得到的TranVec进行One‑Hot编码处理,获得向量集合OTvec;
5.8以OTvec为输入,输入到因子分解机FM模型中对Web API服务的得分进行预测;
FM模型能较好解决大规模稀疏数据下的特征组合问题,能适应各种输入,拓展性更强,能在原始特征上进行高阶特征交互。使用二阶FM模型对API服务进行推荐,其定义如下:x为特征向量,xi为向量x的第i个分量,n为特征向量的维度,y(x)为预测的得分,w0为全局偏置,w为特征向量每个分量对应权重的集合,wi为特征向量第i个分量对应的权重,部分为传统的线性模型,vei是维度为k的向量,k是超参数,用来定义矩阵分解的维度;
2.如权利要求1所述的一种基于主题模型聚类的Web API推荐方法,其特征在于,所述第一步的步骤如下:
1.1统计单词词频信息,计算TF‑IDF信息,步骤如下:
1.1.1遍历Mashup服务描述文档中的每个单词,统计当前文档中每个单词的出现的次数,计算每个单词TF值,计算公式如下:其中TFi,j表示第i个Mashup服务描述文档中第j个单词的词频信息,NUM(j)表示第j个单词出现的次数,LEN(i)表示第i个Mashup文本的长度;
1.1.2统计每个单词出现过的Mashup服务文档数量,计算IDF值,计算公式如下:IDF(x)表示单词x的IDF值,N表示Mashup文档的数量,doc(x)表示包含单词x的Mashup文档数量;
1.1.3遍历所有Mashup文档中的单词,计算单词的TF‑IDF值计算公式如下:TF‑IDF(x)=TF(x)*IDF(x)TF‑IDF(x)表示单词x的TF‑IDF值,TF(x)表示单词x的TF值;
1.2基于TF‑IDF值,重新计算Mashup服务描述文档中的每一个单词的语义权重,步骤如下:
1.2.1遍历当前Mashup服务文档中每一个单词wx计算其上下文语义权重信息WeightConttext(wx),计算公式如下:其中sim(wx,wy)表示单词wx和wy的相似度,通过WordNet工具计算,wy为wx的上下文单词,d表示当前Mashup服务描述文档,Nd表示当前Mashup服务描述文档的长度,WordNet是一种英语词典,通过网状结构来组织词汇,将含义相近的词汇划分到一个组中,通过返回词汇在网络之间的最短路径得到相似度;
1.2.2遍历当前Mashup服务描述文档中的每一个单词wx,通过以下公式重新计算单词语义权重,η为一个较小的值,设定为0.001;
1.2.3重复1.2.2直至处理完所有Mashup服务,得到文档‑单词语义权重矩阵D。
3.如权利要求1或2所述的一种基于主题模型聚类的Web API推荐方法,其特征在于,所述第二步的步骤如下:
2.1统计词共现信息,由于Mashup服务描述文档较短,为了能更准确地获取上下文共现信息,将整个服务描述文档作为滑动窗口的长度,计算每个单词和和其他单词在上下文中共同出现的次数,步骤如下:
2.1.1对于当前Mashup服务,计算该Mashup服务描述文档长度Len,设定滑动窗口长度为Len;
2.1.2统计Mashup服务描述文档中单词和其他单词的共现情况,若当前单词的其上下文单词,即该单词前后的单词,在滑动窗口Len的距离内,则该单词和其在滑动窗口内的上下文单词共现次数加1;
2.1.3重复2.1.2直至处理完Mashup服务中的所有单词;
2.1.4重复2.1.1‑2.1.3直至处理完所有Mashup服务;
2.2点互信息PMI计算,PMI被广泛用于计算单词间相似度的关系,当两个单词在文本中共现概率越大时,单词间的相关性就越强,PMI计算公式如下所示:x和y表示两个单词,P(x,y)表示单词x和y共现的概率,P(x)表示单词x在上下文中出现概率,根据单词wj和其上下文单词wc在语料库中的实际共现次数,计算出两者之间的PMI值:#(wj,wc)表示单词wj和上下文单词wc在语料库中的实际共现次数,E为单词和上下文单词对共现的总次数,#(wj)为单词wj和其他单词共现的次数,Voc表示语料库,即不重复单词的集合;
2.3计算偏移正点互信息值SPPMI矩阵,SPPMI矩阵通过PMI值计算,SPPMI矩阵的计算方式为:
SPPMI(wj,wc)=max(PMI(wj,wc)‑logκ,0)其中κ为负采样系数,通过上述公式得到单词的上下文SPPMI矩阵M。
4.如权利要求1或2所述的一种基于主题模型聚类的Web API推荐方法,其特征在于,所述第三步的步骤如下:
3.1通过由第一步给定全局文档‑单词关系矩阵D,通过NMF将其分解为文档‑主题矩阵θ和主题‑单词矩阵Z乘积,分解矩阵D的函数表示为:NxK VxK
subject to:θ≥0 and Z≥0,θ∈R ,Z∈R其中 代表L2范数,N表示Mashup文档数量,K表示文档的主题数量,V表示语料库单词的数量,R表示实数集,上标T表示矩阵转置,NMF是在矩阵中所有元素均为非负数约束条件之下,将一个非负矩阵表示为另外两个非负矩阵乘积方式的矩阵分解方法;
3.2通过第一步、第二步计算得到单词的上下文SPPMI矩阵M,分解矩阵M引入词嵌入信息,分解M的公式如下所示:
S是一个额外的对称因子,用于M的近似求解,W为单词的词嵌入矩阵;
3.3利用Mashup服务文档和单词间的关系,可以发现主题信息,通过文档内单词上下文的共现信息,可以学习到词嵌入信息,但是这两个部分并不相互孤立,语义相关的单词通常属于相似的主题,在嵌入空间中也很接近,可知单词嵌入与它们的主题相关,关系公式如下所示:
3.4在步骤3.3中将主题‑单词矩阵Z分解为主题嵌入矩阵A和词嵌入矩阵W的乘积,将词嵌入与主题信息相联系起来,进一步提高了主题建模的准确性;
结合步骤3.1,3.2和3.3,得到主题模型的目标函数:subject to:θ≥0and Z≥0为了求解该目标函数,使用矩阵迹运算将上述公式展开:T T T T T T T
J(θ,Z,W,S,A)=λdTr((D‑θZ)(D‑θZ))+λwTr((M‑WSW)(M‑WSW))+λtTr((Z‑WA)(Z‑T T
WA))
其中J(θ,Z,W,S,A)为J4在θ,Z,W,S,A参数下的展开形式,进一步运算得到以下公式:T T T T T T T T T TJ(θ,T,W,S,A)=λdTr(DD‑2DTθ+θT Tθ)+λwTr(MM‑2MWSW+WSWWSW)+λtTr(TT‑2TAW+T T
WAAW)
Tr表示矩阵求迹,λd,λw和λt为不同部分的权重系数,用于调整各部分计算的误差对结果的影响,根据正则化约束得到以下目标函数:其中α,β,γ, ω为正则化参数,避免过拟合;为使目标函数最小化,对上述目标函数求偏导得到以下公式:
令α⊙θ=0,β⊙Z=0,γ⊙W=0, ω⊙A=0,⊙表示阿达马乘积,即矩阵对应位置的乘积,利用阿达马乘积,令上述公式偏导为0,进一步得到以下等式方程:T
‑(DT)⊙θ+(θTT)⊙θ+α⊙θ=0T T T
‑(λdDθ+λtWA)⊙T+(λdTθθ+λtT)⊙T+β⊙T=0T T
‑2(λwMWS+λtTA)⊙W+(λtWAAW+2λwWSWWS)⊙W+γ⊙W=0T T
‑(TW)⊙A+(AWW)⊙A+μ⊙A=0进一步更新参数:
通过上述参数更新方式,求解出Mashup服务文档‑主题矩阵θ和主题‑单词矩阵Z,词嵌入矩阵W,主题嵌入矩阵A。
5.如权利要求1或2所述的一种基于主题模型聚类的Web API推荐方法,其特征在于,所述第四步的步骤如下:
4.1计算相似度矩阵SI,服务主题特征之间的相似度通过高斯核函数计算,公式中θi表示Mashup服务i的主题特征,δ为尺度参数,exp表示以自然常数e为底的指数函数,高斯核函数计算公式如下:
4.2将矩阵SI的每一列的元素相加,并将每一列作为元素添加到度矩阵G对角线上,公式如下:
Gij=∑jSIij
4.3通过G计算Laplacian矩阵L=G–SI;
4.4计算 的特征值和特征矢量,得到服务文档特征矢量矩阵F,Tr表示矩阵求迹,I表示单位矩阵,特征值求解函数如下:T
subjectto:FF=I
其中argminF表示 最小时F的取值;
4.5将特征值从小到大排序,取前C个特征值,C指定的聚类簇的数量,得到前C个特征值的特征矢量,作为初始聚类中心;
4,6计算特征矢量到聚类中心的欧式距离dist,将Mashup服务划分到距离最小的簇,计算公式如下:
其中fi表示特征矢量f中第i个值,Cei表示聚类中心Ce矢量中的第i个值;
4.7更新聚类中心为每个簇中特征矢量累加的平局值;
4.8计算新聚类中心和旧聚类中心的欧式距离作为误差值;
4.9重复步骤4.6‑4.8直至误差小于设定阈值,或者迭代次数到达最大迭代次数。