Donate to arXiv

Tytuł: When Deep Learning Met Code Search

autorzy:Jose Cambronero, Hongyu Li, Seohyun Kim, Koushik Sen, Satish Chandra

Download PDF

streszczenie: w ostatnim czasie pojawiło się wiele propozycji dotyczących korzystania z głębokich sieci neuronowych do wyszukiwania kodów przy użyciu języka naturalnego. Wspólna dla tych propozycji jest koncepcja $ \ mathit{osadzanie} $ kodu i zapytań języka naturalnego, w rzeczywistych wektorach, a następnie użycie odległości wektorowej w celu przybliżenia korelacji semantycznej między kodem a zapytaniem. Istnieje wiele metod uczenia się tych osadzeń, w tym $\mathit{unsupervised}$ techniques, które opierają się tylko na przykładach corpus ofcode, i $\mathit{supervised}$ techniques, które używają$\mathit{aligned}$ corpus sparowanego kodu i opisów języka naturalnego. Celem tego nadzoru jest tworzenie osadzeń, które są bardziej podobne dla aquery i odpowiadającego im pożądanego fragmentu kodu. Oczywiście istnieją wybory, czy w ogóle używać nadzorowanych technik, a jeśli tak, to jakiego rodzaju sieci i szkolenia użyć do nadzoru. Ten dokument jest pierwszym, który systematycznie ocenia te wybory. W tym celu zebraliśmy implementacje najnowocześniejszych technik, aby działać na wspólnej platformie, korpusach szkoleniowych i ewaluacyjnych. Aby zbadać przestrzeń projektowania w networkcomplexity, wprowadziliśmy również nowy punkt projektowania, który jest rozszerzeniem$ \ mathit{minimal} $ supervision do istniejącej techniki bez nadzoru. Nasza ocena pokazuje, że: 1. dodanie nadzoru do istniejącej techniki nienadzorowanej może poprawić wydajność, choć niekoniecznie znacznie; 2. proste sieci forsupervision mogą być bardziej skuteczne niż bardziej wyrafinowane sieci oparte na sekwencji dla wyszukiwania kodu; 3. podczas gdy powszechne jest używanie docstrings do przeprowadzenia supervision, istnieje spora luka między skutecznością docstrings a bardziej odpowiednim dla zapytań korpusem nadzoru.
zestaw danych ewaluacyjnych jest już dostępny w arXiv:1908.09804

tematy: Inżynieria oprogramowania (cs.SE); obliczenia i język (cs.CL); Machine Learning (cs.LG)
Cytuj jako: arXiv: 1905.03813
(lub arXiv: 1905. 03813v4 dla tej wersji)

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.