Comments (4)
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.
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.
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.
Thank you for the answer!
from open-vocabulary-learning-on-source-code-with-a-graph-structured-cache.
Related Issues (2)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from open-vocabulary-learning-on-source-code-with-a-graph-structured-cache.