基于特征表示增强的Web API推荐

段云浩 武浩

引用本文:
Citation:

基于特征表示增强的Web API推荐

    作者简介: 段云浩(1995−),男,云南人,硕士生,主要研究服务计算、推荐系统. E-mail:yhduan@mail.ynu.edu.cn;
    通讯作者: 武浩, haowu@ynu.edu.cn

Feature representation reinforcement based on Web API recommendation

    Corresponding author: WU Hao, haowu@ynu.edu.cn
  • 摘要: Web API是基于Web服务的轻型解决方案,代表可重用的最小组件. 通过组合多种Web API,能够创建具有高层次功能的组合应用Mashup,实现业务增值的需求. Web API数量和种类的快速增长,使得发掘契合的Web API进行Mashup创建变得愈发困难. 针对此问题,提出一种特征表示增强的Web API推荐方法来高效地进行Web API推荐,提高Mashup创建的效率. 首先,将Mashup的文档描述映射到向量空间进行特征比较,目的是获得与目标Mashup相似的近邻Mashup;然后,利用基于神经网络的特征提取模型对目标Mashup和近邻Mashup的文本特征进行学习,将提取后的特征结合类别特征进行表示增强;最后,基于表示增强后的语义特征进行Web API推荐. 实验结果表明,该方法能够有效地推荐Web API,在多项指标上取得显著的效果.
  • 图 1  特征表示增强的Web API推荐流程

    Figure 1.  Web API recommendation process based on feature representation reinforcement

    图 2  近邻选择模块中的相似度计算

    Figure 2.  Similarity calculation in neighbor selection module

    图 3  特征表示增强模块

    Figure 3.  Module of feature representation reinforcement

    图 4  特征表示增强的Web API推荐模型

    Figure 4.  Feature representation model enhanced web API recommendation

    表 1  模型超参数设置

    Table 1.  Hyper-parameter settings in model

    模型参数数值
    预训练词向量维度 300
    文档描述截取单词数 200
    卷积核尺寸 {2,3,4,5}
    同尺寸卷积核数量 128
    学习率 $ 1\times {10}^{-3} $
    随机丢弃率 $ 2\times {10}^{-1} $
    下载: 导出CSV

    表 2  各模型推荐性能比较

    Table 2.  Recommendation performance comparison of each model

    模型NDCG@5NDCG@10Recall@5Recall@10MAP@5MAP@10Precision@5Precision@10
    CF 0.234 0.316 0.326 0.576 0.236 0.257 0.115 0.103
    NCF 0.349 0.375 0.392 0.463 0.405 0.406 0.130 0.082
    Pop 0.366 0.397 0.415 0.511 0.411 0.416 0.142 0.090
    BPR 0.499 0.501 0.394 0.495 0.580 0.567 0.180 0.123
    F3RM 0.619 0.626 0.612 0.645 0.696 0.683 0.204 0.114
    下载: 导出CSV

    表 3  Web API推荐实例分析

    Table 3.  Case study on Web API recommendation

    目标Mashup模型API推荐序列前3项
    Roamoo CF Twitter Google-Maps Facebook
    NCF Shizzow Flickr Zootool
    Pop Google-Maps Flickr AP-Advertising
    BPR Twilio Twilio-Sms Last.fm
    F3RM Google-Maps Flickr YouTube
    真实值 Google-Search Google-Maps ProgrammableWeb
    Sleevenotes CF Twitter AP-Advertising Facebook
    NCF Google-Maps Last.fm Flickr
    Pop Google-Maps Twitter YouTube
    BPR Last.fm Flickr Youtube
    F3RM AP-Advertising Flickr Last.fm
    真实值 Flickr AP-Advertising MusicBrainz
    下载: 导出CSV
  • [1] Tan W, Fan Y S, Ghoneim A, et al. From the service-oriented architecture to the Web API economy[J]. IEEE Internet Computing, 2016, 20(4): 64-68. DOI:  10.1109/MIC.2016.74.
    [2] Verborgh R, Dumontier M. A Web API ecosystem through feature-based reuse[J]. IEEE Internet Computing, 2018, 22(3): 29-37. DOI:  10.1109/MIC.2018.032501515.
    [3] Wang X, Wu H, Hsu C H. Mashup-oriented API recommendation via random walk on knowledge graph[J]. IEEE Access, 2019, 7: 7 651-7 662. DOI:  10.1109/ACCESS.2018.2890156.
    [4] 陈志敏, 李志强. 基于用户特征和项目属性的协同过滤算法[J]. 计算机应用, 2011, 31(11): 1 748-1 755. Chen Z M, Li Z Q. Collaborative filtering recommendation algorithm based on user characteristics and item attributes[J]. Journal of Computer Applications, 2011, 31(11): 1 748-1 755.
    [5] Yao L N, Wang X Z, Sheng Q Z, et al. Mashup recommendation by regularizing matrix factorization with API Co-invocations[J]. IEEE Transactions on Services Computing (Early Access), 2012, 14(2): 502-515.
    [6] Xia B F, Fan Y S, Tan W, et al. Category-Aware API clustering and distributed recommendation for automatic mashup creation[J]. IEEE Transactions on Services Computing, 2015, 8(5): 674-687. DOI:  10.1109/TSC.2014.2379251.
    [7] 王海艳, 周洋. 基于推荐质量的信任感知推荐系统[J]. 计算机科学, 2014, 41(6): 119-124. DOI:  10.11896/j.issn.1002-137X.2014.06.024. Wang H Y, Zhou Y. Quality of recommendation based trust-aware recommender system[J]. Computer Science, 2014, 41(6): 119-124.
    [8] Bao Q H, Zhang J, Duan X Y, et al. A fine-grained API link prediction approach supporting mashup recommendation[C]// Proceedings of the 2017 IEEE International Conference on Web Services, Honolulu, HI, USA, 2017: 220-228.
    [9] 胡堰, 彭启民, 胡晓惠. 一种基于隐语义概率模型的个性化Web服务推荐方法[J]. 计算机研究与发展, 2014, 51(8): 1 781-1 793. DOI:  10.7544/issn1000-1239.2014.20130024. Hu Y, Peng Q M, Hu X H. A personalized Web service recommendation method based on latent semantic probabilistic model[J]. Journal of Computer Research and Development, 2014, 51(8): 1 781-1 793.
    [10] Cao B Q, Liu X Q, Rahman M M, et al. Integrated content and network-based service clustering and Web APIs recommendation for mashup development[J]. IEEE Transactions on Services Computing, 2020, 13(1): 99-113. DOI:  10.1109/TSC.2017.2686390.
    [11] Xue Q H, Liu L, Chen W P, et al. Automatic generation and recommendation for API mashups[C]// Proceedings of the 2017 16th IEEE International Conference on Machine Learning and Applications, Cancun, Mexico, 2017: 119-124.
    [12] Jiang Y C, Liu J X, Tang M D, et al. An effective Web service recommendation method based on personalized collaborative filtering[C]// Proceedings of the 2011 IEEE International Conference on Web Services, Washington, DC, USA, 2011: 211-218.
    [13] Cao B Q, Tang M D, Huang X. CSCF: A mashup service recommendation approach based on content similarity and collaborative filtering[J]. International Journal of Grid and Distributed Computing, 2014, 7(2): 163-172. DOI:  10.14257/ijgdc.2014.7.2.15.
    [14] Zheng Z B, Ma H, Lyu M R. QoS-aware Web service recommendation via collaborative filtering[J]. IEEE Transactions on Services Computing, 2010, 4(2): 140-152.
    [15] Li H C, Liu J X, Cao B Q, et al. Integrating tag, topic, co-occurrence, and popularity to recommend Web APIs for mashup creation[C]// Proceedings of the 2017 IEEE 14th International Conference on Services Computing, Honolulu, HI, USA, 2017: 84-91.
    [16] Collobert R, Weston J, Bottou L, et al. Natural language processing (Almost) from scratch[J]. The Journal of Machine Learning Research, 2011, 12(8): 2 493-2 537.
    [17] 吴汉瑜, 严江, 黄少滨, 等. 用于文本分类的CNNBiLSTM Attention混合模型[J]. 计算机科学, 2020, 47(11A): 23-27. Wu H Y, Yan J, Huang S B, et al. CNNBiLSTM Attention hybrid model for text classification[J]. Computer Science, 2020, 47(11A): 23-27.
    [18] Kim Y. Convolutional neural networks for sentence classification[C]// Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing, Doha, Qatar, 2014: 1 746-1 751.
    [19] 王根生, 潘方正. 融合多元异构信息的矩阵分解推荐算法[J]. 小型微型计算机系统, 2020, 41(7): 1 406-1 412. Wang G S, Pan F Z. Matrix factorization recommendation algorithms based on multiple heterogeneous information fusion[J]. Journal of Chinese Computer System, 2020, 41(7): 1 406-1 412.
    [20] 朱郁筱, 吕琳媛. 推荐系统评价指标综述[J]. 电子科技大学学报, 2012, 41(2): 163-175. Zhu Y X, Lyu L Y. Evaluation metrics for recommender systems[J]. Journal of University of Electronic Science and Technology of China, 2012, 41(2): 163-175.
    [21] He X N, Liao L Z, Zhang H W. Neural collaborativefiltering[C]// Proceedings of the 26th International Conference on World Wide Web, Perth, Australia, 2017: 173-182.
  • [1] 蒲斌李浩卢晨阳王治辉刘华 . 基于神经网络的海量GPS数据交通流量预测. 云南大学学报(自然科学版), 2019, 41(1): 53-60. doi: 10.7540/j.ynu.20170292
    [2] 陈建平杨宜民张会章陈学松 . 一种基于GMDH模型的神经网络学习算法. 云南大学学报(自然科学版), 2008, 30(6): 569-574.
    [3] 朱娟萍侯忠生陆正福熊丹 . 应用神经网络的非参数模型自适应控制. 云南大学学报(自然科学版), 2005, 27(4): 280-284.
    [4] 陶志勇胡启振任晓奎 . 基于二层分解技术和改进神经网络的河流溶解氧预测研究. 云南大学学报(自然科学版), 2021, 43(): 1-9. doi: 10.7540/j.ynu.20210194
    [5] 张小青李艳红 . 基于灰狼优化算法的神经网络PMSM混沌同步控制. 云南大学学报(自然科学版), 2020, 42(4): 664-672. doi: 10.7540/j.ynu.20190534
    [6] 张黎黎李志军 . 可编程神经元sigmoid函数及其导数发生器的实现. 云南大学学报(自然科学版), 2016, 38(1): 44-53. doi: 10.7540/j.ynu.20150294
    [7] 王鹤鸣王灵矫谭貌夏伟郭华 . 基于多目标优化回声状态网络的电网故障恢复. 云南大学学报(自然科学版), 2017, 39(5): 760-767. doi: 10.7540/j.ynu.20160757
    [8] 丁海燕 . 计算智能主要技术及其在智能教学系统中的应用. 云南大学学报(自然科学版), 2013, 35(S2): 430-. doi: 10.7540/j.ynu.20130690
    [9] 堵锡华李靖田林李昭周俊陈艳吴琼 . 杜松籽油香气成分的理论分析模型. 云南大学学报(自然科学版), 2019, 41(1): 136-143. doi: 10.7540/j.ynu.20180414
    [10] 王长正向凤红苑仁令 . 板球系统的LM算法改进RBF-PID轨迹跟踪控制研究. 云南大学学报(自然科学版), 2019, 41(): 1-8. doi: 10.7540/j.ynu.20180512
    [11] 陶志勇李艳 . 基于变量节点更新改进的自修正最小和算法. 云南大学学报(自然科学版), 2020, 42(2): 252-258. doi: 10.7540/j.ynu.20190521
    [12] 钟鼎杰杨存建 . 基于遥感影像的山岳冰川信息计算机解译方法探讨——以梅里雪山为例. 云南大学学报(自然科学版), 2021, 43(5): 942-952. doi: 10.7540/j.ynu.20200543
    [13] 李淼周冬明刘琰煜谢诗冬王长城卫依雪 . 结合深度残差神经网络与Retinex理论的低照度图像增强. 云南大学学报(自然科学版), 2021, 43(4): 690-699. doi: 10.7540/j.ynu.20200421
    [14] 程祥磊鲍慈光彭莉 . 人工神经网络预测离子色谱分离条件. 云南大学学报(自然科学版), 2003, 25(1): 61-64.
    [15] 马晓敏王新 . 基于遗传算法的BP神经网络改进. 云南大学学报(自然科学版), 2013, 35(S2): 34-. doi: 10.7540/j.ynu.2013b4
    [16] 蔡莉姚绍文张璇 . 基于语义网的隐私本体的建立和Web应用. 云南大学学报(自然科学版), 2010, 32(1): 43-47,7 .
    [17] 周冬明 . 具有变时滞的细胞神经网络的全局指数稳定性. 云南大学学报(自然科学版), 2002, 24(2): 93-95,100.
    [18] 姬晨郭延哺金宸段云浩李维华 . 一种基于卷积神经网络的跨领域情感分析. 云南大学学报(自然科学版), 2019, 41(2): 253-258. doi: 10.7540/j.ynu.20180050
    [19] 贾时银周冬明聂仁灿赵东风 . 脉冲耦合神经网络模型参数优化及图像分割. 云南大学学报(自然科学版), 2010, 32(5): 521-525 .
    [20] 袁刚周冬明聂仁灿 . 基于简化脉冲耦合神经网络的噪声人脸识别. 云南大学学报(自然科学版), 2015, 37(5): 687-694. doi: 10.7540/j.ynu.20150056
  • 加载中
图(4)表(3)
计量
  • 文章访问数:  425
  • HTML全文浏览量:  416
  • PDF下载量:  14
  • 被引次数: 0
出版历程
  • 收稿日期:  2020-11-23
  • 录用日期:  2021-01-26
  • 网络出版日期:  2021-04-10
  • 刊出日期:  2021-09-15

基于特征表示增强的Web API推荐

    作者简介:段云浩(1995−),男,云南人,硕士生,主要研究服务计算、推荐系统. E-mail:yhduan@mail.ynu.edu.cn
    通讯作者: 武浩, haowu@ynu.edu.cn
  • 云南大学 信息学院,云南 昆明 650500

摘要: Web API是基于Web服务的轻型解决方案,代表可重用的最小组件. 通过组合多种Web API,能够创建具有高层次功能的组合应用Mashup,实现业务增值的需求. Web API数量和种类的快速增长,使得发掘契合的Web API进行Mashup创建变得愈发困难. 针对此问题,提出一种特征表示增强的Web API推荐方法来高效地进行Web API推荐,提高Mashup创建的效率. 首先,将Mashup的文档描述映射到向量空间进行特征比较,目的是获得与目标Mashup相似的近邻Mashup;然后,利用基于神经网络的特征提取模型对目标Mashup和近邻Mashup的文本特征进行学习,将提取后的特征结合类别特征进行表示增强;最后,基于表示增强后的语义特征进行Web API推荐. 实验结果表明,该方法能够有效地推荐Web API,在多项指标上取得显著的效果.

English Abstract

  • 随着服务计算和云计算的快速发展,组合现有的Web服务应用程序编程接口进行软件开发已经成为一种高效的方法,这使得网络环境中Web API的数量不断增长[1],对Web API进行整理并注册登记的生态系统也随之出现. Mashup是组合多种Web API进行复合应用创建的技术,该技术极大地释放了开发者的生产力[2]. 但在Web API数量持续增长的背景下,如何根据开发需求找到契合的Web API进行Mashup创建,已经成为了Mashup这一技术需要面对的下一个难题. Web API推荐便是解决这一问题的重要方向[3]. 多种推荐方法和模型已经被应用于Web API推荐中,这些方法可以分为基于协同过滤的推荐[4-6]和基于内容的推荐[7-11]. 基于协同过滤的推荐通过计算相似度,对相似用户或物品进行推荐,这类方法专注于发掘需求的相似性,能够共享相似项目的经验,在数据较稀疏的情况下也能够取得一定的效果. 但这类方法没有给予需求本身足够的关注,也就是说,基于协同过滤的推荐方法缺少对Web API和Mashup之间的需求匹配,单纯基于相似性进行推荐还有可能导致Web API推荐的冗余. 基于内容的推荐注重对Mashup创建时功能描述的挖掘,通过建立开发需求与Web API之间的关系提高推荐的准确性. 这类方法重点关注对Mashup语义特征的挖掘,因而在很大程度上依赖于描述文档. 但是,如果在描述文档中没有提供足够的信息,推荐结果将无法令人满意. 如何从数据出发,提高Web API推荐的有效性,仍需结合有效的语义表示和深度学习等技术手段不断探索[9].

    为了克服现有推荐模型的局限性,本文提出特征表示增强的Web API推荐模型(Feature Representation Reinforcement Recommendation Model,F3RM). 方法针对Mashup的描述文档,将描述文档映射至向量空间并利用近邻思想寻找与目标Mashup相似的近邻Mashup;采用基于神经网络的特征提取模型学习目标Mashup、近邻Mashup以及交互Web API的语义特征表示并通过后两者对目标Mashup语义特征表示进行增强;在增强特征表示基础上建立Mashup需求到Web API之间的联系,对Web API进行筛选,最终将满足需求的Web API作为面向Mashup创建的推荐集合.

    • Web API数量的不断增加使得Web API推荐的研究热度也不断上升. 作为服务计算中的热门话题,Web API推荐可以采用一般项目推荐中的大部分方法进行,但这并没有考虑到如何将Web API融入到服务组合中,实现重用增值. 现有研究尽管给出了一些解决方法,但对于如何通过深度学习等技术手段完善开发需求与Web API的匹配机制,提高组合推荐准确性和效果方面需持续探究. 现有方法主要分为两类:一类是基于协同过滤的推荐;另一类基于Mashup的需求内容进行推荐.

    • 基于协同过滤的方法通过历史关系来进行预测,又称作基于记忆的方法. 此类方法利用相似信息进行推荐,个体通过合作的机制给予整体一定程度的信息回应,并记录下来以达到过滤的目的. Xia等[6]基于主题模型对服务描述建模后,以类别为中心对服务聚类,再结合协同过滤对服务的类别进行相关性排名,预测每个类别内的服务排名顺序. Jiang等[12]通过集成基于用户的个性化算法和基于项目的个性化算法过滤前K个相似用户和服务进行Web API推荐. Cao等[13]的方法结合了兴趣值和协同过滤对Web API进行推荐. 通过将基于用户的协同过滤与基于项目的协同过滤相结合,Zheng等[14]提出了一种Web服务质量值预测方法,分析来自类似用户的服务质量信息帮助用户发掘合适的Web API.

    • 基于内容的推荐对需求进行主题建模,利用需求与Web API之间的相关性进行推荐,能够较为直接地获取到和需求相近的Web API. Cao等[10]使用Mashup服务之间的关系开发两级主题模型,以提高服务聚类的准确性,设计了基于协同过滤的Web API推荐算法,利用从Mashup与相应Web API之间的历史调用推断出的Web API之间的隐式协同调用关系,为每个Mashup推荐不同的Web API. Li等[15]使用关系主题模型对Mashup和Web API的标签和主题信息建模,由此计算Web API之间的相似度和Mashup之间的相似度,使用Web API的调用时间和类别信息推导它们的流行度,并通过因子机建模多个维度的信息,例如Mashup和Web API的相似度,Web API的流行度等,以预测和推荐目标Mashup对应的Web API.

      这些工作已经证明,结合推荐技术可以有效地提高Mashup应用创建中Web API筛选的效率. 但这些方法还未将深度学习应用于推荐系统中. 本文方法属于基于内容的Web API推荐,探索了特征表示增强和深度学习在推荐系统的应用,取得了积极的成果.

    • 为了便于理解,本节给出与Web API推荐相关的定义.

      定义 1 Mashup表示组合多个Web API完成复杂功能的应用程序. 同时也可以作为Web API资源被其他应用程序调用. 将所有Mashup的集合定义为:$M=\left\{{m}_{1},{\cdots ,m}_{i},\cdots ,{m}_{\left|M\right|}\right\}$,其中 $ \left|M\right| $$ M $ 集合中Mashup的数量,$ {m}_{i} $ 表示集合中任一Mashup. 对于 $ {m}_{i} $ 来说,其包含4种类型的元数据:名称 $ {n}_{i} $、文档描述 $ {d}_{i} $、类别标签 $ {{c}}_{i} $ 和交互Web API集合 $ {S}_{i} $,下标 $ i $ 表示元数据对应于Mashup的序号,即 $ {m}_{i}= $$ \{{n}_{i},{d}_{i},{{c}}_{i},{S}_{i}\} $.

      定义 2 Web API表示Web服务提供商提供的应用程序编程接口. 将所有Web API的集合定义为 $A=\{{a}_{1},\cdots ,{a}_{j},\cdots, {a}_{\left|A\right|}\}$,其中 $ {a}_{j} $ 是集合中任意一个Web API,$ \left|A\right| $ 是集合中Web API的总数. 对于 $ {a}_{j} $ 来说,其包含3个类型的元数据:名称 $ {n}_{j}^{\mathrm{a}} $、文档描述 $ {d}_{j}^{\mathrm{a}} $,类别标签 $ {{c}}_{j}^{\mathrm{a}} $. 上标 $ \mathrm{a} $ 表示元数据对应于Web API,与Mashup的元数据相区别,下标 $ j $ 表示元数据对应于Web API的序号,即 $ {a}_{j}=\{{n}_{j}^{\mathrm{a}},{d}_{j}^{\mathrm{a}},{{c}}_{j}^{\mathrm{a}}\} $.

      定义 3 Web API推荐指创建一个Mashup需要调用多个Web API. 通过对Mashup文档描述 $ {d}_{m} $ 的利用,依据用户对Mashup开发的需求,建立开发需求到Web API之间的关联,实现需求对应的Web API推荐.

    • 图1所示,特征表示增强的Web API推荐主要涉及3个步骤:近邻Mashup筛选、特征表示增强和Web API推荐. 首先,基于目标Mashup的文档描述的特征找到与其具有较高相似度的近邻Mashup;然后,利用神经网络的高维拟合及特征提取能力,对目标Mashup、近邻Mashup以及目标Mashup的类别标签学习得到特征表示,通过线性方法将语义特征表示组合得到增强特征表示;最后,基于增强特征表示计算需求与Web API的相关程度,生成针对目标Mashup的前K项Web API推荐序列.

      图  1  特征表示增强的Web API推荐流程

      Figure 1.  Web API recommendation process based on feature representation reinforcement

    • 文档描述相较于其他元数据包含了更加丰富的信息,不论是Mashup、Web API或是开发需求描述,都是通过文档这一介质承载的. 因此,对Mashup的文档描述建模和表示技术在基于内容的推荐方法中至关重要. 单个Mashup或是Web API文档描述具有的信息是有限的. 从表示增强的角度出发,运用相似Mashup文档描述和交互API文档描述对目标Mashup的文档描述从特征向量的维度进行增强,这里的相似Mashup即称为近邻Mashup.

      合理选取目标Mashup的近邻Mashup是首先需要解决的问题. K最近邻(K-Nearest Neighbor,KNN)算法是一个理论成熟的方法. KNN方法的思路为在特征空间中,如果目标样本附近的K个最近(即特征空间中最邻近)样本的大多数属于某一个类别,则该样本也属于这个类别. 基于KNN的思路,提出模型结构中的第一部分:近邻选择模块. 该模块选择文档描述在特征空间中的K个最近邻样本作为近邻Mashup,并输出目标Mashup与近邻Mashup文档特征.

      近邻选择模块中的相似度计算结构如图2所示. 对于任一目标Mashup $ {m}^{\mathrm{t}}=\{{n}^{\mathrm{t}},{d}^{\mathrm{t}},{{c}}^{\mathrm{t}},{S}^{\mathrm{t}}\} $,其中n表示名称,d表示文档描述,c表示类别标签,S表示调用Web API集合, 上标 $ \mathrm{t} $ 作为目标Mashup的标识. 除 $ {m}^{\mathrm{t}} $ 外其余Mashup作为候选Mashup,得到候选Mashup集合 ${M}^{\mathrm{c}}= $$ \left\{{m}_{1}^{\mathrm{c}},\cdots ,{m}_{\left|M\right|-1}^{\mathrm{c}}\right\}$,上标 $ \mathrm{c} $ 作为候选Mashup的标识,其中任意一个候选Mashup $ {m}^{\mathrm{c}}=\{{n}^{\mathrm{c}},{d}^{\mathrm{c}},{{c}}^{\mathrm{c}},{S}^{\mathrm{c}}\} $. 从对应元数据中提取出文档描述,得到目标Mashup文档描述 $ {d}^{\mathrm{t}} $ 和候选Mashup文档描述集合 $ D= $$ \{{d}_{1}^{\mathrm{c}},\cdots ,{d}_{\left|M\right|-1}^{\mathrm{c}}\} $. 对于目标Mashup文档描述 $ {d}^{\mathrm{t}} $ 和候选集合中任一Mashup文档描述 $ {d}^{\mathrm{c}} $,将两者文档描述输入采用Glove预训练词向量[16]进行词向量初始化的嵌入层,描述中的每个单词映射到 $ N $ 维向量特征空间,文档描述截取前200个单词以统一规模. 目标Mashup文档特征表示为

      图  2  近邻选择模块中的相似度计算

      Figure 2.  Similarity calculation in neighbor selection module

      $ {{e}}^{\mathrm{t}}=[{F}\left({d}^{\mathrm{t}}\left[1\right]\right),\cdots ,{F}\left({d}^{\mathrm{t}}\left[200\right]\right)]. $

      候选Mashup文档特征表示为

      $ {{e}}^{\mathrm{c}}=[{{F}}\left({d}^{\mathrm{c}}\left[1\right]\right),\cdots ,{{F}}({d}^{\mathrm{c}}\left[200\right]\left)\right], $

      其中,$ {d}^{\mathrm{t}}\left[1\right] $$ {d}^{\mathrm{t}}\left[200\right] $$ {d}^{\mathrm{c}}\left[1\right] $$ {d}^{\mathrm{c}}\left[200\right] $ 代表文档描述中的单词,$ {F} $ 为嵌入层中将单词映射至特征空间的映射函数. 将所有映射后的单词特征拼接,即得到目标Mashup文档特征 $ {{e}}^{\mathrm{t}} $ 与候选Mashup文档特征 $ {{e}}^{\mathrm{c}} $. 为计算目标Mashup与候选Mashup的相似度,对文档特征采用点积运算,定义如下:

      $ {\rm{Similarity}}\left({m}^{\mathrm{t}},{m}^{\mathrm{c}}\right)={{e}}^{\mathrm{t}} \cdot {{e}}^{\mathrm{c}}, $

      $ {{e}}^{\mathrm{t}} \cdot {{e}}^{\mathrm{c}}=\sum\limits_{j=1}^{N}{e}_{j}^{\mathrm{t}}{e}_{j}^{\mathrm{c}}. $

      此时,得到目标Mashup与任一候选Mashup相似度. 通过循环完成目标Mashup对候选集合中所有Mashup的相似度计算后,选取相似度最高的前 $ K $ 个候选Mashup,$ K $ 是设定的近邻Mashup集合数量,即得到目标Mashup的近邻Mashup. 目标Mashup及近邻Mashup的文档特征作为近邻选择模块的输出以供下游任务使用.

    • 传统的建模方法基于“词袋”模型,文本的词序和语法被忽略[17],特征的选择需要在模型中进行人工干预. 随着深度学习的进一步繁荣,人们已经极大地关注了使用深度神经网络来探索文本建模[18]. 由于神经网络模型具有特征选择的能力,可以利用词上下文实现更好的语义表示. 本节基于广泛使用的卷积神经网络[18],提出模型结构中的特征表示增强模块,模块结构如图3所示.

      图  3  特征表示增强模块

      Figure 3.  Module of feature representation reinforcement

      在近邻筛选模块中,得到了目标Mashup及近邻Mashup的文档特征,结合目标Mashup类别标签 ${{c}}^{\mathrm{t}}$,共同作为特征表示增强模块的输入. 对于文档特征,将其输入卷积层进行特征提取,卷积层中的卷积核 ${{G}}_{k}\in {{R}}^{{ws}_{l}\times N}$ 首先在 $ {ws}_{l} $ 大小的单词窗口上滑动执行卷积运算:

      $ {{g}}_{k}={\rm{ReLU}}\left({{G}}_{k}{{e}}+{{b}}_{k}\right), $

      其中, $ {{b}}_{k} $ 为偏置项,$ \mathrm{ReLU} $ 作为激活函数对卷积得到的特征图进行非线性映射,得到目标Mashup与近邻Mashup的特征图 $ {{g}}_{k}^{\mathrm{t}} $$ {{g}}_{k}^{\mathrm{c}} $. 为了进一步提取特征,降低参数数量,在获得特征图后将其输入池化层,进行最大值池化操作并将特征进行拼接:

      $ {{p}}_{l}=\left[{\rm{MaxPooling}}\right({{g}}_{k});\cdots ;{\rm{MaxPooling}}({{g}}_{K}\left)\right], $

      其中,K为相同尺寸卷积核的数量,$ \mathrm{MaxPooling} $ 作为最大值池化操作对特征图进行池化处理,$ l $ 为任意尺寸卷积核的大小. 为了获取不同层次的语义特征,采用不同尺寸的卷积核进行提取,对不同尺寸卷积核获得的特征图进行拼接得到 ${{p}}^{\mathrm{t}}= $$ [{{p}}_{1}^{\mathrm{t}};{\cdots ;{{p}}}_{l}^{\mathrm{t}};\cdots ;{{p}}_{L}^{\mathrm{t}}]$${{p}}^{\mathrm{c}}=[{{p}}_{1}^{\mathrm{c}};{\cdots ;{{p}}}_{l}^{\mathrm{c}};\cdots ;{{p}}_{L}^{\mathrm{c}}]$,其中 $ L $ 为卷积核尺寸的数量. 最后,将 ${{p}}^{\mathrm{t}}$${{p}}^{\mathrm{c}}$ 输入全连接层进行非线性变换:

      $ {{v}}={\rm{sigmoid}}({{W}}_{0}{{p}}+{{b}}_{0}), $

      其中,$ {{b}}_{0} $ 为偏置项参数,$ {{W}}_{0} $ 为映射参数,$ \mathrm{sigmoid} $ 作为激活函数. 至此,得到了目标Mashup的语义特征 $ {{v}}^{\mathrm{t}} $ 与近邻Mashup的语义特征 $ {{v}}^{\mathrm{c}} $.

      对于类别标签,将其输入嵌入层映射至与语义特征相同维度的向量空间:

      $ {{h}}^{\mathrm{t}}={{W}}_{1}{{c}}^{\mathrm{t}}+{{b}}_{1}, $

      其中,$ {{b}}_{1} $ 为嵌入层偏置量,$ {{W}}_{1} $ 为嵌入层映射参数. 经过嵌入层后得到类别特征 $ {{h}}^{\mathrm{t}} $,将语义特征 $ {{v}}^{\mathrm{t}} $$ {{v}}^{\mathrm{c}} $ 与其进行线性叠加,公式如下:

      $ {{f}}^{\mathrm{t}}={{W}}_{2}{{v}}^{\mathrm{t}}+{{W}}_{3}{{v}}^{\mathrm{c}}+{{W}}_{4}{{h}}^{\mathrm{t}}, $

      其中,$ {{W}}_{2} $$ {{W}}_{3} $$ {{W}}_{4} $ 分别表示表示目标Mashup语义特征、近邻Mashup语义特征和目标Mashup类别特征的特征权重,下游任务基于增强的特征表示 $ {{f}}^{\mathrm{t}} $ 表示展开.

    • 特征表示增强的Web API推荐模型结构如图4所示. 模型输入包含目标Mashup的类别标签、文档描述和候选Mashup的文档描述. 在经过近邻选择模块、特征增强模块得到表示增强的目标Mashup语义特征 ${{f}}^{\mathrm{t}}$ 后,将其输入全连接层进行Web API相关程度的预测:

      图  4  特征表示增强的Web API推荐模型

      Figure 4.  Feature representation model enhanced web API recommendation

      $ \hat{{y}}={\rm{sigmoid}}({{W}}_{5}{{f}}^{\mathrm{t}}+{{b}}_{5}). $

      在该全连接层中,${{b}}_{5}$ 为全连接层偏置量,$ {{W}}_{5} $ 为全连接层映射参数,将 $ {{f}}^{\mathrm{t}} $ 转化为具有Web API数量大小的相关度向量,即 $\hat{{y}}=[\hat{{y}}\left[{a}_{1}\right]\cdots ,\hat{{y}}\left[{a}_{j}\right],\cdots ,\hat{{y}}[{a}_{\left|A\right|}\left]\right]$. 其中,$ \hat{{y}}\left[{a}_{j}\right] $ 为目标Mashup $ {m}^{\mathrm{t}} $ 对应Web API $ {a}_{j} $ 的相关程度值. 由于模型采用神经网络架构搭建,结合 $ \hat{{y}} $ 采用多标签分类的方法对模型进行训练. 将每一个Web API映射为一个分类标签,此时问题进一步分解为多个独立的二元分类问题,通过模型输出的多个 $ \left(\mathrm{0,1}\right) $ 范围的相关程度值来确定是否推荐该Web API,通过相关程度值排序获得推荐序列.

      本文的目标是训练一个可以使用 $ A $ 的最相关子集自动标记进行Web API推荐的模型. 在模型训练中,采用二元交叉熵损失(Binary Cross Entropy Loss,BCE Loss),定义如下:

      $\begin{split}& {{L}}(\hat{{y}},{{y}})=-\frac{1}{|A|}\sum\limits_{a\in A}({{y}}[a]\mathrm{log}(\hat{{y}}[a])+\\& 1-{{y}}[a]\mathrm{log}(1-\hat{{y}}[a])), \end{split}$

      其中,$ {{y}}\left[a\right] $ 指Mashup $ {m}^{\mathrm{t}} $ 是否调用了API $ a $,调用时为1,反之为0;$ \hat{{y}}\left[a\right] $ 是对应于 $ m $ 的预测值. 经过训练后,通过预测相关程度值 $ \hat{{y}}\subseteq {\left\{\mathrm{0,1}\right\}}^{\left|A\right|} $ 生成针对需求 $ m $ 的候选Web API的推荐列表,并根据这些分数对所有Web API进行排名.

      在得到损失函数之后,模型优化的目标是最小化预测值与真实值之间的差异,即可以获得模型的目标函数,如下所示:

      $ \min\frac{1}{\left|M\right|}\sum\nolimits_{m\in M}\left(\mathrm{L}\left(\hat{{y}},{{y}}\right)\right)+\lambda {\left|\left|{{\theta }}\right|\right|}_{2}^{2}. $

      其中,$ {{\theta }}=\{{{G}}_{*},{{W}}_{*},{{b}}_{*}\} $ 表示模型参数, $ {{G}}_{*} $ 是特征表示增强模块中所有卷积核参数,$ {{W}}_{*} $ 是模型全连接层中权重参数,$ {{b}}_{*} $ 是模型中各功能层偏置项参数,$ \lambda {\left|\left|{{\theta }}\right|\right|}_{2}^{2} $ 是用于抑制模型过度拟合的L2正则化项. 鉴于模型基于神经网络实现,采用反向传播算法对模型参数进行更新,并采用自适应矩估计(Adaptive moment estimation,Adam)作为优化方法.

    • ProgrammableWeb是一个规模巨大的在线API生态系统,能够在其中找到超过20000个Web API. 这些Web API覆盖了超过400个频繁被调用的种类,包括社交、音乐、地图等. 本文利用爬虫从ProgrammableWeb中爬取了22642个Web API和8484个Mashup. 对于每个Mashup,获得4种元数据:名称,描述信息,类别信息和Web API交互信息. 对于每个API,获得3种元数据:名称、描述和类别信息. 由于缺少上述对应的主要元数据中的1个或多个,删除了267个无效的Mashup和124个无效的API.

      经过初步的筛选,本文中的实验数据集包括8217个Mashup,1647个API,每个API至少被Mashup调用了1次. 其中,每个Mashup包含平均17个单词数量的文档描述,每个API包含44个单词数量的文档描述,平均每个Mashup调用了2个API. 为了进行性能评估,实验中使用留出法将数据集随机分为训练集、验证集和测试集,划分比例为8∶1∶1,分别包括6573、822和822个Mashup.

    • 实验参数的选取直接影响最后的实验结果,包括预训练词向量维度、文档描述截取长度、优化函数、损失函数等. 本文中选取了表1中所示参数作为模型的设置,参数通过多次实验调节得出.

      模型参数数值
      预训练词向量维度 300
      文档描述截取单词数 200
      卷积核尺寸 {2,3,4,5}
      同尺寸卷积核数量 128
      学习率 $ 1\times {10}^{-3} $
      随机丢弃率 $ 2\times {10}^{-1} $

      表 1  模型超参数设置

      Table 1.  Hyper-parameter settings in model

    • 针对推荐系统评估研究,王根生等[19]和朱郁筱等[20]从不同的角度总结了评估方法,例如离线评估、用户调查和在线评估. 由于用户调查和在线评估的成本高昂,因此本文通过遵循当前的大多数研究,采用4个离线评估指标:精准度(Precision)、召回率(Recall)、归一化折损累计增益(Normalized Discounted Cumulative Gain,NDCG)和平均精度均值(Mean Average Precision,MAP).

      精度值和召回率是在信息检索和推荐领域中广泛使用的两种评估结果质量的方法. 其中精度值是Web API推荐中实际匹配次数与推荐API总数之比,衡量推荐的准确性,定义如下:

      $ {E}_{{\rm{Precision@}}N}=\frac{\left|{\gamma }_{{\rm{real}}}\cap {\gamma }_{{\rm{top}}N}\right|}{\left|{\gamma }_{{\rm{top}}N}\right|}, $

      其中,$ N $ 为选取的推荐预测序列大小,$ {\gamma }_{{\rm{real}}} $ 表示目标Mashup交互调用Web API的真实集合,$ {\gamma }_{{\rm{top}}N} $ 表示针对目标Mashup推荐的前N个Web API集合,$ \cap $ 表示对两个集合求交集.

      召回率是指推荐的Web API中的实际匹配次数与所有推荐Web API的数量之比,衡量推荐的查全率:

      $ {E}_{{\rm{Recall@}}N}=\frac{\left|{\gamma }_{{\rm{real}}}\cap {\gamma }_{{\rm{top}}N}\right|}{\left|{\gamma }_{{\rm{real}}}\right|}. $

      归一化折损累计增益用于衡量排序结果的质量,其计算公式如下:

      $ {E}_{{\rm{NDCG@}}N} = \frac{{E}_{{\rm{DCG@}}N}}{{E}_{{\rm{IDCG@}}N}}, $

      其中 $ {E}_{{\rm{DCG@}}N} $$ {E}_{{\rm{IDCG@}}N} $ 的公式如下:

      $ {E}_{{\rm{DCG@}}N}={\mathrm{\varphi }}_{1}+\sum\limits_{i=2}^{N}\frac{{\mathrm{\varphi }}_{i}}{{\mathrm{log}}_{2}\left(i+1\right)}, $

      $ {E}_{{\rm{IDCG@}}N}=\sum\limits_{i=1}^{\left|{\gamma }_{{\rm{real}}}\right|}\frac{{2}^{{\mathrm{\varphi }}_{i}}}{{\mathrm{log}}_{2}\left(i+1\right)}. $

      $ {\mathrm{\varphi }}_{i}= 1/0 $ 表示第 $ i $ 个Web API是否与当前Mashup相关. $ {E}_{{\rm{DCG@}}N} $ 从推荐序列的顶部向底部累积,序列中Web API的评分随着序列的由上向下递减. $ {{{E}}}_{{\rm{IDCG@}}N} $ 表示在第 $ N $ 处的真实折损累计增益值. $ {E}_{{\rm{DCG@}}N} $ 值介于 $ (0,{E}_{{\rm{IDCG@}}N}] $ 之间,因此归一化折损累计增益值介于 $ (0,1] $ 之间. 与归一化折损累计增益相似,平均精度均值同样广泛用于信息检索和推荐系统,定义如下:

      $ {E}_{{\rm{MAP@}}N}=\frac{1}{\left|M\right|}\sum\limits_{m\in M}{E}_{{\rm{AP@}}N} $

      其中计算目标Mashup推荐列表的 $ {E}_{{\rm{AP@}}N} $定义如下:

      $ {E}_{{\rm{AP@}}N}=\frac{\displaystyle\sum\limits_{i=1}^{N}{\mathrm{\varphi }}_{i}{E}_{{\rm{Precision@}}i}}{\displaystyle\sum\limits_{i=1}^{N}{\mathrm{\varphi }}_{i}}. $

    • 为了验证所提方法的有效性,本文使用多种具有代表性的推荐方法作为基准模型.

    • 基于用户的协同过滤算法是一种经典的推荐算法,其核心是计算用户之间的相似度并通过相似用户进行推荐. 本文中采用的协同过滤模型首先利用 $ \mathrm{Similarity}({m}^{\mathrm{t}},m) $ 计算目标Mashup与其余Mashup之间的相似度,然后推荐与目标Mashup最相似的Mashup中存在交互关系的Web API.

    • 神经协同过滤是推荐系统中一种极具竞争性的神经推荐模型. 对于本文中的应用场景而言,使用Glove.6B.300d预训练词向量对目标Mashup的文档描述初始化作为特征嵌入,通对Mashup和Web API之间交互关系的隐式反馈训练模型.

    • 流行度模型直接向用户推荐受欢迎度较高的项目,是推荐系统领域中常用的基准模型之一. 对于Web API推荐这一任务,将流行度转化为Mashup的类别出现频率以及Web API交互频率. 也就是说,出现频率高的类别中的Web API或交互频率高的Web API,都位于推荐列表的前列.

    • 贝叶斯个性化排序在推荐系统中广泛用于预测不同项目上的用户偏好. 给定一对Web API $( {a}_{i}/{a}_{j}) $,如果一个Mashup $ m $ 调用了 $ {a}_{i} $ 但没有调用 $ {a}_{j} $,那么便得到一个三元组 $ (m,{a}_{i},{a}_{j}) $,这意味着 $ {a}_{i} $ 对于 $ m $ 的排名高于 $ {a}_{j} $. 在本文的场景中,使用Glove.6B.300d预训练词向量对目标Mashup的文档描述初始化作为Mashup的特征嵌入,并通过Mashup和Web API之间交互的隐式反馈训练模型.

    • 在实验中,文档单词的截取长度设置为200,采用Glove.6B.300d预训练词向量对嵌入层进行初始化,维数固定为300,卷积核窗口的大小设置为{2,3,4,5},每种尺寸有128个卷积核. 使用Adam作为优化器,学习率设置为 $ 1\times {10}^{-3} $,损失函数为BCE Loss. 此外,在训练过程中采用早期停止策略预防模型过拟合.

    • 为验证本文提出方法的有效性,从不同维度将对F3RM与所选基准方法进行比较. 各模型在4个性能指标上的实验结果如表2所示,达到最优性能的模型对应指标进行了标黑处理.

      模型NDCG@5NDCG@10Recall@5Recall@10MAP@5MAP@10Precision@5Precision@10
      CF 0.234 0.316 0.326 0.576 0.236 0.257 0.115 0.103
      NCF 0.349 0.375 0.392 0.463 0.405 0.406 0.130 0.082
      Pop 0.366 0.397 0.415 0.511 0.411 0.416 0.142 0.090
      BPR 0.499 0.501 0.394 0.495 0.580 0.567 0.180 0.123
      F3RM 0.619 0.626 0.612 0.645 0.696 0.683 0.204 0.114

      表 2  各模型推荐性能比较

      Table 2.  Recommendation performance comparison of each model

      由于每个Mashup仅与少量Web API进行了交互(平均Web API交互数为2),因此推荐序列的顶部较为关键. 当考虑到前5名和前10名的推荐项目时,这种趋势会更加明显. 因此,本文给出了前5项与前10项的预测指标评估数据. 通过性能的对比,CF在各项指标中表现较弱,尤其是在NDCG和MAP指标中. CF使用单词袋模型和向量空间模型来建模Mashup文档,这使得其无法稳定运行,存在较大波动. NCF的表现优于CF,NCF的损失函数与本文模型的损失函数不同,这会导致较大的性能差距. Pop取得不错的成绩,它的性能优于CF和NCF. 对于BPR来说,它是最具有可比性的模型. BPR的优势在于直接进行排名的优化,在Preciosion@10一项中取得了不错的成绩. 与所有基准模型相比,F3RM在几乎所有性能指标上表现明显优于它们. 当N为5~10时,F3RM将基线方法的NDCG提高了24.0%~24.9%,Recall提高了30.3%~55.3%,MAP提高了17.1%~20.1%,Precision提高了13.3%.

    • 表3是两个目标Mashup在不同推荐方法下前3项Web API推荐结果. 目标Mashup分别为Roamoo、Sleevenotes. 它们来自不同的应用类别和领域. 在表3中,前3项Web API推荐命中了真实值的Web API进行了标黑.

      目标Mashup模型API推荐序列前3项
      Roamoo CF Twitter Google-Maps Facebook
      NCF Shizzow Flickr Zootool
      Pop Google-Maps Flickr AP-Advertising
      BPR Twilio Twilio-Sms Last.fm
      F3RM Google-Maps Flickr YouTube
      真实值 Google-Search Google-Maps ProgrammableWeb
      Sleevenotes CF Twitter AP-Advertising Facebook
      NCF Google-Maps Last.fm Flickr
      Pop Google-Maps Twitter YouTube
      BPR Last.fm Flickr Youtube
      F3RM AP-Advertising Flickr Last.fm
      真实值 Flickr AP-Advertising MusicBrainz

      表 3  Web API推荐实例分析

      Table 3.  Case study on Web API recommendation

      Roamoo是一个具有照片,视频,评论,行程询问和社交网络功能的本地旅行应用. NCF和BPR在这一实例中前3项API推荐没有命中真实值,CF、Pop和F3RM取得了良好的成绩,在前3项API的推荐中命中了一项.

      Sleevenotes是一个结合了多种媒体源的Mashup,它旨在为音乐爱好者提供高质量的音乐专辑,音乐专辑里不仅包含音乐作品,还有个人简介和其他背景的多种介绍. 该Mashup以Flickr,Amazon,MusicBrainz和Wikipedia为基础. 在这一实例中,大部分模型命中一项达到合格的水平,Pop没有命中,F3RM命中了两项,达到优秀的水平.

      通过实例分析,验证了所提出模型在Web API推荐这一任务中的有效性,并且超越众多基线对比模型,取得了优秀的成绩.

    • 为了解决面向Mashup创建时Web API推荐的局限性,本文提出了一种基于增强特征表示提高Web API推荐准确率的模型F3RM. 该模型首先通过特征表示筛选与目标Mashup相似的近邻Mashup;然后采用基于神经网络的语义特征提取操作提取目标Mashup、近邻Mashup语义特征,利用线性方法结合类别标签进行特征表示增强,进行Web API推荐. 在真实网络环境中数据集上的实验结果表明,F3RM可以有效地提高Web API推荐的准确性. 未来,将继续探索Web API推荐任务中更多的可能性,实现更为高效的推荐.

参考文献 (21)

目录

    /

    返回文章
    返回