关于循环神经网络变量嵌入在源代码中的研究
提出了一种基于程序执行轨迹学习的新型语义程序嵌入,相比于基于程序语法的嵌入,可以更准确地捕捉程序语义,并用于预测学生程序提交中的错误类型,并展示了通过该语义嵌入预测进行搜索的效率显著提高的结果。
Nov, 2017
本文综述了单词嵌入技术(如 word2vec)在源代码上的应用,包括将标记、函数 / 方法、方法调用序列、二进制代码等进行嵌入,并提供实验数据和编码嵌入的可视化,我们认为这种数据驱动的自然语言处理技术有很大的潜力应用于未来的源代码分析中。
Apr, 2019
本文提出了一种学习代码语义的新颖处理技术,并将其应用于各种程序分析任务中,其中使用的 Embeddings 基于独立于源编程语言的代码的 IR,现有技术不足以强烈理解程序语义。
Jun, 2018
本文介绍了一种新颖的源代码嵌入技术,精心设计了一个基于 Python 的大规模数据集和一个开源的基准测试套件,旨在提高源代码的理解和分类准确度。实验结果表明,该方法与 Word2Vec、BiLSTM、Transformer 等现有方法相比,在减少培训时间和标注数据的情况下可以获得更高的准确度。
Dec, 2019
介绍了一种通过神经网络自行学习嵌入向量的方法 —— 动态元嵌入,该方法在同一模型类别下,在各种任务中实现了最先进的性能,并展示了该技术如何在 NLP 系统中应用嵌入向量。
Apr, 2018
本文提出了一种基于语言模型的深度上下文化单词表征,通过使用 ELMo 框架训练这些嵌入来研究其在下游缺陷检测任务中的有效性,并表明即使在相对较小的代码库中,低维度的嵌入也可以改进最先进的机器学习系统进行缺陷检测。
Apr, 2020
本论文研究使用机器学习进行源码分析的问题,提出解决标准机器学习方法不能直接用于源代码的问题。作者通过使用 code2vec 嵌入方法来解决问题,但是实验结果表明,变量名对预测结果有较大影响。因此,作者提出了对变量名进行混淆的方法,进一步提高了嵌入模型的准确性,并探索了一种方法将类别层面的信息整合到嵌入模型中。研究结果在源代码分类方面表现出了较好的性能。
Apr, 2020
该研究提出了一种基于概率的语言模型,可以跟踪个别单词随时间的语义演变,并通过嵌入空间中的潜在轨迹表示单词和上下文。研究发现,该动态模型推断的单词嵌入轨迹更易解释,并且具有更高的预测性可能性。
Feb, 2017
本研究提出使用基于 CBOW 的训练方法进行文本嵌入的知识蒸馏,可以有效地提高自然语言处理应用程序的计算效率,同时优于从头开始训练的静态嵌入和以前提出的方法提炼的嵌入。此外,该方法还可以通过标准词汇评估任务公平比较上下文和静态嵌入。
Jun, 2021