1.一种基于多任务学习的云服务发现方法,其特征在于,包括如下步骤:S100:将服务请求者查询活动定义为会话 每一个会话Sm由服务请求者在一定时间内按顺序提交给搜索引擎的一系列查询Qm={qm,1,qm,2,...,qm,n},每个查询qm,i由对应的一组候选服务描述文档列表D={dm,1,dm,2,...,dm,k}组成,服务请求者的当前会话SM表示为服务请求者的短期查询历史 以前的会话{S1,S2,...,SM‑1}表示服务请求者的长期查询历史S200:构建PDAML模型,所述PDAML模型由ad‑hoc模块和个性化模块构成;
S210:所述ad‑hoc模块包括服务描述文档检索模块,所述服务描述文档检索模块包括六层:
第一层,字符嵌入层:字符嵌入层使用字符级卷积神经网络CNN将组成每个单词的所有字符映射到一个向量空间;
对于服务请求者的查询q和其候选服务描述文档d,假设分别由J和T个单词组成,表示为 和 组成每个单词的所有字符分别字符级卷积神经网络CNN转化为字符向量,再将嵌入的字符向量作为卷积神经网络1D卷积的输入,结果经过最大池化max‑pooling处理后为每个单词获得固定大小的向量表示 其中dc是卷积核的数量;
第二层,词嵌入层:使用预训练的单词向量GloVe将每个单词映射成固定大小的向量;
查询的单词向量和服务描述文档的单词向量分别表示为 其中dw表示单词嵌入维度;
字符嵌入和词嵌入完成后,将它们的连接送入一个两层的高速公路网络分别得到表示查询的查询矩阵 和表示服务描述文档的矩阵 其中,dg是高速公路网络的输出维度大小;
第三层,上下文嵌入层:采用一个双向的循环神经网络Bi‑RNN对所述查询矩阵Q和服务描述文档矩阵D进行上下文编码;
将高速公路网络的输出查询矩阵Q和服务描述文档矩阵D作为Bi‑RNN的输入,参见公式(2),它将感知上下文信息,得到查询的上下文向量 和服务描述文档的上下文向量
ht=f(xt,ht‑1) (2)其中,xt为f(·)的输入(Qj或者Dt), h0被初始化为零向量,在我们的模型中,f(·)选择为LSTM;
T×J
第四层,双向注意力层:计算查询和服务描述文档的相似度矩阵S∈R ,参见公式(3):其中,Q1,j表示Q1的第j列向量,D1,t表示D1的第t列向量,这表明第j个查询中的单词和第t个服务描述文档中的单词之间的相似性, 是可学习的参数,⊙运算符表示元素点乘,[;]运算符表示向量连接操作;
J
计算候选服务描述文档对查询方向的注意力,at∈R表示候选服务描述文档中的第t个单词对查询中的单词的注意力权重,根据注意权重为查询生成服务描述文档对查询方向的注意向量 具体地:
J
at=softmax(St:)∈R (4)表示候选服务描述文档对查询方向的注意向量T
计算查询对候选服务描述文档方向的注意力,使b∈R表示查询对候选服务描述文档中的单词的注意权重,根据注意权重为候选服务描述文档生成关注查询的注意向量,这个向量表示候选服务描述文档中与查询中相关的最重要单词的加权和,具体地:T
b=sofmaxt(maxj(S))∈R (6)将 扩展T次即可得到候选服务描述文档对查询的注意力向量最后将候选服务描述文档对查询方向的注意力和查询对候选服务描述文档方向的注意力结合计算得到每个候选服务描述文档中单词的查询感知表示;
将查询的上下文向量Q1,服务描述文档的上下文向量D1,服务描述文档对查询方向的注意向量 和候选服务描述文档对查询的注意力向量 结合起来生成G:第五层,建模层:采用单层的LSTM,将G映射到 输出传递到最后的检索层;
第六层,检索层:通过使用内部注意机制将建模层的输出映射到服务描述文档的排名分数,内部注意机制为候选服务描述文档和查询中的重点单词分配更大的权重,具体地:M
M′=tanh(WM+b′) (9)t
β=softmax(WM′) (10)M t
其中,W ,W 是可学习的参数,b′是偏置向量,β是注意力权重,所以, 是查询和候选服务描述文档的所有信息的总结;
通过一个简单的线性变换计算当前查询对应的候选服务描述文档的排名得分:其中, 是权重矩阵。
S220:所述个性化模块的结构为:将服务请求者当前会话的所有查询与所点击的服务描述文档的连接送入LSTM中学习服务请求者短期偏好,将服务请求者以前会话的所有查询和点击服务描述文档的连接送入LSTM学习长期偏好;
采用注意力机制为长期偏好和短期偏好分配关注权重,获得服务请求者的长期兴趣向量和短期兴趣向量,然后计算服务请求者当前查询对应的候选服务描述文档的个性化排名得分;
S230:训练PDAML模型:采用LambdaRank算法对ad‑hoc模块进行成对训练,每对是标注好的一个正样本和一个负样本;
当损失函数的值不再下降时,则认为PDAML模型已经训练好,否则对ad‑hoc模块中的参数进行更新,并返回S210,继续训练;
S300:对于一个服务请求者的当前查询,将ad‑hoc模块计算的当前查询对应的候选服务描述文档得分的和当前查询对应的候选服务描述文档的个性化排名得分送入一个MLP层中得到最终的排名得分,按照最终排名得分的由高到低的顺序进行待候选服务描述文档推荐。
2.如权利要求1所述的基于多任务学习的云服务发现方法,其特征在于,所述S200中ad‑hoc模块还包括一个查询消歧模块,所述查询消歧模块与服务描述文档检索模块前三层共用,即字符嵌入层,词嵌入层和上下文编码层;
查询编码器:将Bi‑LSTM的正向和反向的最后的隐藏单元连接作为查询的上下文编码:其中, 是查询级的隐藏状态, 是高速公路网络的输出;
查询解码器:给定目标查询:qy={y1,...,yi},解码器通过给定上下文向量ci和所有先前预测的查询词{y1,...,yi‑1},以预测下一个查询词yi;
将一个会话内的最后一个查询当作我们最终要预测的查询,会话内所有之前的查询统一当作所述查询编码器的输入;
采用注意力机制结合编码器的隐藏状态预测下一个查询:首先采用另一个单向的LSTM对目标查询进行编码:si=LSTMDec(si‑1,yi‑1,ci) (14)其中, 为所述查询解码器中第i时间步的隐藏状态,dh为解码器的LSTM隐藏状态的维度ci为上下文向量,被计算为:其中,aij为所述查询解码器中每个隐藏状态 的权重,被计算为:其中,
均为可学习的权重矩阵;
生成下一个单词的概率可被计算为:其中, 表示 的第k个元素,表示为其中, 是权重矩
阵。
3.如权利要求1所述的基于多任务学习的云服务发现方法,其特征在于,所述S200中个性化模块计算个性化排名得分的过程为:对于长期兴趣建模:
为长期LSTM的隐藏状态, 被初始化为零向量,qL,t和dL,t表示服务请求者长期会话内查询和点击服务描述文档的整体表示;
对于短期兴趣建模:
类似地, 为短期LSTM的隐藏状态, 被初始化为零向量,qS,t和dS,t表示服务请求者短期会话内查询和点击服务描述文档的整体表示;
对于当前服务请求者查询qM,我们为长期LSTM编码的隐藏状态 和短期LSTM编码的隐藏状态 分别计算权重 和 形式上:其中, φ(·)表示带有tanh(·)激活函数的MLP层,服务请求者的长期兴趣向量可以由 表示:服务请求者的短期兴趣向量 表示为:计算服务请求者个性化排名得分:D
其中,φ(·)表示带有tanh(·)激活函数的MLP层,q表示候选服务描述文档的整体向量表示。
4.如权利要求3所述的基于多任务学习的云服务发现方法,其特征在于,所述S230训练PDAML模型时,损失函数如公式(26):所述ad‑hoc模块训练时的损失定义为查询预测模块的损失与查询消歧模块的损失两者的损失之和:
L(θ)=LQP+λLDR (26)其中,θ是模型所有可学习参数的集合,λ是平衡参数;
损失LDR定义为真实排名得分和预测排名得分的二进制交叉熵:其中,N是训练样本的数量, 是真实标签,pij为预测值;
对于查询消歧模块训练时的损失采用正则化负对数似然损失:yt是在要预测的查询中的第t个单词,Qt是服务请求者以前会话中的所有查询单词,LR是正则化项,p表示生成yt的概率函数。