HIN应用调研总结

news2024/12/24 11:42:40

文章目录

  • 1. 代码安全
    • iDev: enhancing social coding security by cross-platform user identification between GitHub and stack overflow【A】
  • 2. API推荐
    • Group preference based API recommendation via heterogeneous information network【A】
  • 3.Andorid恶意软件检测
    • Out-of-sample Node Representation Learning for Heterogeneous Graph in Real-time Android Malware Detection【A】
  • 4. 重复缺陷报告检测
    • HINDBR: Heterogeneous Information Network Based Duplicate Bug Report Prediction【B】
  • 5. 程序理解与表示
    • Learning to represent programs with heterogeneous graphs【B】
  • 6. 缺陷报告开发者分发
    • KSAP: An approach to bug report assignment using KNN search and heterogeneous proximity【B】
  • 7. Smart Contract漏洞检测
    • MANDO: Multi-Level Heterogeneous Graph Embeddings for Fine-Grained Detection of Smart Contract Vulnerabilities
  • 8. 不安全代码片段检测
    • ICSD: An Automatic System for Insecure Code Snippet Detection in Stack Overflow over Heterogeneous Information Network【B】
  • 9. 缺陷报告开发者分发
    • A spatial–temporal graph neural network framework for automated software bug triaging
  • 10. 代码审查推荐
    • Using Large-scale Heterogeneous Graph Representation Learning for Code Review Recommendations
  • 总结

1. 代码安全

iDev: enhancing social coding security by cross-platform user identification between GitHub and stack overflow【A】

Yujie Fan, Yiming Zhang, Shifu Hou, Lingwei Chen, Yanfang Ye, Chuan Shi, Liang Zhao, & Shouhuai Xu (2019). iDev: Enhancing Social Coding Security by Cross-platform User Identification Between GitHub and Stack Overflow international joint conference on artificial intelligence.

通过GitHub和Stack overflow之间的跨平台用户识别来增强社交编码安全

背景与问题:GitHub与Stack Overflow等平台逐渐流行,潜在的安全问题也在上升,主要归因于风险与有害代码能很好地嵌入传播。文献利用异质图表示学习识别用户,检测跨平台投毒攻击者。

image-20221112203536519

贡献:自动跨平台【Github与Stack Overflow】用户识别,利用用户的属性与社交编码属性等进行用户标识,检测投毒攻击者。

方法与模型:构造跨平台用户代码交互图,基于attributed heterogeneous information network (AHIN),提出AHIN2Vec用户表示学习。将表示学习的结果用作下游任务的节点特征,进行跨平台用户识别。

image-20221112203612916

image-20221112211144024

2. API推荐

Group preference based API recommendation via heterogeneous information network【A】

Fenfang Xie, Liang Chen, Dongding Lin, Chuan Chen, Zibin Zheng, & Xiaola Lin (2018). Poster: Group Preference Based API Recommendation via Heterogeneous Information Network international conference on software engineering.

基于组推荐的异构信息网络API推荐

背景与问题:异构信息网络(HIN)是一种能够包括多种类型的边与多种类型的节点关系的逻辑网络。先前的API推荐研究主要关注在同构信息网络以及很少种类的边,所以并没有利用其本身丰富的异构信息。

方法与模型:GPRec。输入:Mashup信息【tag、category、description】,API 信息【tag,category、description、provider】以及Mashups与API之间的历史调用记录。GPRec Model:利用mashup、api、以及它们之间的相关属性构造异构信息网络。利用不同元路径连接mashup来学习不同的语义表示。利用四种相似度度量方法来计算不同混搭之间的相似度。采用贝叶斯群偏好个性化排序算法对每对Mashup-API排序。输出:个性化排序后的结果。

image-20221112220447869

3.Andorid恶意软件检测

Out-of-sample Node Representation Learning for Heterogeneous Graph in Real-time Android Malware Detection【A】

Yanfang Ye, Shifu Hou, Lingwei Chen, Jingwei Lei, Wenqiang Wan, Jiabin Wang, Qi Xiong, & Fudong Shao (2019). Out-of-sample Node Representation Learning for Heterogeneous Graph in Real-time Android Malware Detection international joint conference on artificial intelligence.

Android 恶意软件实时检测中异构图的样本外节点表示学习

背景与问题:日益复杂的安卓恶意软件要求有能力保护移动用户免遭威胁的防御技术。由于 Android 恶意软件检测是一个速度敏感的应用程序并且需要具有成本效益的解决方案,因此需要可扩展的 HG 表示学习方法,特别是对于样本外节点。文献利用异质图表示学习识别软件,检测恶意软件。

image-20221113130444927

方法与模型:构造APP-组件关系异质图,基于Heterogeneous Graph Learning进行异质图表示学习。将学习表示用作下游任务节点特征,进行软件检测。

image-20221113130625080

image-20221113134330848

image-20221113134802037

4. 重复缺陷报告检测

HINDBR: Heterogeneous Information Network Based Duplicate Bug Report Prediction【B】

Guanping Xiao, Xiaoting Du, Yulei Sui, & Tao Yue (2020). HINDBR: Heterogeneous Information Network Based Duplicate Bug Report Prediction international symposium on software reliability engineering.

基于异构信息网络的重复Bug报告预测

背景与问题:Bug追踪系统中存在重复的Bug错误。现存的方法主要是基于文本相似度的方法来进行重复Bug识别,但是这个方法在JIT中变得不可行。

方法与模型:HINDBR。通过HIN的表征学习,HINDRB将错误报告的语义关系嵌入到低维空间中,利用曼哈顿距离求两个向量之间的距离,当两个向量距离在潜在空间彼此接近时,就认为这两个向量表示的是一个重复错误。

image-20221113152551402

构造的HIN:

  1. 节点:bug report (BID)【TextBID,unstructured features】, component (COM), product (PRO), version (VER), priority (PRI), and severity (SEV).【structured】
  2. 关系:Bug-Component,Component-Product,Bug-Version,Bug-Priority,Bug-Severity

特征表示与融合:

  1. 结构特征。HIN2Vec来预训练结构特征。
  2. 非结构特征。Word2Vec来预训练非结构特征text。
  3. 对于某个节点,将其结构特征与非结构特征融合作为其最终的特征表示。

重复Bug相似度度量方法:曼哈顿距离

局限与未来工作:因为预训练的向量都是基于指定数据集,所以模型不能泛化到其它数据集来进行重复Bug检测。

5. 程序理解与表示

Learning to represent programs with heterogeneous graphs【B】

Wenhan Wang, Kechi Zhang, Ge Li, & Zhi Jin (2021). Learning to Represent Programs with Heterogeneous Graphs arXiv: Software Engineering.

使用异构图学习程序表示

背景与问题:代码表示将程序转换为具有语义的向量,对于源代码处理至关重要。Abstract Syntax Tree (AST)【抽象语法树】所构成的增强图,包含丰富的语义信息与结构信息。为了学习代码的表示,现存的方法主要是同构图,所以忽视了节点与边的类型信息。文献利用异质图表示学习理解源代码,进行方法名预测与代码分类

image-20221113170808781

方法与模型:Heterogeneous Program Graph (HPG):提供节点与边的类型,使用Abstract Syntax Description Language (ASDL)将抽象语法树生成抽象语法异质图。基于HGT学习异质图的节点表示,将表示结果作为下游任务节点特征。

image-20221113165601899

image-20221113171449477

Heterogeneous Graph Transformer (HGT)

image-20221113171909013image-20221113172211359image-20221113171921912image-20221113171935022

方法存在的缺陷

  1. 没有引入节点与边的属性特征,所以需要初始化表征。
  2. 采用的子令牌结构,对实体命名有较强的假设要求

6. 缺陷报告开发者分发

KSAP: An approach to bug report assignment using KNN search and heterogeneous proximity【B】

Wen Zhang, Song Wang, & Qing Wang (2016). KSAP: An approach to bug report assignment using KNN search and heterogeneous proximity Information & Software Technology.

一种基于KNN搜索和异构邻近的bug报告分配方法

背景与问题:及时的将Bug报告分配给开发人员,对软件质量保证至关重要。随着软件系统发展,将Bug分配给合适的开发人员是困难的。

模型与方法:KSAP。当一个新的Bug报告提交后,构造该Bug报告的异质图。KSAP将使用一个二阶段程序分配该报告给开发者。第一个阶段是通过k -最近邻(KNN)方法将历史上已解决的类似bug报告搜索到新的bug报告。第二阶段是根据不同种类的邻近性对那些贡献了类似错误报告的开发人员进行排名。

image-20221113193429515

image-20221113193613950

实体:developer, bug, comment, component, product。

关系:

image-20221113194415204

未来工作:将在错误存储库中考虑更多实体,例如错误报告的版本和平台,以利用更多异构信息来推荐开发人员解决错误报告。未来计划解决异构邻近度排名中过度专业化的问题。

7. Smart Contract漏洞检测

MANDO: Multi-Level Heterogeneous Graph Embeddings for Fine-Grained Detection of Smart Contract Vulnerabilities

Hoang H. Nguyen, Nhat-Minh Nguyen, Chunyao Xie, Zahra Ahmadi, Daniel Kudendo, Thanh-Nam Doan, & Lingxiao Jiang (2022). MANDO: Multi-Level Heterogeneous Graph Embeddings for Fine-Grained Detection of Smart Contract Vulnerabilities

用于细粒度检测智能合约漏洞的多级异构嵌入

背景与问题:学习由不同类型的节点和边组成的异构图增强了同构图技术的结果。控制流图这种异构图表示可能的软件代码执行流。控制流图能表示更多代码、开发技术和工具的语义信息,从而有利于检测软件中的漏洞。现存的方法不能处理具有不同类型的大量边与节点的异构图。

模型与方法:MANDO。给定以太坊智能合约中的软件代码,构造控制流异质图与调用图异质图,将两种图融合构造异质合约图。基于元路径的方法学习异质合约图的节点表示。将表示学习结果用作下游任务节点特征,识别合约中存在漏洞。

image-20221113200942845

image-20221113201015285

8. 不安全代码片段检测

ICSD: An Automatic System for Insecure Code Snippet Detection in Stack Overflow over Heterogeneous Information Network【B】

Yanfang Ye, Shifu Hou, Lingwei Chen, Xin Li, Liang Zhao, Shouhuai Xu, Jiabin Wang, & Qi Xiong (2018). ICSD: An Automatic System for Insecure Code Snippet Detection in Stack Overflow over Heterogeneous Information Network annual computer security applications conference.

使用异构信息网络对Stack Overflow中的安全代码片段检测的自动化系统

背景与问题:随着现代社会编码范式【Stack Overflow】的流行,不安全的代码在系统中很简单嵌入与分布的安全隐患也在增加。

模型与方法

  1. 利用代码内容【功能名称、函数、API】与社会编码属性来检测Stack Overflow中的不安全代码片段。社会编码属性包括用户、徽章、问题、答案、代码片段等。
  2. 利用HIN来学习丰富的语义关系,基于元路径的方法来融合更高层次的语义特征,从而建立代码段的相关性。
  3. 提出snippet2vec框架来学习HIN中丰富的语义知识与结构知识的表示。
  4. 多视图融合分类器来进行下游任务【不安全代码片段的检测】。

image-20221118162214221

模型优点

  1. Stack Overflow数据的最新特征表示。
  2. 基于最新表示学习模型的多视图融合分类器。
  3. 不安全代码片段自动检测的实际系统。

9. 缺陷报告开发者分发

A spatial–temporal graph neural network framework for automated software bug triaging

Hongrun Wu, Yutao Ma, Zhenglong Xiang, Chen Yang, & Keqing He (2021). A Spatial-Temporal Graph Neural Network Framework for Automated Software Bug Triaging arXiv: Software Engineering.

用于自动化软件Bug诊断分类的时空图神经网络

背景与问题

  1. 为了高效分配Bug给指定开发人员,Bug诊断分类程序是非常重要的。
  2. 现有的大部分方法只关注单个时间片的静态折叠图,缺乏动态性与扩展性。
  3. 先前的工作都没考虑开发者的周期性交互。

模型与方法

  1. 提出spatial-temporal dynamic graph neural network (ST-DGNN),时空动态图神经网络。包括joint random walk (JRWalk) mechanism与graph recurrent convolutional neural network (GRCNN) model两部分。
  2. JRWalk通过考虑节点【节点度,reputation】与边【边权重,preference】的重要性,使用两种采样策略采样本地拓扑结构。
  3. CRCNN有三个相同结构组件:每小时周期性、每日周期性、每周周期性。学习时空图上的动态developer collaboration networks(DCN)特征。【CNN、LSTM】

image-20221204101859927

image-20221204101924054

image-20221204101944471

10. 代码审查推荐

Using Large-scale Heterogeneous Graph Representation Learning for Code Review Recommendations

Jiyang Zhang, Chandra Maddila, Ram Bairi, Christian Bird, Ujjwal Raizada, Apoorva Agrawal, Yamini Jhawar, Kim Herzig, & Arie van Deursen (2022). Using Large-scale Heterogeneous Graph Representation Learning for Code Review Recommendations

使用大规模异构图表征学习用于代码审查推荐

背景与问题

  1. 代码审查是成熟软件发展一个重要的程序。
  2. 大多数审查推荐系统主要依赖历史文件变化与评论信息。虽然这些方法能够识别并建议合格的审查员,但它们可能对那些拥有所需专业知识且从未与更改过的文件进行过交互的审查员视而不见。

模型与方法

  1. Coral。审查员推荐系统。从一组丰富的实体(包括开发者、存储库、文件、拉取请求、工作项目等)及其在现代源代码管理系统中的关系构建的社会技术图。
  2. 利用RGCN来进行异质图表示学习。
  3. 采用inductive的学习范式。
  4. 模型结构简单,适合于大规模异构图。

image-20221204102257269

image-20221204102207906

RGCN

image-20221204102534189

缺陷

  1. 没有考虑节点与边的属性特征。
  2. 需要满足IID的假设。
  3. 对于融合节点特征与图拓扑结构,缺乏自适应能力。

总结

HIN通用流程

  1. 收集相关数据集
  2. 构造异质图【节点、边、属性、元路径】
  3. 异质图上的节点表示学习
  4. 下游任务

HIN面对的挑战

  1. 如何收集与清洗数据集
  2. 如何构造有效的异质图
  3. 如何基于下游任务设计合适的编码器来学习节点表示
  4. 如何扩展到OOD场景与大规模图数据场景中
  5. 如何在基于元路径的表示学习方法中构造一组充分且有效的元路径

异质图表示学习方法

  1. 基于元路径的方法【HIN2Vec】
  2. 基于注意力机制的方法【HGT】
  3. 元路径与注意力机制的组合方法【HAN】

元路径

image-20221112211008182

img

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/61377.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SSM甜品店系统计算机毕业论文java毕业设计选题源代码

💖💖更多项目资源,最下方联系我们✨✨✨✨✨✨ 目录 Java项目介绍 资料获取 Java项目介绍 计算机毕业设计java毕设之SSM甜品店系统-IT实战营_哔哩哔哩_bilibili项目资料网址: http://itzygogogo.com软件下载地址:http://itzygogogo.com/i…

中英双语多语言外贸企业网站源码系统 - HanCMS - 安装部署教程

随着跨境独立站的流行,中英双语的公司官网越来越受到重视。 此项目是基于开源CMS开发出的中英文双语外贸企业网站内容管理系统,命名HanCMS HanCMS 汉CMS中英双语多语种外贸网站系统,是一个轻量级的网站系统,访问速度极快&#xff…

[附源码]计算机毕业设计小太阳幼儿园学生管理系统Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

威伦触摸屏TK6060IP简单例子

详情见以下链接 https://download.csdn.net/download/weixin_39926429/87242438

[附源码]Python计算机毕业设计SSM教务管理系统(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

基于连续小波变换的厄尔尼诺海平面周期变化数据集分析

基于连续小波变换的厄尔尼诺海平面周期变化数据集分析1. 厄尔尼诺海平面周期变化数据集介绍2. 基于连续小波变换的信号分析2.1 原始信号读取可视化2.2 傅里叶变换结果可视化2.3 小波变换结果可视化参考资料后记1. 厄尔尼诺海平面周期变化数据集介绍 这些数据是通过国际热带海洋…

文件上传的multipart/form-data属性,你理解了吗

form表单经常用于前端发送请求,比如:用户填写信息、选择数据、上传文件,对于不同的场景,上传数据的格式也会有些区别。 action action 表示该请求的 url 地址,定义在form上,请求的URI,可以写完…

【Python自然语言处理】文本向量化的六种常见模型讲解(独热编码、词袋模型、词频-逆文档频率模型、N元模型、单词-向量模型、文档-向量模型)

觉得有帮助请点赞关注收藏~~~ 一、文本向量化 文本向量化:将文本信息表示成能够表达文本语义的向量,是用数值向量来表示文本的语义。 词嵌入(Word Embedding):一种将文本中的词转换成数字向量的方法,属于文本向量化处理的范畴。 …

Linux操作系统~基于systemV共享内存的进程间通信

目录 一.进程间通信有哪些方式 二.什么是systemV 三.共享内存-双向通信-大致实现思路 四.4个函数about共享内存 1.shmget函数-创建 ftok函数 ​编辑 e.g. ipcs/ipcrm指令(ipc资源会被回收吗) 2.shmctl函数-删除/释放 3.shmat函数-挂接 4.shmdt…

汽车以太网简史

一、为啥需要新车载总线 在一个行业中,当一种新技术被开发和启用时,影响该技术成功的因素有很多。其中最重要的是该技术带来的益处以及自身成本。 第一个吃螃蟹的 2004年宝马决定从2008年起在其开始量产(SOP)的汽车中引入一个中…

c++ 指针

目录 1.指针的基本概念 2.定义指针,使用指针 3.指针所占的内存空间 4.空指针和野指针 4.1空指针 4.2野指针 5.const修饰指针 5.1常量指针 5.2指针常量 5.3const既修饰指针又修饰常量 6.指针和数组,利用指针访问数组 6.1概述 6.2使用数组名和下表访问 6.3使用…

【LIN总线测试】——LIN主节点数据链路层测试

系列文章目录 📒【LIN总线测试】——LIN主节点物理层测试 📒【LIN总线测试】——LIN从节点物理层测试 📒【LIN总线测试】——LIN主节点数据链路层测试 📒【LIN总线测试】——LIN主节点网络管理测试 📒【LIN总线测试】…

Docker consul的容器服务更新与发现

1)什么是服务注册与发现 服务注册与发现是微服务架构中不可或缺的重要组件。起初服务都是单节点的,不保障高可用性,也不考虑服务的压力承载,服务之间调用单纯的通过接口访问。直到后来出现了多个节点的分布式架构,起初…

一软一硬:记录我的工作电脑两次出现性能问题的分析思路和解决过程

作为一个程序员,每天工作中糟心的事情之一,莫过于自己用来编码的计算机,运行速度忽然变得奇慢无比。尤其像我这种年过四旬仍然在一线从事编码工作的老程序员来说,只有靠不断提高单位时间的产出效率,来弥补和年轻程序员…

网课搜题接口

网课搜题接口 本平台优点: 多题库查题、独立后台、响应速度快、全网平台可查、功能最全! 1.想要给自己的公众号获得查题接口,只需要两步! 2.题库: 题库:题库后台(点击跳转) 题库…

【leetcode】 盛最多水的容器

一、题目描述 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明:你不能倾…

移动通信:数字调制技术(BPSK, DPSK, QPSK, Π/4 QPSK,BFSK, MSK, GMSK, M-ary)学习笔记

文章目录Factors That Influence the Choice of Digital ModulationBandwidth and Power Spectral Density of Digital SignalsPulse Shaping TechniquesGeometric Representation of Modulation SignalsLinear Modulation TechniquesBPSKDifferential Phase Shift Keying (DPS…

软件定义汽车的关键—车载操作系统

文章目录 前言一、车载系统是什么?二、车载系统在智能汽车中的应用总结前言 智能网联大环境变革情况下,软件定义汽车理念已成行业共识。 传统分布式E/E架构因如下原因: 计算能力不足(车规芯片);通讯带宽不…

树和二叉树

目录 1.树的概念及结构 1.1树的概念 1.2.树的表示 1.2.1孩子兄弟表示法 2.2双亲表示法 1.3二叉树在实际中的应用 2.二叉树的概念及结构 2.1二叉树的概念 2.2特殊的二叉树 2.3二叉树的性质 2.4二叉树的实现及其的一些接口(链式) 2.4.1二叉树的…

配置 4G 模块为WAN口上网

配置 4G 模块为WAN口上网 将Linux板卡配置为交换机,提供类似路由器的上网功能。这里以4G网卡作为WAN进行上网。 1. 配置4G模块为默认网关 先配置好4G模块为默认路由网关。 这里需要先将4G模块配置为路由模式。 断开板卡的有线和无限网络连接,使用pi…