joint work with marc brockschmidt alex gaunt alex polozov
play

Joint work with Marc Brockschmidt, Alex Gaunt, Alex Polozov, Patrick - PowerPoint PPT Presentation

Microsoft Research Cambridge Joint work with Marc Brockschmidt, Alex Gaunt, Alex Polozov, Patrick Fernandes, Mahmoud Khademi Deep Understands images/language/speech Learning Finds patterns in noisy data Requires many samples -


  1. Microsoft Research Cambridge Joint work with Marc Brockschmidt, Alex Gaunt, Alex Polozov, Patrick Fernandes, Mahmoud Khademi

  2. Deep ✓ Understands images/language/speech Learning ✓ Finds patterns in noisy data Requires many samples - Handling structured data is hard - DPU ✓ Interpretable ✓ Generalisation verifiable Program Manual effort - Structure Limited to specialists -

  3. http://www.eclipse.org/recommenders/ https://visualstudio.microsoft.com/services/intellicode/

  4. A A B B C C D D E E G G F F Li et al (2015). Gated Graph Sequence Neural Networks. Gilmer et al (2017). Neural Message Passing for Quantum Chemistry.

  5. F D D F E F E F

  6. F D D F E F E F Li et al (2015). Gated graph sequence neural networks.

  7. A B C D E G F

  8. A A A B B B C C C D D D E E E G G G A F F F B C D E G F A A A B B C C B C D D D E E E G G G F F F

  9. • node selection • node classification • graph classification Li et al (2015). Gated Graph Sequence Neural Networks. Gilmer et al (2017). Neural Message Passing for Quantum Chemistry. https://github.com/Microsoft/gated-graph-neural-network-samples

  10. int int int int int int int int for (int i = 0; i < lim; i++) for (int i =0; < ; ++) if (arr[i] > 0) if ( [ ]>0) sum += arr[i]; += [ ]; return return

  11. ExpressionStatement Assert.NotNull(clazz); Next Token InvocationExpression AST Child MemberAccessExpression ArgumentList ( … Assert . NotNull

  12. (x, y) = Foo(); Last Write while (x > 0) Last Use Computed From x = x + y;

  13. int int int int for (int i =0; < ; ++) if ( [ ]>0) += [ ]; return ~900 nodes/graph ~8k edges/graph

  14. A B C D E G F

  15. A B C D E G F

  16. A B C D E G F

  17. Accuracy (%) BiGRU BiGRU+Dataflow GGNN Seen Projects 50.0 73.7 85.5 Seen Projects: 24 F/OSS C# projects (2060 kLOC): Used for train and test 3.8 type-correct alternative variables per slot (median 3, σ = 2.6)

  18. Accuracy (%) BiGRU BiGRU+Dataflow GGNN Seen Projects 50.0 73.7 85.5 Unseen Projects 28.9 60.2 78.2 Seen Projects: 24 F/OSS C# projects (2060 kLOC): Used for train and test Unseen Projects: 3 F/OSS C# projects (228 kLOC): Used only for test 3.8 type-correct alternative variables per slot (median 3, σ = 2.6)

  19. bool string string out string var while null if return true null return false

  20. But how do we generate graphs? Expression i Expression - Expression j Expression i Expression + Expression j 1

  21. Adding Edges During Generation Expression Expression - Expression Expression i i j Expression + Expression j 1

  22. Neural Attribute Grammars (NAG) Inherited Synthesized Expression

  23. Information Propagation on Graph Generation Expression Expression - Expression i i j

  24. Information Propagation on Graph Generation Expression 1 Expression 2 Expression 3 - i j i T=3 T=4 T=2 T=1 Child InheritedToSynthesized Child Expression 1 Expression 2 NextSibling - Expression 2 Child Parent i i j NextToken

  25. Model PPL Type-Correct Match@1 Match @5 Seq → NAG 8.38 40.4 8.4 15.8 Graph → Tree 5.37 41.2 19.9 36.8 Graph → Syntax Networks 3.03 74.7 32.4 48.1 Graph → Sequentalised Tree 3.48 84.5 36.0 52.7 Graph → Neural Attr. Gram. 3.07 84.5 38.8 57.0 Training data: 479 C# projects from GitHub Test data: 114 C# projects from GitHub (~100 000 samples)

  26. int int int int for (int i = 0; i < lim; i++) if (arr[i]>0) sum += arr[i]; return Returns the sum of the positive numbers in an array

  27. H I J L B E D C A G F

  28. A B C D E G F

  29. C# Documentation F1 ROUGE-2 ROUGE-L biRNN -> RNN 35.2 20.8 36.7 GNN -> RNN 38.9 25.6 37.1 biRNN + GNN -> RNN 45.4 28.3 41.1 Java Method Naming F1 ROUGE-2 ROUGE-L Alon et al. * 43.0 - - biRNN -> RNN 35.8 17.9 39.7 biRNN + GNN -> RNN 44.7 21.1 43.1 * Alon et al. (2018). Code2seq: Generating sequences from structured representations of code.

  30. Gunshots were fired at rapper Lil Wayne ’s tour bus No one was injured in the shooting, and no arrests have been made Rapper Lil Wayne not injured after shots fired at his tour bus on an Atlanta interstate, police say. No one has been arrested in the shooting.

  31. LOCATION PERSON Sentence 1 … … signed New Zealand international Francis Saili on … Utility back Saili Sentence 2

  32. CNN/DailyMail ROUGE-1 ROUGE-2 ROUGE-L RNN -> RNN * 31.3 11.8 28.8 RNN + GNN -> RNN 33.0 13.3 28.3 RNN -> RNN + pointer * 36.4 15.7 33.4 RNN + GNN -> RNN + pointer 38.1 16.1 33.2 * See et al. (2017). Get To The Point: Summarization with Pointer-Generator Networks

  33. Graph Neural Networks Encoding of Procedural Knowledge

  34. Joint work with M. Brockschmidt, A.L. Gaunt, A. Polozov, P . Fernandes, M. Khademi

  35. Research in ML+Code

Recommend


More recommend