Code Monkey home page Code Monkey logo

Comments (4)

mwcvitkovic avatar mwcvitkovic commented on July 19, 2024 1

Ah, the thing you're wondering about is called a "readout function" in the Graph NN world. See here for a recent GNN review that discusses them, or here for the paper that (I think) coined the term "readout function".

Training GNNs is tough, as is choosing the right readout function. Definitely read some recent papers on how to train GNNs. They're not as finicky as GAN training used to be, but there's a lot of trickery involved.

But with some experimentation there's a reasonable chance you'll find a method that outperforms Code2Vec.

from open-vocabulary-learning-on-source-code-with-a-graph-structured-cache.

mwcvitkovic avatar mwcvitkovic commented on July 19, 2024

Hey @hsellik, thanks for your interest! I'm not quite sure what you're asking, however. Can you make your question more specific?

As a general point, this paper is a few years old now. You will almost certainly have more luck reimplementing the approach than trying to reuse our code.

from open-vocabulary-learning-on-source-code-with-a-graph-structured-cache.

hsellik avatar hsellik commented on July 19, 2024

Hi @mwcvitkovic

I think I found my answer.

So the idea is to have examples of Java methods which have a certain bug and then the same methods where the bug is fixed. Then train a machine learning model using these examples to detect the bugs. I used Code2Vec and Code2Seq models by Alon et al. for this with some success. They use vanilla AST-s and instead of graph networks, it is based on deterministic walks on the paths to turn nodes into a distributed representation.

I saw a talk by Yujia Li saying that while these kinds of approaches are interesting, they are limited. I also saw the presentation by Allamanis where he uses graph neural networks for prediction tasks so I figured I will give it a try. However, I am not too familiar with graph neural networks.

So the task is basically getting a distributed representation for a Java methods in order to use it for a downstream task of bug prediction. After reading a bit about GGNN-s, I see that while your paper looks at a specific node embedding, I should combine all the node representations in a graph and then make predictions based on it.

What I am planning to do is to use your augmented AST with a more powerful way of creating a distributed representation of a graph (GGNN) to see if it enhances the results.

I hope this made more sense.

from open-vocabulary-learning-on-source-code-with-a-graph-structured-cache.

hsellik avatar hsellik commented on July 19, 2024

Thank you for the answer!

from open-vocabulary-learning-on-source-code-with-a-graph-structured-cache.

Related Issues (2)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.