Deep-auto encoders για ανάκτηση κώδικα και
οπτικοποίηση
Φοιτητής : Λέλης Αθανάσιος ΑΜ : 5214
Επιβλέποντας Επικ. Καθ.: Συμεωνίδης Ανδρέας
Συνεπιβλέποντας Μετ.: Χατζηδημητρίου Κυριάκος
Έμπνευση της Διπλωματικής Εργασίας
• Η σημασία του διαδικτύου στην ανάπτυξη της Τεχνολογίας
Λογισμικού είναι αδιαμφισβήτητη.
• Το διαδίκτυο περιέχει αμέτρητα αποσπάσματα κώδικα.
• Προκύπτει ανάγκη ανάκτησης της κατάλληλης πληροφορίας.
Στόχοι και Μεθοδολογία
• Δημιουργία ευρετηρίου δημοσιεύσεων (stackoverflow),
που συνδυάζουν φυσική γλώσσα και πηγαίο κώδικα
• Auto-encoder νευρωνικά δίκτυα
• Σύγκριση με σύγχρονες μεθοδολογίες
Προηγούμενη Έρευνα
• Δημοσιεύσεις Reuters ως σετ δεδομένων
• Δημιουργία λεξικού 2000 όρων
• 2000-500-250-125-2 deep auto-encoder δίκτυο
• Εύρεση ομοιότητας σε 2 διαστάσεις
Προ-επεξεργασία
Body
Tags
Code
Προετοιμασία δεδομένων
1. Συνολικός αριθμός δημοσιεύσεων
2. Εξάγονται οι δημοσιεύσεις με tag javascript
3. Αφαιρούνται δημοσιεύσεις με λιγότερες
από 5 απαντήσεις
4. Αφαιρούνται δημοσιεύσεις που δεν
περιέχουν κώδικα
5. Διαχωρισμός του σετ δεδομένων σε δύο νέα
• Σώματα των δημοσιεύσεων
• Αποκόμματα κώδικα
21.737.948
698.918
33.848
1502
Natural Language Processing
Συγκρότηση λεξικού με βάση τα δύο dataset
• Camel Case (πχ CamelCasing σε Camel Casing)
• Lower Case (πχ LoWeR σε lower)
• Stemming για το NL σετ (πχ processing σε process)
• Αφαίρεση αριθμών
• Αφαίρεση σημείων στίξης
• Απομάκρυνση stop words (πχ at, my, the, κ.α.)
Χρήση βιβλιοθήκης PorterStemmer
Βιβλιοθήκη DocumentParser
English Stop Word List
Bag of Words Model
• Χρειάζεται ένα αντιπροσωπευτικό μοντέλο των δημοσιεύσεων, κατάλληλο
για είσοδο σε νευρωνικά δίκτυα
• Επιλέχθηκε το μοντέλο Bag of Words
• Π.χ. το μοντέλο BoW για τα δύο αποσπάσματα “I went to the store to buy food” και “I
wanted to buy a toy” είναι
I Went To The Store Buy Food wanted A toy
1 1 2 1 1 1 1 0 0 0
1 0 1 0 0 1 0 1 1 1
Δημιουργία Μοντέλου
• Απομάκρυνση όρων με βάση τη συχνότητα εμφάνισής τους
• Λιγότερες από 50 εμφανίσεις για το σετ κώδικα
• Λιγότερες από 50 και περισσότερες από 600 για το σετ φυσικής γλώσσας
• Απομακρύνονται τα έγγραφα χωρίς κώδικα (40)
• Τα σετ δεδομένων διαχωρίστηκαν επιπλέον σε training και test set
• 32.306 έγγραφα σε 25.000 (77%) και 7.306 (23%) αντίστοιχα
• Κανονικοποίηση των συντεταγμένων σε [0,1]
• Το τελικό μοντέλο που προέκυψε για τα training set είναι:
1. 25000 * 2578 για το NL κομμάτι (δημοσιεύσεις * όροι)
2. 25000 * 2026 για το κομμάτι του κώδικα
Auto-encoder Δίκτυα
• Κωδικοποιούν το διάνυσμα εισόδου τους σε ένα
μικρότερων διαστάσεων και στη συνέχεια το
ανακατασκευάζουν στην έξοδο.
• 𝒚 = 𝑠(𝑾𝒙 + 𝒃) code layer – mapping του x.
• 𝒛 = 𝑠(𝑾′
𝒙 + 𝒃′) decoder output – πρόβλεψη
του x με δοσμένο y.
• Στόχος η βελτιστοποίηση των [𝑾, 𝑾′, 𝒃, 𝒃′],ώστε να
ελαχιστοποιηθεί το λάθος ανακατασκευής.
• Συναρτήσεις κόστους
• MSE: 𝐿 𝑥, 𝑧 = 𝑥 − 𝑧 2
• X-Entropy: 𝐿 𝑥, 𝑧 = − 𝑘=1
𝑑
[𝑥 𝑘 𝑙𝑜𝑔𝑧 𝑘 + (1 −
Εκπαίδευση Auto-encoder
Πρόβλημα
• Local minima για multilayer networks.
• Εύρεση αρχικών βαρών που διευκολύνουν την εκπαίδευση.
Λύση
• Προ-εκπαίδευση επιμέρους auto-encoder δύο επιπέδων.
• Ορισμός μικρών αρχικών βαρών από κανονική κατανομή.
Σύσταση Auto-encoder
Μεθοδολογία Εκπαίδευσης
• Εκπαίδευση με βάρη από
κανονική κατανομή (Xavier)
• 𝑊~𝑈 −4
6
𝑛 𝑗+𝑛 𝑗+1
, 4
6
𝑛 𝑗+𝑛 𝑗+1
• Αρχιτεκτονικές 6 και 8 πυκνών
(dense) επιπέδων
• Χρήση L2 κανονικοποίησης
• 100 epochs
• Προ-εκπαίδευση επιπέδων με
RBM και sparse ΑΕ
• Αρχιτεκτονικές 6 και 8 επιπέδων
• L2 κανονικοποίηση
• 50 epochs
Προβολή σε 2 Διαστάσεις
Σετ δεδομένων κώδικα Σετ δεδομένων σχολίων
Αξιολόγηση Αποτελεσμάτων
• Σύγκριση ομοιότητας εγγράφων με βάση τη μετρική cosine similarity:
𝑠𝑖𝑚 𝑑1, 𝑑2 =
𝑉(𝑑1)𝑉(𝑑2)
𝑉(𝑑1) 𝑉(𝑑2)
• Τα αποτελέσματα εξάγονται με βάση τα tags των δημοσιεύσεων.
• Επιτυχία για συμφωνία των tag. (Positive – P)
• Αποτυχία σε αντίθετη περίπτωση. (Negative – N)
Μετρική Εξίσωση
Precision 𝑃
𝑃 + 𝑁
Recall 𝑃
𝑡𝑜𝑡𝑎𝑙 𝑃
F-Measure
2
𝑃𝑟𝑒𝑐 ∗ 𝑅𝑒𝑐
𝑃𝑟𝑒𝑐 + 𝑅𝑒𝑐
Macro Precision, Recall,
F-Measure
𝑡𝑎𝑔
𝑡𝑎𝑔∈𝐶𝑜𝑙𝑙𝑒𝑐𝑡𝑖𝑜𝑛
𝑚𝑒𝑡𝑟𝑖𝑐
Αποτελέσματα
• Τα αποτελέσματα εξάγονται με βάση τα tags των δημοσιεύσεων για
τα κορυφαία 50 ανακτημένα έγγραφα
80-20-2 1000-500-
128-5
1000-500-
128-10
500-128-30 Tf-Idf
Precision 0.384 0.359 0.367 0.35 0.371
Recall 0.03 0.019 0.018 0.019 0.02
F measure 0.056 0.036 0.034 0.036 0.038
Macro
Precision
0.39 0.357 0.36 0.343 0.43
Macro
Recall
0.039 0.017 0.017 0.017 0.016
Macro F-
Measure
0.071 0.032 0.032 0.032 0.031
Time 1251 ms 1307 ms 1398 ms 1573 ms 9739 ms
Συμπεράσματα
• Απόδοση που ανταγωνίζεται σύγχρονες μεθοδολογίες
• Πολύ γρήγορη ανάκτηση
• Δυνατότητα επέκτασης με περισσότερα δεδομένα
Future Work
• Word2Vec model
• Μεγαλύτερη υπολογιστική ισχύς.
• Παράλληλος προγραμματισμός.
Γνώσεις που Αποκτήθηκαν
• Machine Learning
• Information Retrieval
• Deep Learning
• Java – NLP, deeplearning4j.
• Matlab – Auto-encoder εκπαίδευση. RBMs.
• Theano (Python) – Auto-encoder για MNIST digit classification.
• ElasticSearch – Επεξεργασία xml και json files.
Τέλος
Ευχαριστώ για την προσοχή σας !!!

Lelis Αthanasios

  • 1.
    Deep-auto encoders γιαανάκτηση κώδικα και οπτικοποίηση Φοιτητής : Λέλης Αθανάσιος ΑΜ : 5214 Επιβλέποντας Επικ. Καθ.: Συμεωνίδης Ανδρέας Συνεπιβλέποντας Μετ.: Χατζηδημητρίου Κυριάκος
  • 2.
    Έμπνευση της ΔιπλωματικήςΕργασίας • Η σημασία του διαδικτύου στην ανάπτυξη της Τεχνολογίας Λογισμικού είναι αδιαμφισβήτητη. • Το διαδίκτυο περιέχει αμέτρητα αποσπάσματα κώδικα. • Προκύπτει ανάγκη ανάκτησης της κατάλληλης πληροφορίας.
  • 3.
    Στόχοι και Μεθοδολογία •Δημιουργία ευρετηρίου δημοσιεύσεων (stackoverflow), που συνδυάζουν φυσική γλώσσα και πηγαίο κώδικα • Auto-encoder νευρωνικά δίκτυα • Σύγκριση με σύγχρονες μεθοδολογίες
  • 4.
    Προηγούμενη Έρευνα • ΔημοσιεύσειςReuters ως σετ δεδομένων • Δημιουργία λεξικού 2000 όρων • 2000-500-250-125-2 deep auto-encoder δίκτυο • Εύρεση ομοιότητας σε 2 διαστάσεις
  • 5.
  • 6.
    Προετοιμασία δεδομένων 1. Συνολικόςαριθμός δημοσιεύσεων 2. Εξάγονται οι δημοσιεύσεις με tag javascript 3. Αφαιρούνται δημοσιεύσεις με λιγότερες από 5 απαντήσεις 4. Αφαιρούνται δημοσιεύσεις που δεν περιέχουν κώδικα 5. Διαχωρισμός του σετ δεδομένων σε δύο νέα • Σώματα των δημοσιεύσεων • Αποκόμματα κώδικα 21.737.948 698.918 33.848 1502
  • 7.
    Natural Language Processing Συγκρότησηλεξικού με βάση τα δύο dataset • Camel Case (πχ CamelCasing σε Camel Casing) • Lower Case (πχ LoWeR σε lower) • Stemming για το NL σετ (πχ processing σε process) • Αφαίρεση αριθμών • Αφαίρεση σημείων στίξης • Απομάκρυνση stop words (πχ at, my, the, κ.α.) Χρήση βιβλιοθήκης PorterStemmer Βιβλιοθήκη DocumentParser English Stop Word List
  • 8.
    Bag of WordsModel • Χρειάζεται ένα αντιπροσωπευτικό μοντέλο των δημοσιεύσεων, κατάλληλο για είσοδο σε νευρωνικά δίκτυα • Επιλέχθηκε το μοντέλο Bag of Words • Π.χ. το μοντέλο BoW για τα δύο αποσπάσματα “I went to the store to buy food” και “I wanted to buy a toy” είναι I Went To The Store Buy Food wanted A toy 1 1 2 1 1 1 1 0 0 0 1 0 1 0 0 1 0 1 1 1
  • 9.
    Δημιουργία Μοντέλου • Απομάκρυνσηόρων με βάση τη συχνότητα εμφάνισής τους • Λιγότερες από 50 εμφανίσεις για το σετ κώδικα • Λιγότερες από 50 και περισσότερες από 600 για το σετ φυσικής γλώσσας • Απομακρύνονται τα έγγραφα χωρίς κώδικα (40) • Τα σετ δεδομένων διαχωρίστηκαν επιπλέον σε training και test set • 32.306 έγγραφα σε 25.000 (77%) και 7.306 (23%) αντίστοιχα • Κανονικοποίηση των συντεταγμένων σε [0,1] • Το τελικό μοντέλο που προέκυψε για τα training set είναι: 1. 25000 * 2578 για το NL κομμάτι (δημοσιεύσεις * όροι) 2. 25000 * 2026 για το κομμάτι του κώδικα
  • 10.
    Auto-encoder Δίκτυα • Κωδικοποιούντο διάνυσμα εισόδου τους σε ένα μικρότερων διαστάσεων και στη συνέχεια το ανακατασκευάζουν στην έξοδο. • 𝒚 = 𝑠(𝑾𝒙 + 𝒃) code layer – mapping του x. • 𝒛 = 𝑠(𝑾′ 𝒙 + 𝒃′) decoder output – πρόβλεψη του x με δοσμένο y. • Στόχος η βελτιστοποίηση των [𝑾, 𝑾′, 𝒃, 𝒃′],ώστε να ελαχιστοποιηθεί το λάθος ανακατασκευής. • Συναρτήσεις κόστους • MSE: 𝐿 𝑥, 𝑧 = 𝑥 − 𝑧 2 • X-Entropy: 𝐿 𝑥, 𝑧 = − 𝑘=1 𝑑 [𝑥 𝑘 𝑙𝑜𝑔𝑧 𝑘 + (1 −
  • 11.
    Εκπαίδευση Auto-encoder Πρόβλημα • Localminima για multilayer networks. • Εύρεση αρχικών βαρών που διευκολύνουν την εκπαίδευση. Λύση • Προ-εκπαίδευση επιμέρους auto-encoder δύο επιπέδων. • Ορισμός μικρών αρχικών βαρών από κανονική κατανομή.
  • 12.
  • 13.
    Μεθοδολογία Εκπαίδευσης • Εκπαίδευσημε βάρη από κανονική κατανομή (Xavier) • 𝑊~𝑈 −4 6 𝑛 𝑗+𝑛 𝑗+1 , 4 6 𝑛 𝑗+𝑛 𝑗+1 • Αρχιτεκτονικές 6 και 8 πυκνών (dense) επιπέδων • Χρήση L2 κανονικοποίησης • 100 epochs • Προ-εκπαίδευση επιπέδων με RBM και sparse ΑΕ • Αρχιτεκτονικές 6 και 8 επιπέδων • L2 κανονικοποίηση • 50 epochs
  • 14.
    Προβολή σε 2Διαστάσεις Σετ δεδομένων κώδικα Σετ δεδομένων σχολίων
  • 15.
    Αξιολόγηση Αποτελεσμάτων • Σύγκρισηομοιότητας εγγράφων με βάση τη μετρική cosine similarity: 𝑠𝑖𝑚 𝑑1, 𝑑2 = 𝑉(𝑑1)𝑉(𝑑2) 𝑉(𝑑1) 𝑉(𝑑2) • Τα αποτελέσματα εξάγονται με βάση τα tags των δημοσιεύσεων. • Επιτυχία για συμφωνία των tag. (Positive – P) • Αποτυχία σε αντίθετη περίπτωση. (Negative – N) Μετρική Εξίσωση Precision 𝑃 𝑃 + 𝑁 Recall 𝑃 𝑡𝑜𝑡𝑎𝑙 𝑃 F-Measure 2 𝑃𝑟𝑒𝑐 ∗ 𝑅𝑒𝑐 𝑃𝑟𝑒𝑐 + 𝑅𝑒𝑐 Macro Precision, Recall, F-Measure 𝑡𝑎𝑔 𝑡𝑎𝑔∈𝐶𝑜𝑙𝑙𝑒𝑐𝑡𝑖𝑜𝑛 𝑚𝑒𝑡𝑟𝑖𝑐
  • 16.
    Αποτελέσματα • Τα αποτελέσματαεξάγονται με βάση τα tags των δημοσιεύσεων για τα κορυφαία 50 ανακτημένα έγγραφα 80-20-2 1000-500- 128-5 1000-500- 128-10 500-128-30 Tf-Idf Precision 0.384 0.359 0.367 0.35 0.371 Recall 0.03 0.019 0.018 0.019 0.02 F measure 0.056 0.036 0.034 0.036 0.038 Macro Precision 0.39 0.357 0.36 0.343 0.43 Macro Recall 0.039 0.017 0.017 0.017 0.016 Macro F- Measure 0.071 0.032 0.032 0.032 0.031 Time 1251 ms 1307 ms 1398 ms 1573 ms 9739 ms
  • 17.
    Συμπεράσματα • Απόδοση πουανταγωνίζεται σύγχρονες μεθοδολογίες • Πολύ γρήγορη ανάκτηση • Δυνατότητα επέκτασης με περισσότερα δεδομένα
  • 18.
    Future Work • Word2Vecmodel • Μεγαλύτερη υπολογιστική ισχύς. • Παράλληλος προγραμματισμός.
  • 19.
    Γνώσεις που Αποκτήθηκαν •Machine Learning • Information Retrieval • Deep Learning • Java – NLP, deeplearning4j. • Matlab – Auto-encoder εκπαίδευση. RBMs. • Theano (Python) – Auto-encoder για MNIST digit classification. • ElasticSearch – Επεξεργασία xml και json files.
  • 20.

Editor's Notes

  • #5 Πηγή : Hinton, G. E., &Salakhutdinov, R. (2006). “Reducing the Dimensionality of Data with Neural Networks”. Science, 313, 504–507
  • #6 Πηγή : www.stackoverflow.com
  • #14 RBM – Restricted Boltzmann Machines Sparse AE – Sparse Auto-encoder