Diretório de artigos
- 1. Segurança do código
- 2. Recomendação de API
- 3. Detecção de malware Android
- 4. Detecção de relatório de bug duplicado
- 5. Compreensão e representação do programa
- 6. Distribuição do desenvolvedor do relatório de defeitos
- 7. Detecção de vulnerabilidade de contrato inteligente
- 8. Detecção de Fragmento de Código Inseguro
- 9. Distribuição do desenvolvedor do relatório de bug
- 10. Recomendações de revisão de código
- Resumir
1. Segurança do código
iDev: aprimorando a segurança da codificação social por meio da identificação do usuário entre plataformas entre o GitHub e o estouro de pilha【A】
Yujie Fan, Yiming Zhang, Shifu Hou, Lingwei Chen, Yanfang Ye, Chuan Shi, Liang Zhao e Shouhuai Xu (2019). iDev: Melhorando a Segurança de Codificação Social por Identificação de Usuário de Plataforma Cruzada Entre GitHub e Stack Overflow conferência conjunta internacional sobre arte inteligência significativa.
Aprimorando a segurança de codificação social com identificação de usuário de plataforma cruzada entre o GitHub e o Stack Overflow
Antecedentes e problemas : Com a crescente popularidade de plataformas como GitHub e Stack Overflow, os possíveis problemas de segurança também estão aumentando, principalmente devido ao fato de que códigos perigosos e prejudiciais podem ser incorporados e propagados bem. A literatura usa representações gráficas heterogêneas para aprender a identificar usuários e detectar invasores de envenenamento de plataforma cruzada.
Contribuição : Identificação automática de usuário de plataforma cruzada [Github e Stack Overflow], usando atributos de usuário e atributos de codificação social para identificar usuários e detectar invasores de envenenamento.
Método e modelo : Construir um grafo de interação de código de usuário multiplataforma e propor o aprendizado de representação de usuário AHIN2Vec com base na rede de informação heterogênea atribuída (AHIN). Os resultados do aprendizado de representação são usados como recursos de nó para tarefas de downstream para identificação de usuário de plataforma cruzada.
2. Recomendação de API
Recomendação de API baseada em preferência de grupo via rede de informações heterogêneas【A】
Fenfang Xie, Liang Chen, Dongding Lin, Chuan Chen, Zibin Zheng e Xiaola Lin (2018) Pôster: Recomendação de API baseada em preferência de grupo por meio da conferência internacional Heterogeneous Information Network sobre engenharia de software.
Recomendação de API de rede de informação heterogênea com base na recomendação de grupo
Antecedentes e Problema : Uma Rede de Informação Heterogênea (HIN) é uma rede lógica que pode incluir vários tipos de arestas e vários tipos de relacionamentos de nós. Pesquisas anteriores sobre recomendação de API concentram-se principalmente em redes de informações homogêneas e poucos tipos de arestas, portanto, não tiram proveito de sua rica informação heterogênea.
Métodos e modelos : GPRec. Entrada: informações de mashup [tag, categoria, descrição], informações de API [tag, categoria, descrição, provedor] e registros históricos de chamadas entre mashups e API. Modelo GPRec: usa mashup, api e seus atributos relacionados para construir redes de informações heterogêneas. Conecte mashups com diferentes metacaminhos para aprender diferentes representações semânticas. Quatro medidas de similaridade são usadas para calcular a similaridade entre diferentes mashups. Cada par de Mashup-APIs é classificado usando o algoritmo de classificação personalizado de preferência de grupo bayesiano. Saída: resultados classificados personalizados.
3. Detecção de malware Android
Aprendizado de representação de nó fora da amostra para gráfico heterogêneo na detecção de malware Android em tempo real【A】
Yanfang Ye, Shifu Hou, Lingwei Chen, Jingwei Lei, Wenqiang Wan, Jiabin Wang, Qi Xiong e Fudong Shao (2019). Aprendizagem de representação de nó fora da amostra para gráfico heterogêneo em detecção de malware Android em tempo real conferência conjunta internacional sobre inteligência artificial.
Aprendizado de representação de nó fora da amostra para gráficos heterogêneos na detecção de malware Android em tempo real
Antecedentes e problemas : A crescente sofisticação do malware Android requer tecnologias defensivas capazes de proteger os usuários móveis contra ameaças. Como a detecção de malware Android é um aplicativo sensível à velocidade e requer uma solução econômica, são necessários métodos de aprendizado escaláveis para representações HG, especialmente para nós fora da amostra. A literatura utiliza representações gráficas heterogêneas para aprender a reconhecer software e detectar malware.
Método e modelo : Construir um grafo heterogêneo da relação APP-componente e realizar o aprendizado de representação de grafos heterogêneos com base no aprendizado de grafos heterogêneos. Use as representações aprendidas como recursos do nó de tarefa downstream para detecção de software.
4. Detecção de relatório de bug duplicado
HINDBR: Previsão de Relatório de Bug Duplicado Baseada em Rede de Informações Heterogêneas【B】
Guanping Xiao, Xiaoting Du, Yulei Sui e Tao Yue (2020). HINDBR: Heterogeneous Information Network Based Duplicate Bug Report Prediction simpósio internacional sobre engenharia de confiabilidade de software.
Previsão de relatórios de erros repetidos com base em rede de informações heterogêneas
Antecedentes e problema : Há erros repetidos no sistema de rastreamento de erros. Os métodos existentes são baseados principalmente no método de similaridade de texto para identificar erros repetidos, mas este método torna-se inviável em JIT.
Métodos e modelos : HINDBR. Por meio do aprendizado de representação do HIN, o HINDRB incorpora a relação semântica do relatório de erro no espaço de baixa dimensão e usa a distância de Manhattan para encontrar a distância entre os dois vetores. o espaço potencial, os dois vetores são considerados Indica um erro de repetição.
HIN construído:
- 节点: relatório de bug (BID)【TextBID,recursos não estruturados】, componente (COM), produto (PRO), versão (VER), prioridade (PRI) e gravidade (SEV).【estruturado】
- 关系:Bug-Component,Component-Product,Bug-Version,Bug-Priority,Bug-Severity
Representação e fusão de recursos:
- Estrutura. HIN2Vec para pré-treinar características estruturais.
- características não estruturais. Word2Vec para pré-treinar texto de recurso não estruturado.
- Para um nó, seus recursos estruturais e não estruturais são fundidos como sua representação final de recursos.
Método de medição de similaridade de bug duplicado: distância de Manhattan
Limitações e trabalhos futuros : Como os vetores pré-treinados são baseados no conjunto de dados especificado, o modelo não pode ser generalizado para outros conjuntos de dados para detecção de erros repetidos.
5. Compreensão e representação do programa
Aprendendo a representar programas com grafos heterogêneos【B】
Wenhan Wang, Kechi Zhang, Ge Li e Zhi Jin (2021). Aprendendo a Representar Programas com Grafos Heterogêneos arXiv: Engenharia de Software.
Representações de programas de aprendizado usando gráficos heterogêneos
Antecedentes e Problema : A representação de código converte programas em vetores semânticos e é crucial para o processamento do código-fonte. Abstract Syntax Tree (AST) [Abstract Syntax Tree] é um gráfico aprimorado que contém informações semânticas ricas e informações estruturais. Para aprender a representação de códigos, os métodos existentes são principalmente grafos isomórficos, portanto, as informações de tipo de nós e arestas são ignoradas. A literatura usa representação gráfica heterogênea para aprender e entender o código-fonte, previsão de nome de método e classificação de código
Método e modelo : Gráfico de Programa Heterogêneo (HPG): Fornece os tipos de nós e arestas e usa Linguagem de Descrição de Sintaxe Abstrata (ASDL) para gerar gráficos heterogêneos de sintaxe abstrata a partir de árvores de sintaxe abstrata. A representação do nó do grafo heterogêneo é aprendida com base no HGT e o resultado da representação é usado como o recurso do nó da tarefa a jusante.
Transformador de gráfico heterogêneo (HGT) :
As falhas do método :
- As características de atributos de nós e arestas não são introduzidas, então a representação precisa ser inicializada.
- A estrutura de sub-token adotada possui fortes requisitos de suposição para nomeação de entidade
6. Distribuição do desenvolvedor do relatório de defeitos
KSAP: Uma abordagem para atribuição de relatório de bug usando pesquisa KNN e proximidade heterogênea【B】
Wen Zhang, Song Wang e Qing Wang (2016). KSAP: Uma abordagem para atribuição de relatórios de bugs usando pesquisa KNN e tecnologia de informação e software de proximidade heterogênea.
Um método de atribuição de relatório de bug baseado em pesquisa KNN e proximidade heterogênea
Antecedentes e problemas : A atribuição oportuna de relatórios de bugs aos desenvolvedores é fundamental para a garantia de qualidade do software. Atribuir bugs aos desenvolvedores adequados é difícil à medida que os sistemas de software evoluem.
Modelos e Métodos : KSAP. Quando um novo relatório de bug é enviado, um gráfico heterogêneo do relatório de bug é construído. O KSAP distribuirá este relatório ao desenvolvedor usando um processo de dois estágios. O primeiro estágio é pesquisar relatórios de bug semelhantes resolvidos historicamente para novos relatórios de bug por meio do método k-Nearest Neighbor (KNN). A segunda etapa é classificar os desenvolvedores que contribuíram com relatórios de bug semelhantes com base em diferentes tipos de proximidade.
实体:desenvolvedor, bug, comentário, componente, produto。
relação:
Trabalho futuro : Mais entidades, como a versão e a plataforma do relatório de bug, serão consideradas no repositório de bug para alavancar informações mais heterogêneas para recomendar desenvolvedores para resolver o relatório de bug. Planos futuros abordam o problema da superespecialização em classificação de proximidade heterogênea.
7. Detecção de vulnerabilidade de contrato inteligente
MANDO: Embeddings de gráficos heterogêneos de vários níveis para detecção refinada de vulnerabilidades de contratos inteligentes
Hoang H. Nguyen, Nhat-Minh Nguyen, Chunyao Xie, Zahra Ahmadi, Daniel Kudendo, Thanh-Nam Doan e Lingxiao Jiang (2022). MANDO: Embeddings de gráficos heterogêneos de vários níveis para detecção refinada de vulnerabilidades de contratos inteligentes
Incorporação heterogênea de vários níveis para detecção refinada de vulnerabilidades de contratos inteligentes
Antecedentes e Problema : Aprender grafos heterogêneos compostos por diferentes tipos de nós e arestas melhora os resultados das técnicas de grafos isomórficos. Um gráfico de fluxo de controle é um gráfico heterogêneo que representa o fluxo possível de execução de código de software. Gráficos de fluxo de controle podem representar informações mais semânticas de códigos, técnicas de desenvolvimento e ferramentas, o que é benéfico para detectar vulnerabilidades em software. Os métodos existentes não podem lidar com grafos heterogêneos com um grande número de arestas e nós de tipos diferentes.
Modelos e Métodos : MANDO. Dado o código de software no contrato inteligente Ethereum, construa um gráfico heterogêneo de fluxo de controle e um gráfico heterogêneo de gráfico de chamada e funda os dois gráficos para construir um gráfico de contrato heterogêneo. Métodos baseados em metapath aprendem representações de nós para grafos de contratos heterogêneos. Use os resultados de aprendizado de representação como recursos de nó de tarefa downstream para identificar vulnerabilidades em contratos.
8. Detecção de Fragmento de Código Inseguro
ICSD: um sistema automático para detecção de trecho de código inseguro em estouro de pilha em rede de informações heterogêneas【B】
Yanfang Ye, Shifu Hou, Lingwei Chen, Xin Li, Liang Zhao, Shouhuai Xu, Jiabin Wang e Qi Xiong (2018). ICSD: um sistema automático para detecção de trecho de código inseguro em estouro de pilha em rede de informações heterogêneas. referência .
Um sistema automatizado para detectar fragmentos de código seguros no Stack Overflow usando uma rede de informações heterogêneas
Antecedentes e problemas : Com a popularidade do paradigma de codificação [Stack Overflow] na sociedade moderna, os riscos de segurança de códigos inseguros serem facilmente incorporados e distribuídos no sistema também estão aumentando.
Modelo e método :
- Use o conteúdo do código [nome da função, função, API] e atributos de codificação social para detectar trechos de código não seguros no Stack Overflow. Os atributos de codificação social incluem usuários, distintivos, perguntas, respostas, trechos de código e muito mais.
- Aproveitando o HIN para aprender relações semânticas ricas, uma abordagem baseada em meta-caminho incorpora recursos semânticos de nível superior para estabelecer a relevância dos segmentos de código.
- Um framework snippet2vec é proposto para aprender a representação de conhecimento semântico rico e conhecimento estrutural em HIN.
- Classificadores de fusão multi-view para tarefas downstream [detecção de fragmentos de código inseguros].
Vantagens do modelo :
- Uma representação de recurso atualizada dos dados do Stack Overflow.
- Um classificador de fusão multi-view baseado em modelos de aprendizado de representação de última geração.
- O sistema atual para detecção automática de trechos de código não seguros.
9. Distribuição do desenvolvedor do relatório de bug
Uma estrutura de rede neural de gráfico espaço-temporal para triagem automatizada de bugs de software
Hongrun Wu, Yutao Ma, Zhenglong Xiang, Chen Yang e Keqing He (2021). Uma Estrutura de Rede Neural de Grafo Espaço-Temporal para Triagem Automatizada de Bugs de Software arXiv: Engenharia de Software.
Redes neurais de gráficos espaço-temporais para diagnóstico e classificação automatizados de erros de software
Antecedentes e perguntas :
- Para atribuir bugs com eficiência a desenvolvedores designados, um procedimento de triagem de diagnóstico de bug é muito importante.
- A maioria dos métodos existentes se concentra apenas no gráfico de dobramento estático de uma única fatia de tempo, que carece de dinâmica e escalabilidade.
- Nenhum dos trabalhos anteriores considerou a interação periódica dos desenvolvedores.
Modelo e método :
- Proposta de rede neural de gráfico dinâmico espaço-temporal (ST-DGNN), uma rede neural de gráfico dinâmico espaço-temporal. Incluindo mecanismo de caminhada aleatória conjunta (JRWalk) e modelo de rede neural convolucional recorrente de gráfico (GRCNN) em duas partes.
- JRWalk usa duas estratégias de amostragem para amostrar a topologia local, considerando a importância dos nós [grau do nó, reputação] e arestas [peso da aresta, preferência].
- O CRCNN possui três componentes estruturais idênticos: periodicidade horária, periodicidade diária e periodicidade semanal. Aprendendo recursos dinâmicos de redes de colaboração do desenvolvedor (DCN) em gráficos espaço-temporais. [CNN, LSTM]
10. Recomendações de revisão de código
Usando o aprendizado de representação gráfica heterogênea em larga escala para recomendações de revisão de código
Jiyang Zhang, Chandra Maddila, Ram Bairi, Christian Bird, Ujjwal Raizada, Apoorva Agrawal, Yamini Jhawar, Kim Herzig e Arie van Deursen (2022). Usando o aprendizado de representação gráfica heterogênea em larga escala para recomendações de revisão de código
Usando a aprendizagem de representação gráfica heterogênea em larga escala para recomendações de revisão de código
Antecedentes e perguntas :
- A revisão de código é um processo importante no desenvolvimento de software maduro.
- A maioria dos sistemas de recomendação de revisão depende principalmente de alterações históricas de documentos e informações de comentários. Embora esses métodos sejam capazes de identificar e sugerir revisores qualificados, eles podem ser cegos para revisores que possuem o conhecimento necessário e nunca interagiram com o arquivo alterado.
Modelo e método :
- Coral. Sistema de recomendação do examinador. Um gráfico sócio-técnico construído a partir de um rico conjunto de entidades (incluindo desenvolvedores, repositórios, arquivos, solicitações pull, itens de trabalho, etc.) e seus relacionamentos em um sistema de controle de origem moderno.
- Usando RGCN para aprendizagem de representação de grafos heterogêneos.
- Adote um paradigma de aprendizado indutivo.
- A estrutura do modelo é simples e adequada para grafos heterogêneos de grande escala.
RGCN :
defeito :
- As características de atributos de nós e arestas não são consideradas.
- As suposições de IID precisam ser satisfeitas.
- Para fundir os recursos do nó e a topologia do gráfico, ele não possui capacidade autoadaptativa.
Resumir
Processo Geral HIN
- Colete conjuntos de dados relevantes
- Construindo grafos heterogêneos [nós, arestas, atributos, meta-caminhos]
- Aprendizado de Representação de Nó em Gráficos Heterogêneos
- tarefa a jusante
Desafios enfrentados pelo HIN
- Como coletar e limpar conjuntos de dados
- Como construir gráficos heterogêneos eficazes
- Como projetar codificadores adequados para aprender representações de nós com base em tarefas downstream
- Como estender para cenários OOD e cenários de dados gráficos em grande escala
- Como construir um conjunto suficiente e eficaz de meta-caminhos em métodos de aprendizado de representação baseados em meta-caminho
Métodos de aprendizagem de representação gráfica heterogênea
- Método baseado em meta-caminho [HIN2Vec]
- Método baseado no mecanismo de atenção [HGT]
- Método de combinação de metacaminho e mecanismo de atenção [HAN]
caminho meta