[论文解读] Teaching machines to understand data science code by semantic enrichment of dataflow graphs
本文提出一种通过使用领域特定本体对数据流图进行语义增强的方法,以教导机器理解数据科学代码。该方法结合静态和动态程序分析生成原始数据流图,再通过一种新型本体语言(Monocl)和数据科学本体,将原始图转换为语义数据流图,使人工智能系统能够以聚类和数据转换等科学概念来解释代码。
Your computer is continuously executing programs, but does it really understand them? Not in any meaningful sense. That burden falls upon human knowledge workers, who are increasingly asked to write and understand code. They deserve to have intelligent tools that reveal the connections between code and its subject matter. Towards this prospect, we develop an AI system that forms semantic representations of computer programs, using techniques from knowledge representation and program analysis. To create the representations, we introduce an algorithm for enriching dataflow graphs with semantic information. The semantic enrichment algorithm is undergirded by a new ontology language for modeling computer programs and a new ontology about data science, written in this language. Throughout the paper, we focus on code written by data scientists and we locate our work within a larger movement towards collaborative, open, and reproducible science.
研究动机与目标
- 解决计算机代码中机器理解能力不足的问题,特别是在数据科学工作流中。
- 使人工智能系统能够超越语法层面理解数据科学代码,将其与统计建模和数据转换等特定领域概念关联起来。
- 开发一种可扩展、自动化的系统,将原始代码转换为语义上有意义的表示形式,而无需程序员提供标注。
- 创建一个领域特定本体(数据科学本体)和一种形式化语言(Monocl),以科学抽象的形式建模编程构造。
- 通过捕捉其语义意图,促进能够总结、可视化或推理数据科学工作流的工具开发。
提出的方法
- 使用静态和动态程序分析从代码构建原始数据流图,以捕获数据依赖关系和控制流。
- 定义一种新型本体语言 Monocl,作为用于建模程序概念和函数的轻量级、强类型、函数式语言。
- 使用 Monocl 设计数据科学本体,将具体的编程构造(如 scikit-learn 估计器、pandas 函数)映射到抽象的科学概念(如“拟合模型”、“读取数据表”)。
- 开发一种语义增强算法,通过使用数据科学本体解析函数注释,将原始流图映射为语义流图。
- 利用函数注释将具体函数(如 R 中的 `kmeans`,scikit-learn 中的 `fit`)链接到抽象程序组件(如“拟合统计模型”)。
- 在 Monocl 中集成子类型和隐式转换,以实现将多样化软件 API 灵活映射到统一的语义概念。
实验结果
研究问题
- RQ1如何为数据流图添加语义信息,以反映数据科学代码中的特定领域科学概念?
- RQ2需要何种形式化语言来表达低级代码构造与高级数据科学抽象之间的关系?
- RQ3机器学习系统能否在无须人工标注元数据的情况下自动推断数据科学脚本的语义意图?
- RQ4在多样的编程接口(如 Python、R 及 Pandas、Scikit-learn 等库)中,统一本体在多大程度上能将其统一到共同的科学概念之下?
- RQ5代码的语义表示在支持工作流总结或自动可视化等实际应用方面,能发挥多大作用?
主要发现
- 语义增强算法成功地将原始数据流图转换为可解释的语义流图,准确反映科学意图。
- 数据科学本体实现了对多样化数据科学库(如 SciPy、scikit-learn、R 的 stats)的一致映射,统一到如“k-means 聚类”和“拟合模型”等抽象概念之下。
- Monocl 本体语言通过使用产品类型、单位类型以及支持隐式转换的子类型机制,支持灵活且可组合的程序类型与函数建模。
- 该系统在真实世界的数据科学工作流中得到验证,包括一个生物医学数据科学挑战,表明语义表示可以被自动生成。
- 该方法使人工智能代理能够基于领域概念理解并推理数据科学代码,为开发基于科学意图的代码总结、调试或生成工具铺平了道路。
- 数据科学本体和系统代码的开源发布,支持了可复现性,并为生物信息学或计算神经科学等其他科学领域提供了扩展基础。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。