由于现实世界编程语言语法的复杂性,因此从原始源代码中的学习程序语义是具有挑战性的,并且由于难以重建长距离关系信息在程序中使用标识符暗示表示的长距离关系信息。在解决第一点时,我们将约束的Horn条款(CHC)视为程序验证问题的标准表示,提供了一种简单而编程的语言独立语法。对于第二个挑战,我们探索CHC的图表表示,并提出了一个新的关系超图神经网络(R-HYGNN)体系结构来学习程序功能。我们介绍了CHC的两个不同的图表。一个称为约束图(CG),并通过将符号及其关系分别翻译成键入节点和二进制边缘,并强调CHC的句法信息,并将其构造为抽象语法树的约束。第二个称为控制和数据流超图(CDHG),并通过表示通过三元超过的控制和数据流来强调CHC的语义信息。然后,我们提出了一种新的GNN体系结构R-HYGNN,扩展了关系图卷积网络,以处理超图。为了评估R-HYGNN从程序中提取语义信息的能力,我们使用R-HYGNN在两个图表上训练模型,以及使用CHC-COMP 2021的基准作为培训数据,在五个具有越来越多的代理任务上进行了越来越多的困难。最困难的代理任务要求该模型预测反例中的条款的出现,这是CHC的满意度。 CDHG在此任务中达到90.59%的精度。此外,R-HYGNN对由290多个条款组成的图表之一具有完美的预测。总体而言,我们的实验表明,R-HYGNN可以捕获复杂的程序功能,以实现指导验证问题。
translated by 谷歌翻译
动态类型的语言如JavaScript和Python已成为最受欢迎的使用中的使用中。重要的优势可以从动态类型的程序中的类型注释累积。逐渐键入的这种方法是由Querecript编程系统示例,允许程序员指定部分键入的程序,然后使用静态分析来推断剩余类型。然而,通常,静态类型推断的有效性受到限制,取决于程序结构和初始注释的复杂性。结果,对于可以在动态类型的程序中可以在静态预测类型中推进本领域的新​​方法的强大动机,并且该具有可接受的性能用于交互式编程环境。以前的工作表明了使用深度学习的概率类型推断的承诺。在本文中,我们通过引入一系列图形的神经网络(GNN)模型来推进过去的工作,该模型在新型流程图(TFG)表示上运行。 TFG表示输入程序的元素,作为与语法边缘和数据流边缘连接的图表节点,并且我们的GNN模型训练以预测给定输入程序的TFG中的类型标签。我们为我们的评估数据集中的100种最常见类型的GNN模型研究了不同的设计选择,并显示了我们最佳的准确性的两个GNN配置,分别实现了87.76%和86.89%的前1个精度,优于两个最密切相关的深度学习型推断从过去的工作 - 矮人的前进剂,顶级1的精度为84.62%,兰丹特精确为79.45%。此外,这两种配置的平均推理吞吐量为353.8和1,303.9文件/秒,而DeepTyper的186.7个文件/秒和LambDanet的1,050.3文件/秒。
translated by 谷歌翻译
Graph-structured data appears frequently in domains including chemistry, natural language semantics, social networks, and knowledge bases. In this work, we study feature learning techniques for graph-structured inputs. Our starting point is previous work on Graph Neural Networks (Scarselli et al., 2009), which we modify to use gated recurrent units and modern optimization techniques and then extend to output sequences. The result is a flexible and broadly useful class of neural network models that has favorable inductive biases relative to purely sequence-based models (e.g., LSTMs) when the problem is graph-structured. We demonstrate the capabilities on some simple AI (bAbI) and graph algorithm learning tasks. We then show it achieves state-of-the-art performance on a problem from program verification, in which subgraphs need to be described as abstract data structures.
translated by 谷歌翻译
随着深度学习技术的快速发展,各种最近的工作试图应用图形神经网络(GNN)来解决诸如布尔满足(SAT)之类的NP硬问题,这表明了桥接机器学习与象征性差距的潜力。然而,GNN预测的解决方案的质量并未在文献中进行很好地研究。在本文中,我们研究了GNNS在学习中解决最大可满足性(MaxSAT)问题的能力,从理论和实践角度来看。我们构建了两种GNN模型来学习来自基准的MaxSAT实例的解决方案,并显示GNN通过实验评估解决MaxSAT问题的有吸引力。我们还基于算法对准理论,我们还提出了GNNS可以在一定程度上学会解决MaxSAT问题的影响的理论解释。
translated by 谷歌翻译
人工智能代理必须从周围环境中学到学习,并了解所学习的知识,以便做出决定。虽然从数据的最先进的学习通常使用子符号分布式表示,但是使用用于知识表示的一阶逻辑语言,推理通常在更高的抽象级别中有用。结果,将符号AI和神经计算结合成神经符号系统的尝试已经增加。在本文中,我们呈现了逻辑张量网络(LTN),一种神经组织形式和计算模型,通过引入许多值的端到端可分别的一阶逻辑来支持学习和推理,称为真实逻辑作为表示语言深入学习。我们表明LTN为规范提供了统一的语言,以及多个AI任务的计算,如数据聚类,多标签分类,关系学习,查询应答,半监督学习,回归和嵌入学习。我们使用TensorFlow2的许多简单的解释例实施和说明上述每个任务。关键词:神经组音恐怖症,深度学习和推理,许多值逻辑。
translated by 谷歌翻译
归纳逻辑编程(ILP)是一种机器学习的形式。ILP的目标是诱导推广培训示例的假设(一组逻辑规则)。随着ILP转30,我们提供了对该领域的新介绍。我们介绍了必要的逻辑符号和主要学习环境;描述ILP系统的构建块;比较几个维度的几个系统;描述四个系统(Aleph,Tilde,Aspal和Metagol);突出关键应用领域;最后,总结了未来研究的当前限制和方向。
translated by 谷歌翻译
组合优化是运营研究和计算机科学领域的一个公认领域。直到最近,它的方法一直集中在孤立地解决问题实例,而忽略了它们通常源于实践中的相关数据分布。但是,近年来,人们对使用机器学习,尤其是图形神经网络(GNN)的兴趣激增,作为组合任务的关键构件,直接作为求解器或通过增强确切的求解器。GNN的电感偏差有效地编码了组合和关系输入,因为它们对排列和对输入稀疏性的意识的不变性。本文介绍了对这个新兴领域的最新主要进步的概念回顾,旨在优化和机器学习研究人员。
translated by 谷歌翻译
Most graph neural network models rely on a particular message passing paradigm, where the idea is to iteratively propagate node representations of a graph to each node in the direct neighborhood. While very prominent, this paradigm leads to information propagation bottlenecks, as information is repeatedly compressed at intermediary node representations, which causes loss of information, making it practically impossible to gather meaningful signals from distant nodes. To address this issue, we propose shortest path message passing neural networks, where the node representations of a graph are propagated to each node in the shortest path neighborhoods. In this setting, nodes can directly communicate between each other even if they are not neighbors, breaking the information bottleneck and hence leading to more adequately learned representations. Theoretically, our framework generalizes message passing neural networks, resulting in provably more expressive models, and we show that some recent state-of-the-art models are special instances of this framework. Empirically, we verify the capacity of a basic model of this framework on dedicated synthetic experiments, and on real-world graph classification and regression benchmarks, and obtain state-of-the-art results.
translated by 谷歌翻译
We present the Neural Satisfiability Network (NSNet), a general neural framework that models satisfiability problems as probabilistic inference and meanwhile exhibits proper explainability. Inspired by the Belief Propagation (BP), NSNet uses a novel graph neural network (GNN) to parameterize BP in the latent space, where its hidden representations maintain the same probabilistic interpretation as BP. NSNet can be flexibly configured to solve both SAT and #SAT problems by applying different learning objectives. For SAT, instead of directly predicting a satisfying assignment, NSNet performs marginal inference among all satisfying solutions, which we empirically find is more feasible for neural networks to learn. With the estimated marginals, a satisfying assignment can be efficiently generated by rounding and executing a stochastic local search. For #SAT, NSNet performs approximate model counting by learning the Bethe approximation of the partition function. Our evaluations show that NSNet achieves competitive results in terms of inference accuracy and time efficiency on multiple SAT and #SAT datasets.
translated by 谷歌翻译
Two approaches to AI, neural networks and symbolic systems, have been proven very successful for an array of AI problems. However, neither has been able to achieve the general reasoning ability required for human-like intelligence. It has been argued that this is due to inherent weaknesses in each approach. Luckily, these weaknesses appear to be complementary, with symbolic systems being adept at the kinds of things neural networks have trouble with and vice-versa. The field of neural-symbolic AI attempts to exploit this asymmetry by combining neural networks and symbolic AI into integrated systems. Often this has been done by encoding symbolic knowledge into neural networks. Unfortunately, although many different methods for this have been proposed, there is no common definition of an encoding to compare them. We seek to rectify this problem by introducing a semantic framework for neural-symbolic AI, which is then shown to be general enough to account for a large family of neural-symbolic systems. We provide a number of examples and proofs of the application of the framework to the neural encoding of various forms of knowledge representation and neural network. These, at first sight disparate approaches, are all shown to fall within the framework's formal definition of what we call semantic encoding for neural-symbolic AI.
translated by 谷歌翻译
从结构化数据中学习是一项核心机器学习任务。通常,此类数据表示为图,通常仅考虑(键入)节点对之间的二进制关系。对于具有高度结构化数据的许多域而言,这是一个实质性的限制。一个重要的域是源代码,基于超图的表示可以更好地捕获代码的语义丰富和结构化的性质。在这项工作中,我们提出了热量,这是一种能够代表键入和合格的超图的神经模型,在该模型中,每个Hyperede都明确地符合参与节点的贡献。它可以看作是传递神经网络和变压器的消息的概括。我们使用新型程序代表程序来评估知识库完成和错误检测和维修的热量。在这两种情况下,它都优于强大的基线,表明其力量和通用性。
translated by 谷歌翻译
由不同类型的节点和边缘组成的学习异质图增强了均匀图技术的结果。这样的图形的一个有趣示例是代表可能的软件代码执行流的控制流图。由于此类图代表了代码的更多语义信息,因此为这些图形开发技术和工具可能对检测软件中的漏洞的可靠性非常有益。但是,现有的异质图技术仍然不足以处理复杂的图形,在处理复杂的图形中,不同类型的节点和边缘数量较大且可变。本文集中于以太坊智能合约作为由构建在控制流图和包含不同类型的节点和链接的呼叫图的异质合同图表示的软件代码样本。我们提出了曼多(Mando),这是一种新的异质图表示,以学习这种异质合同图的结构。 Mando提取自定义的Metapaths,该Metapaths在不同类型的节点及其邻居之间建立了关系连接。此外,它开发了一个多米达异构图注意网络,以学习不同类型的节点及其在异质合同图中的多层嵌入,可以更准确地捕获智能合约的代码语义,并便利两者。 - 水平和粗粒合同级别的漏洞检测。我们对大型智能合同数据集的广泛评估表明,曼多(Mando)在粗粒合同水平上改善了其他技术的脆弱性检测结果。更重要的是,它是第一种基于学习的方法,能够在细粒度的线条层面上识别漏洞,并在F1分数方面将基于代码分析的传统漏洞检测方法显着提高了11.35%至70.81%。
translated by 谷歌翻译
代码搜索目标是根据自然语言查询检索相关的代码片段,以提高软件生产力和质量。但是,由于源代码和查询之间的语义间隙,自动代码搜索是具有挑战性的。大多数现有方法主要考虑嵌入的顺序信息,其中文本背后的结构信息不完全考虑。在本文中,我们设计了一个名为GraphsearchNet的新型神经网络框架,通过共同学习源代码和查询的富集语义来启用有效和准确的源代码搜索。具体地,我们建议将源代码和查询编码为两个图,其中双向GGNN以捕获图表的本地结构信息。此外,我们通过利用有效的多主题来增强BigGNN,以补充BigGNN错过的全球依赖。关于Java和Python数据集的广泛实验说明了GraphSearchNet优于当前最先进的工作原位。
translated by 谷歌翻译
回答集编程(ASP)已成为一种流行的和相当复杂的声明问题解决方法。这是由于其具有吸引力的地址解决方案的工作流程,这是可以轻松解决问题解决的方法,即使对于计算机科学外的守护者而言。与此不同,底层技术的高度复杂性使得ASP专家越来越难以将想法付诸实践。有关解决此问题,本教程旨在使用户能够构建自己的基于ASP的系统。更确切地说,我们展示了ASP系统Clingo如何用于扩展ASP和实现定制的专用系统。为此,我们提出了两个替代方案。我们从传统的AI技术开始,并展示元编程如何用于扩展ASP。这是一种相当轻的方法,依赖于Clingo的reation特征来使用ASP本身表达新功能。与此不同,本教程的主要部分使用传统的编程(在Python中)来通过其应用程序编程接口操纵Clingo。这种方法允许改变和控制ASP的整个模型 - 地面解决工作流程。 COMENT of Clingo的新应用程序课程使我们能够通过自定义类似于Clingo中的进程来绘制Clingo的基础架构。例如,我们可能会互动到程序的抽象语法树,控制各种形式的多射击求解,并为外国推论设置理论传播者。另一种横截面结构,跨越元以及应用程序编程是Clingo的中间格式,即指定底层接地器和求解器之间的界面。我们通过示例和几个非琐碎的案例研究说明了本教程的前述概念和技术。
translated by 谷歌翻译
在实际执行或基准测试之前预测生产代码的性能是高度挑战的。在本文中,我们提出了一个被称为TEP-GNN的预测模型,该模型表明,对于预测单位测试执行时间的特殊情况,高准确性的性能预测是可能的。 Tep-gnn使用FA-asts或流动的ASTS作为基于图的代码表示方法,并使用强大的图形神经网络(GNN)深度学习模型预测测试执行时间。我们基于从项目公共存储库中开采的922个测试文件,使用四个现实生活中的Java开源程序评估TEP-GNN。我们发现我们的方法达到了0.789的较高的Pearson相关性,表现优于基线深度学习模型。但是,我们还发现,训练有素的模型需要更多的工作来概括看不见的项目。我们的工作表明,FA-asts和GNN是预测绝对性能值的可行方法,并作为能够在执行前预测任意代码的性能的重要中介步骤。
translated by 谷歌翻译
即使机器学习算法已经在数据科学中发挥了重要作用,但许多当前方法对输入数据提出了不现实的假设。由于不兼容的数据格式,或数据集中的异质,分层或完全缺少的数据片段,因此很难应用此类方法。作为解决方案,我们提出了一个用于样本表示,模型定义和培训的多功能,统一的框架,称为“ Hmill”。我们深入审查框架构建和扩展的机器学习的多个范围范式。从理论上讲,为HMILL的关键组件的设计合理,我们将通用近似定理的扩展显示到框架中实现的模型所实现的所有功能的集合。本文还包含有关我们实施中技术和绩效改进的详细讨论,该讨论将在MIT许可下发布供下载。该框架的主要资产是其灵活性,它可以通过相同的工具对不同的现实世界数据源进行建模。除了单独观察到每个对象的一组属性的标准设置外,我们解释了如何在框架中实现表示整个对象系统的图表中的消息推断。为了支持我们的主张,我们使用框架解决了网络安全域的三个不同问题。第一种用例涉及来自原始网络观察结果的IoT设备识别。在第二个问题中,我们研究了如何使用以有向图表示的操作系统的快照可以对恶意二进制文件进行分类。最后提供的示例是通过网络中实体之间建模域黑名单扩展的任务。在所有三个问题中,基于建议的框架的解决方案可实现与专业方法相当的性能。
translated by 谷歌翻译
终止分析研究了打算检测非终止的程序的终止行为,这众所周知会导致各种程序错误(例如悬挂程序,拒绝服务漏洞)。除了正式的方法外,已经进行了各种尝试来估计使用神经网络的程序的终止行为。但是,这些方法中的大多数继续依靠形式方法来提供强大的健全性保证,因此受到了类似的限制。在本文中,我们摆脱了形式的方法,拥抱机器学习模型的随机性质。我们的目标不是要通过解决方案来解释的严格保证,而是提供估计程序的终止行为,以及程序员可以将其用于调试目的的可能性不终止的可能原因(如果适用)。与以前使用神经网络进行程序终止的方法相比,我们还通过采用图形神经网络来利用程序的图表表示。为了进一步协助程序员理解和调试非终止错误,我们适应了以前用于其他应用程序域的注意力和语义细分的概念。总体而言,我们设计和实现了基于图形卷积网络和图形注意网络的程序终止的分类器,以及语义分割图形神经网络,该神经网络本地定位可能导致非终止的AST节点。我们还说明了如何将语义细分提供的信息与程序切片结合在一起,以进一步帮助调试。
translated by 谷歌翻译
深度学习在各种软件工程任务中广泛使用,例如,节目分类和缺陷预测。虽然该技术消除了特征工程所需的过程,但源代码模型的构建显着影响了这些任务的性能。最近的作品主要集中在通过引入从CFG提取的上下文依赖项来补充基于AST的源代码模型。但是,所有这些都关注基本块的表示,这是上下文依赖性的基础。在本文中,我们集成了AST和CFG,并提出了一种嵌入了分层依赖项的新型源代码模型。基于此,我们还设计了一种神经网络,这取决于图表关注机制。特殊地,我们介绍了基本块的句法结构,即其对应的AST,在源代码模型中提供足够的信息并填补间隙。我们在三种实际软件工程任务中评估了该模型,并将其与其他最先进的方法进行了比较。结果表明,我们的模型可以显着提高性能。例如,与最佳性能的基线相比,我们的模型将参数的比例降低了50 \%并实现了对程序分类任务的准确性的4 \%改进。
translated by 谷歌翻译
图形神经网络与逻辑编程共享几种关键的关系推理机制。对其训练和评估的数据集可以看作是包含基础项的数据库事实。这使得可以通过等效逻辑程序对推理机制进行建模,以更好地理解它们如何在机器学习过程中涉及的实体之间传播信息,还可以地下限制从给定数据集中学到的知识,以及如何概括如何概括看不见的测试数据。这使我们了解了本文的关键思想:借助逻辑程序建模,鉴于其已知的连接,从图形结构中涉及的信息流从图形结构及其节点属性的信息内容进行推断,鉴于其已知的连接到具有类似属性的节点。该问题称为图形节点属性预测,我们的方法将在Prolog程序的帮助下模拟图形神经网络训练和推理阶段的关键信息传播步骤。我们在OGBN-Arxiv节点属性推理基准测试中测试了我们的一种方法。为了推断代表引文网络中论文的节点的类标签,我们将与每个节点关联的文本的依赖树提炼成我们用作地面原始术语的定向无环图。加上他们对其他论文的参考集合,它们在数据库中成为事实,我们在该数据库中借助Prolog程序来理解该程序,该程序模仿图形神经网络中预测节点属性的信息传播。在此过程中,我们发明了地面项相似性关系,这些关系通过在训练集中传播来自相似节点的节点属性来帮助推断测试集中的标签,并与图形链接结构相比评估它们的有效性。最后,我们实施了揭示数据集固有的性能上限的说明生成器。作为一个实际结果,我们获得了一个逻辑程序,当将机器学习算法视为时,在节点属性属性预测基准上执行了直接的最新技术。
translated by 谷歌翻译
近年来,基于Weisfeiler-Leman算法的算法和神经架构,是一个众所周知的Graph同构问题的启发式问题,它成为具有图形和关系数据的机器学习的强大工具。在这里,我们全面概述了机器学习设置中的算法的使用,专注于监督的制度。我们讨论了理论背景,展示了如何将其用于监督的图形和节点表示学习,讨论最近的扩展,并概述算法的连接(置换 - )方面的神经结构。此外,我们概述了当前的应用和未来方向,以刺激进一步的研究。
translated by 谷歌翻译