Page 62 - 《软件学报》2025年第5期
P. 62
1962 软件学报 2025 年第 36 卷第 5 期
12. endif
13. endfor
14. {vc(s)} = WGAT-HAG(S, HAG)
15. return {vc(s)}
算法 2 第 1–13 行用于构建 Web API 异质关联图 HAG. 第 1 行首先初始化图 HAG, 将 Web API 集合 S 中服
务 s 映射为 HAG 中的节点 v. 第 3–7 行实现功能关联边的建立. 如果集合 S 中的两个服务 s i 与 s j 存在功能关联,
则在对应节点 v i 与 v j 之间增加一条边, 边权增加 1. 第 8–13 行实现协作关联边的建立. 通过遍历集合 MS 中的
Mashup 服务, 对存在协作关联的服务 s i 与 s j , 在对应节点 v i 与 v j 之间增加一条边, 边权增加 1.
在构建的 Web API 异质关联图 HAG 的基础上, 算法第 14 行利用 WGAT-HAG 为集合 S 中的服务生成关联
向量集合{vc(s)}, 算法第 15 行返回关联向量集合{vc(s)}.
3.3 融合功能匹配度与关联兼容度的组件 Web API 推荐
组件 Web API 对 Mashup 服务需求的功能贡献度体现了其是否能符合开发者对于功能需求的匹配预期, 而
Web API 在候选集合内的兼容度反映了与其他 Web API 的组合协调性, 以及推荐集合的合理性, 二者缺一不可,
共同决定组件 Web API 推荐集合是否符合开发需求.
对 Mashup 服务需求 mr 功能贡献度高的 Web API 参与构建 mr 的概率更大. 为了计算候选 Web API 在
Mashup 服务需求中的功能贡献度, 引入注意力机制, 计算每个 Web API 对于 Mashup 服务需求 mr 的贡献注意力
系数.
xs i = Sigmoid(W xs [vf(mr)||vf(s i )]+b xs ) (24)
exp(xs i )
afs i = ∑ (25)
exp(xs j )
s j ∈Cw(mr)
其中, “||”表示向量拼接, vf(s i ) 为服务 s i 的功能向量, vf(mr) 为需求 mr 的功能向量, W x 为可训练的矩阵, b x 为偏置
s
s
参数, 优化重组后的 mr 功能匹配向量为:
∑
vf(mr) att = afs i ·vf(s i ) (26)
s i ∈Cw(mr)
为了获取 s i 与候选 Web API 集合中不同服务的兼容度, 引入注意力机制, 计算候选 Web API 集合中服务之间
的兼容性注意力系数. 服务 s j 对服务 s i 的注意力系数为:
T
exp(vc(s i ) ·vc(s j ))
acs ji = ∑ (27)
T
exp(vc(s i ) ·vc(s k ))
s k ∈Cw(mr)
s i 优化重组后的关联向量为:
∑
vc(s i ) att = acs j i ·vc(s j ) (28)
s j ∈Cw(mr)
根据候选 Web API 的兼容性优化 s i 的关联向量, 可以降低功能重复的 Web API 组合的可能性, 提升推荐合理
性. 最后, 将优化重组的 mr 功能向量、Web API 的关联向量以及功能向量输入全连接层, 从 s i 对于 mr 功能需求
匹配预期和参与组合的 Web API 兼容度两个角度得到 s i 对于 mr 的推荐概率 p(s i , mr), 经排序后取 Top-K 作为推
荐结果, 见公式 (29):
T
T
p(s i ,mr) = σ(W [vf(mr) att ||vf(s i )]+W vc(s i ) att +b p ) (29)
p2
p1
2
其中, σ 为 Sigmoid 激活函数, W p 与 1 W p 为可训练权重矩阵, b p 为偏置项.
使用交叉熵损失函数 (cross-entropy) 优化模型, 以最小化模型预测结果和真实结果之间的差异, 如公式 (30)
所示: