APP下载

面向Mashup 的质量感知Web API 推荐

2022-08-03陈佳佩秦绍伟彭伟乐

关键词:性能特征模型

陈佳佩,武 浩,秦绍伟,彭伟乐,徐 立

(云南大学 信息学院,云南 昆明 650500)

Web Mashup[1]是通过组合来自不同Web 源的内容、表示或应用程序功能而生成的Web 应用程序,其目标是结合这些资源创建有用的新应用程序或服务.Mashup 有简单、高可用和易于访问等特点,且其简单性优于功能完整性和完全可扩展性[2].在开发Mashup 的过程中,Web API 通常提供Mashup 最重要的应用程序功能,合理选择满足开发需求的Web API 不仅可以提高开发效率,且能定制个性化功能.如图1 中的Mashup:breakout(https://www.programmableweb.com/mashup/breakou t)作为一个移动应用程序,允许用户浏览和搜索不同的图书标题,该应用程序集成了一些来自不同服务提供商的Web API,如Google Drive API、Gmail API、Google Sheets API 和Stack Web API.

图1 Mashup:breakout 的调用情况Fig.1 The invocation of Mashup:breakout

如今市场内公开可用的Web API 数量众多,如互联网上最大的Web API 统计在线注册平台ProgrammableWeb(https://www.programmableweb.com)已有20 000 余个在册Web API 和8 000 余个在册Mashup 应用,涵盖超过500 个应用类型.面对如此规模庞大、种类繁杂的Web API 库,如何合理找到满足需求的Web API 成为开发Mashup 应用程序面临的关键性技术问题.现有的Web API 推荐技术主要分为基于协同过滤[3]、基于内容[4]及基于混合模型[5]的推荐.基于内容的推荐主要关注Mashup的语义特征,挖掘其描述信息,但其对Mashup 描述文档的依赖度较高,文档信息的缺失可能大大削弱模型的推荐准确性;基于协同过滤的推荐则是对需求的相似性进行计算,却忽略了Mashup 和Web API 间的匹配关系;基于混合模型的推荐致力于将深度学习模型与传统模型相结合,以期提供更加准确的推荐.以上方法均忽略了Web API 的质量属性,作为影响用户选择API 的关键因素[6-7],Web API 质量属性往往会对推荐结果产生重要的影响,这种特征的缺失导致它们无法训练出一个性能良好的模型.如何利用Web API 质量属性进行建模从而有效提高推荐准确性,成为亟待解决的下一关键问题.

随着深度学习概念的提出,大量的深度学习模型被应用于上下文特征的表示,BERT(Bidirectional Encoder Representations from Transformers)[8]等预训练模型均取得了良好的性能,且自监督的训练方式使这些模型无需设计特定于任务的架构而只需针对特定任务进行微调,即可取得不错的性能.鉴于此,本文提出了一种结合BERT 预训练模型和Web API 多维质量感知建模的特征增强方法,从而利用Web API 自身质量属性提高推荐的准确性和有效性.

本文的主要贡献如下:

(1)提出结合BERT 预训练模型和基于自注意力机制质量特征融合的推荐模型(Quality Aware Recommendation,QAR);

(2)对Web API 的多维质量信息进行建模,将Web API 的多维质量进行稀疏编码处理成嵌入向量表示和Multi-hot 表示;

(3)模型训练时使用负采样和BPR(Bayesian Personalized Ranking)损失函数对模型性能进行优化.

1 相关工作

Web API 推荐的主要价值是简化开发者在开发应用时面临成千上万的Web API 而产生的选择问题,并指明当前Web API 的流行情况以供开发者参考.如何高效、快速、准确地推荐Web API 是现在研究人员面临的主要问题和挑战.本文主要从以下3 个方面总结了Web API 推荐的相关工作和研究:基于内容的推荐、基于协同过滤的推荐和基于混合方法的推荐.

基于内容的推荐[9-11]该类别是将给定的Mashup 需求和候选Web API 的文本描述利用词频和逆文本频率(TF-IDF)、主题模型等相关技术进行向量化表示,最后计算特征之间的相似性进行推荐.文献[9]提出了一种具有隐式相关正则化的概率矩阵分解方法来解决推荐问题并增强推荐多样性.该方法开发了一个潜在变量模型,通过分析API 的共同调用模式以揭示API 之间的潜在相关性.文献[10]通过结合协同过滤和文本内容的方法,将Mashup 和Web API 的调用交互及其功能信息集成到一个深度神经网络中用于表征Mashup 和Web API 的复杂关系.文献[11]提出了一种通过现实世界数据整合、文本挖掘和自然语言处理技术自动生成Mashup 的方法,主要考虑Web API 的相关性和流行性建立度量模型,对相似的Web API进行度量以提高推荐的有效性.

基于协同过滤的推荐[12-14]协同过滤方法通过挖掘Mashup 和Web API 的潜在相关关系从而实现更好的推荐.文献[12]利用开发者的开发历史调用记录进行相似度匹配,进而给开发者推荐感兴趣的Web API;文献[13]提出了一种基于混合协同过滤技术的时间稀疏感知服务推荐方法,通过区分时间度量和稳定度量,将时间影响考虑到经典的基于邻域的CF 模型中,以挖掘服务与稀疏矩阵之间的时间相似性.文献[14]提出了一种依据用户过去的评价和经验预测服务质量的协同过滤方法.

基于混合方法的推荐[15-18]为了更好地提高模型的推荐性能,有些研究使用了多种方法混合进行推荐.在众多混合模型中,文献[15]提出了一种基于关键词驱动的Web API 推荐方法,该方法通过关键词驱动和兼容性感知得到多个API 组进行推荐,使其既能满足App 开发者的功能需求,又能返回一组兼容的Web API 列表以供开发人员进行选择.文献[16]提出了一种基于文本扩展和深度模型的服务推荐方法,并利用基于具有两种注意力机制的LSTM 模型进行推荐以帮助选择最合适的服务.文献[17]提出了一种基于图卷积网络的端到端的SVGAE(语义变分图自动编码器)方法.该方法使用doc2vec 处理API 的文本描述,加入了API 的边信息,利用Mashup 中的API 组合关系构建API图进行推荐.文献[18]提出了一种特征表示增强的Web API 推荐方法高效地进行Web API 推荐.

2 质量感知的Web API 推荐

本文提出的QAR 模型利用BERT 模型作为文本编码器对Web API 的描述文本进行特征提取,并通过自注意力机制将其与Web API 的其余质量信息进行融合,得到增强特征;之后将该特征与基于Mashup 描述文本所得的文本特征向量做内积计算相关度,从而进行推荐,其结构如图2 所示.其中,vm是经文本编码器提取的Mashup 文档特征向量,va是Web API 的多维信息融合增强特征向量.vs′是经文本编码器获得的Web API 文档表示向量,vs是Web API 的嵌入表示向量.虚线框部分为API质量融合模块,q′是拼接后Web API 的质量Multihot 特征,vq′是Multi-hot 特征经全连接层后得到的密集向量表示,vq是稀疏质量信息融合后的Web API 的质量特征.

图2 QAR 模型结构Fig.2 The structure of QAR model

2.1 Web API 质量信息QoS 建模

2.1.1 质量特征提取 Web API 质量信息是影响用户在开发Mashup 时选择Web API 的关键[19].例如,设备特定情况作为最重要的Web API 质量信息之一,如果某个Web API 需要特定设备才能调用,而开发者并没有所要求的设备时,他们将会停止调用该Web API,并选择其他功能相似但没有特定设备要求的Web API.服务质量(Quality of Services,QoS)从非功能性方面描述了Web API 的质量信息,一般包括性能、可靠性、可用性等指标,服务质量的好坏直接影响用户对API 的使用体验,故也是用户进行Web API 选择时的重要考虑因素.因此,本文结合QoS 信息对Web API 质量信息进行建模,将质量属性进行提取并分别做Multi-hot 表示和稀疏嵌入处理,以增强Web API 的特征表示.

首先,通过对从网络爬取到的ProgrammableWeb数据集进行清洗和处理,得到Web API 对应的12种质量信息:主要类别(Primary Category)、次要类别(Secondary Category)、支持的请求格式(Supported Request Formats)、支持的响应格式(Supported Response Formats)、架构风格(Architectural Style)、范围(Scope)、SSL 支持情况(SSL Support)、设备特定情况(Device Specific)、是否非官方的Web API(Is This An Unofficial API)、是否超媒体 Web API(Is This a Hypermedia API)、是否限制访问(Restricted Access)、Web API 设计是否非专有(Is the API Design Non-Propritary),详细内容如表1 所示.

表1 Web API 质量属性情况Tab.1 The quantity of Web API’s attributes

对于 Web API 的主要类别、次要类别、架构风格、范围情况、支持的请求格式、支持的响应格式等6 个 Web API 的质量信息,其对应的属性类别数目较多且各不相同,故将该类质量信息对应属性分别做稀疏编码,通过嵌入查询得到相应向量表示,然后将其相加得到质量信息表示,如下式所示:

其中,T为对应的Web API 的质量信息嵌入表,sik为第i个Web API 对应质量信息中的第k个属性类别编号,F为实现查找对应向量的函数,hi为Web API 对应的质量属性类别的嵌入表示,qhi为最终得到的质量信息表示.

设备特定情况、SSL 支持情况、是否非官方的Web API,是否超媒体Web API,是否限制访问和Web API 设计是否非专有这6 个Web API 质量信息只有无(数据缺失)、是和否3 种情况,故将这6类质量信息转换成 One-hot 表示.无(数据缺失)、是和否3 种情况分别表示为[0,0],[1,0],[0,1],再将这6 个One-hot 表示进行拼接得到Multi-hot 向量作为质量表示,如下式所示:

其中,qSSL、qdevice、qaccess分别对应SSL 支持情况、设备特定情况和是否限制访问(需要提供商批准)的One-hot 表示,q′是对应 One-hot 向量拼接后的Multi-hot 表示.例如一个Web API 其设备特定情况、SSL 支持情况、是否非官方的Web API、是否超媒体Web API、是否限制访问、Web API 设计/描述是否非专有对应的质量信息为[yes,no,no,yes,yes,null],经转换拼接后的表示q′为 [1,0,0,1,0,1,1,0,1,0,0,0].最后将q′经过一个全连接层d即可得到质量属性特征,即vq′=d(q′).

2.1.2 质量特征融合 不同特征融合是特征增强的常用手段.在提取Web API 的不同质量特征后,如何有效地处理特征将直接决定模型的性能.深度学习中的注意力机制本质上类似于人类视觉的选择性注意力机制,其核心目标是从大量信息中为当前任务目标选择更关键的信息.为此本节采用自注意力机制对不同质量信息进行特征融合.如图3 所示,本文将获得的Web API 对应的不同种质量信息qhi通过一个自注意力层后输出增强的质量特征vq.

图3 Web API 的质量特征融合Fig.3 The quantity feature fusions of Web API

为了区分Web API 中不同质量特征对推荐结果的贡献,利用注意力机制自动为每个特征向量分配不同的权重,如下式所示:

其中,qhi是第i个Web API 对应的质量嵌入向量表示,αi是通过自注意力机制处理后得到的权重,其计算过程如下式所示:

其中,U∈Rd,W∈Rd×c,b∈Rd是注意力模块的初始化参数,d为嵌入向量维度,c为注意力单元个数,UT为U的转置,exp 为以自然常数e 为底的指数函数,tanh 为双曲正切函数.

最后,融合质量信息与文本描述信息的得到Web API 的增强特征va.其中α是质量模块与文本描述信息模块的权重参数.

2.2 文本特征提取Transformer 模型在自然语言处理任务中表现出出色的性能,本文使用预训练的Transformer 基础模型BERT[8].BERT 的核心思想是通过预训练为未标记的文本提供基于上下文信息的双向特征表示,即在海量语料的基础上运行自监督学习方法为词来学习一个好的特征表示.BERT 预训练模型仅通过微调输出层就可以在很多自然语言处理问题上取得非常好的效果,将其用作文本特征提取器,可以加快收敛速度,增强文本语义特征表示,提高模型的性能.

为了更好地利用BERT 模型,本文将最后5 个隐藏状态中的“[cls]”标签串联起来作为文本特征表示.如图4 所示,首先将Mashup 和Web API 的功能文本描述信息Mashup Text、Web API Text 输入到BERT 模型中,再将得到的ei进行拼接得到处理后的Mashup 文本特征表示vm和Web API 文本特征表示vs.其中,ei是Transformer 模型第i层中以“[cls]”标记的空间的隐藏状态,文本特征由最后5层e=[e1,e2,e3,e4,e5]拼接然后通过一个全连接层得到.Mashup 的文本描述信息经过BERT 模型得到的em=[em1,em2,em3,em4,em5],完成拼接后通过一个全连接层,即vm=d(em)获得其文本特征.同样地,Web API 的文本描述特征vs也经相同处理并经过全连接层d(es)得到.

图4 文本特征提取Fig.4 The encoder of text feature

2.3 损失函数和负采样本文使用BPR 损失函数来训练模型,损失函数如下式所示:

其中,r+是正样本,对应Mashup 调用的真实Web API,r-是负样本,ru是Mashup 调用的真实Web API 的集合,L为对数函数log,S为sigmoid 激活函数.对于每个正样本对<u,r+>,在训练模型时通常需要采集上百个负样本进行训练.为了提高训练速度,本节首先对负样本集合Ou,t中的每个标签计算其f(u,t-),然后选择具有最大值的样本,即r=计算损失函数并更新模型参数.例如,对于每一对<u,t+>,本节在采样阶段准备n个文档-负样本对,训练阶段计算所有负样本与Mashup文档的内积值,然后选取最大值并将此样本作为真负样本计算在损失函数中.

3 实验结果与分析

3.1 实验数据集实验中使用的数据来自ProgrammableWeb.com,它注册了多家互联网公司开放的Web API 和Mashup,涵盖金融、通信、安全、广告等多个类别.从该网站使用Python 爬虫工具抓取了20 233 个Web API 和8 473 个Mashup.对于每个Mashup,获取的文档主要包含4 种元数据:Mashup 名称、描述信息、类别信息、调用的Web API 及其详细质量相关信息.由于缺少一个或多个对应的主元数据,256 个无效Mashup 和124 个无效Web API 被删除.同时,没有被Mashup 调用的Web API 或没有调用任何Web API 的Mashup 也将被删除.

本文的实验数据集包含8 222 个Mashup 和1 650 个Web API.每个Mashup 平均包含17.019 个描述字符,每个Web API 平均包含44.296 个描述字符,每个Mashup 平均调用2.089 个Web API.为了进行性能评估,将数据集随机划分为训练集、测试集,划分比例为8∶2,分别包括6 573、1 644 个Mashup.实验数据集的统计数据如表2 所示.

表2 实验数据集的统计数据Tab.2 The statistical data of experimental data set

3.2 参数设置本模型的常规参数有Mashup 和Web API 文本截取长度和学习率,对性能有较大影响的参数包括Mashup 和Web API 的特征嵌入维度、质量融合权重和负采样数量,具体设置如表3所示.

表3 QAR 模型使用的超参数Tab.3 Hyperparametrics used by QAR model

3.3 评估指标推荐系统研究的一个重要部分是评估推荐算法的性能,不同评价方法可以从不同角度对模型进行评估.本文采用准确率(P@K)、召回率(R@K)和归一化折损累积增益(Normalized Discounted Cumulative Gain, IDCG@K)3 个常用指标对模型性能进行评估,下面将分别介绍这3 个评估指标.

准确率和召回率是信息检索和推荐系统领域广泛使用的两个指标,用于评估精度情况和召回情况.准确率是推荐Web API 列表中的命中数与推荐列表中Web API 总数的比值.它可以衡量出本文方法的准确性(P@K):

其中,K为推荐序列大小,γreal为目标Mashup 调用的Web API 真实集合,γtopK为对目标Mashup 推荐的前K个Web API 集合,∩为求取两个集合的交集操作.

召回率(R@K)是真实值命中数与推荐Web API 列表中所有真实值数的比值,可以反映推荐项的覆盖率:

NDCG 常用于信息检索,通过给不同的位置分配不同的收益,排名靠前的项目的收益更高,排名靠后的项目的收益则相对更低以评估排名的准确性.NDCG@K的公式表示为:

其中DCG@K是非归一化损失累积增益,从推荐列表的顶部累积至底部,评分随序列由上至下递减.但是,在评估所有推荐列表时需要归一化,故本文将DCG@K除以IDCG@K(第i处的真实折损的累计增益值)以获得NDCG@K值,φi=1/0表示第i个Web API 是否与当前Mashup 相关.

3.4 对比方法由于目前还没有针对Mashup 的Web API 推荐的通用基准模型,本文使用多种具有代表性的推荐方法作为基线来对比验证本文提出方法的有效性.

协同过滤(Collaborative Filter,CF):一种经典的推荐算法,该方法利用用户之间的相似度进行推荐.通过计算Mashup 之间的相似度,为目标Mashup推荐Web API.

流行度模型(Popularity-based Recommendation,POP):该方法直接向用户推荐受欢迎度较高的项目,首先以Mashup 的类别出现频率以及Web API交互频率作为流行度进行计算,将出现频率高的类别中的Web API 或交互频率高的Web API 进行推荐.

贝叶斯个性化排序(Bayesian Personalized Ranking,BPR):一种广泛用于预测用户对不同项目偏好的模型[20],通过加载预训练词向量获取将Mashup 文档特征,并使用Mashup 和Web API 之间交互的隐式反馈来训练模型.

随机游走推荐(Random Walk Recommendation,RWR):该方法设计了一个简洁的知识图谱模型来编码Mashup 描述文本,然后使用标签/类别实体对Mashup 需求进行建模[21].

服务剖面建模(Service Profile Reconstruction Model,SPR):该方法使用作者-主题模型对Mashup描述与Web API 之间的关系进行建模,针对Mashup描述的主题结构分析进行Web API 推荐[22].

BGRU-ATT 模型(Bi-direction Gated Recurrent Unit-Attention):GRU 最早在2014 年提出[23],该方法通过加载预训练词向量,经过双向GRU 层与注意力层获取文本表示,最后通过分类层进行分类,使用二元交叉熵损失函数计算损失.

BERT 模型(BERT-base):BERT 预训练模型含有12 层维度为768 的隐藏层,与本文的文本提取器相同,最后通过一个分类层进行微调训练.

质量感知推荐模型(Quality Aware Recommendation,QAR):本文提出的融合Web API 质量信息的推荐模型.使用BERT 作为文本编码器,对质量信息进行QoS 建模,并结合负采样进行训练.

QAR-模型:本文提出的QAR 模型的简单版,仅使用Web API 文本描述信息进行推荐.

上述基线方法可分为两大类,CF、POP、BPR、SPR、RWR 属于浅层模型,BGRU-ATT、BERT-base属于深度模型.

3.5 结果对比将QAR 与基线方法进行对比,在3 个评估指标上的实验结果如表4 所示.

表4 各模型实验结果对比Tab.4 The experimental results comparison of the models

由于ProgrammableWeb.com 中的数据平均每个Mashup 调用少于3 个Web API,为了使对比更加准确和明显,本文选取前1、3 和5 项的推荐结果进行对比.从表4 中可以看出,传统推荐方法的性能明显低于深度学习的推荐方法,CF 模型只考虑了Mashup 之间的相似度而忽略了Web API 和其产生的交互关系,其性能在3 个指标上的表现都很差;POP 模型则将Mashup 与Web API 的交互频率进行计算,没有将二者的描述文件加以考虑,该模型的推荐效果较CF 仅有小幅提高;RWR 模型的性能较差,尤其是在准确率指标上,由于该模型需要一个带有标签组合的Mashup 的需求,但是ProgrammableWeb.com 数据集中的很多Mashup 文档没有提供标签的组合信息,使得这个模型的表现不好;BPR 和SPR 比较相似,BPR 的优点是可以直接进行排名优化,从3 个指标的结果来看,BPR 在召回率上不如SPR,但在准确率和NDCG 指标则比SPR 要好;GRU-ATT 在准确率这一指标上很有竞争力,但其新“记忆”的加入受到老“记忆”约束,使得灵活性不够且存在过拟合风险;BERT 预训练模型在提取文本特征上优势明显,在所有基线方法中取得了最佳效果.

与基线方法相比,QAR-模型仅使用了Mashup和对应的Web API 文本描述信息,并未使用Web API 本身的质量信息进行预测,依然取得显著性能.QAR 融合Web API 质量建模信息,增强了API 的特征表示,使得该模型在所有指标上都显著优于其他方法.在相应top-1、3 上这种优势更为明显.对比基线方法,QAR 模型取得在准确率@{1-5}上3.97%~40.35%的提升、召回率@{1-5}上3.45%~34.81%的提升和NDCG@{1-5}上3.97%~29.35%的提升.对比无质量信息的QAR-模型,QAR 分别带来了准确率@{1-5} 0.34%~1.39 %的提升、召回率@{1-5} 0.98%~1.27%的提升和NDCG@{1-5} 1.2%~1.39%的提升.

3.6 参数分析质量融合权重指数 α与负采样次数n对模型性能的影响如图5 所示.将Mashup 和Web API 嵌入维度d设置为768,随着α 和n的增高,模型在3 个不同指标上的性能呈增长趋势,在 α和n分别取0.6 和150 时,模型的性能最优.

图5 QAR 模型在不同参数下的准确率、召回率和NDCGFig.5 The precision,recall and NDCG of QAR model with different parameters

Mashup 和Web API 的嵌入维度越高,向量的隐含信息就越丰富,但其所占用的内存与训练时间也会大大增加.考虑模型性能的平衡,本文将嵌入维度的最大值设置为768,与BERT 预训练模型的中间隐藏维度一致.嵌入维度d对模型性能的影响如图6 所示,在top-5 情况下,模型随着维度的增加,3 个不同指标上的预测表现越好.

图6 不同Web API 嵌入维度对应的准确率、召回率和NDCGFig.6 The precision,recall and NDCG of different Web API dimensions

4 结论

随着Web API 应用的增多,为开发人员推荐准确和高质量的Web API 可以大大提升Mashup 开发效率.本文提出了基于Web API 质量感知的QAR推荐模型,使用BERT 预训练模型提取Mashup 和Web API 文本描述特征,并对Web API 质量信息进行QoS 建模,利用自注意力机制技术来融合增强质量信息特征,为Mashup 进行Web API 推荐.本文使用从ProgrammableWeb.com 抓取的数据集进行实验,与其他基线方法进行比较,实验结果表明本文提出的方法比目前先进的方法具有更高的准确性.本文从挖掘Web API 质量信息角度建立了更高性能的推荐模型,对Web API 的质量信息进行了充分挖掘和利用,提高了推荐效果.然而,本文模型提取文本信息特征基于BERT 预训练模型,该模型虽然高效,但其对硬件的要求较高,且训练时间较长.据此可以引入知识蒸馏概念以提高性能,从这一角度来说,该研究还有很大空间可以尝试.

猜你喜欢

性能特征模型
UIO-66热解ZrO2负载CoMoS对4-甲基酚的加氢脱氧性能
夏季五招提高种鹅繁殖性能
适用于BDS-3 PPP的随机模型
自制空间站模型
离散型随机变量的分布列与数字特征
桌面端,GTX 1650并不是千元价位的显卡好选择
抓特征解方程组
不忠诚的四个特征
模型小览(二)
离散型随机变量分布列的两法则和三模型