Skip to main content
QUICK REVIEW

[論文レビュー] Teaching machines to understand data science code by semantic enrichment of dataflow graphs

Evan Patterson, Ioana Baldini|arXiv (Cornell University)|Jul 16, 2018
Scientific Computing and Data Management参考文献 41被引用数 6
ひとこと要約

本稿では、分野特有のオントロジーを用いてデータフロー・グラフを意味的に豊かにする手法を提案する。このアプローチは、静的および動的プログラム解析を組み合わせて生のデータフロー・グラフを生成し、新規のオントロジー言語(Monocl)とデータサイエンス・オントロジーを介して、それらを意味的なフロー・グラフに変換することで、AIシステムがクラスタリングやデータ変換といった科学的概念に基づいてコードを解釈できるようにする。

ABSTRACT

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.

研究の動機と目的

  • コンピュータ・コードにおける機械理解の欠如、特にデータサイエンスワークフローにおいての課題に対処する。
  • AIシステムが構文を超えて、統計的モデリングやデータ変換といった分野固有の概念にリンクした形でデータサイエンスコードを解釈できるようにする。
  • プログラマーによるアノテーションを必要とせず、スケーラブルで自動化されたシステムを構築し、生のコードを意味的に意味のある表現に変換する。
  • プログラミング構造を科学的抽象概念の観点からモデル化するための分野特有のオントロジー(データサイエンス・オントロジー)と形式的言語(Monocl)を開発する。
  • ワークフローの意味的意図を捉えることで、要約、可視化、または推論が可能なツールの実現を支援する。

提案手法

  • 静的および動的プログラム解析を用いて、データ依存関係と制御フローを捉えることで、生のデータフロー・グラフを構築する。
  • プログラムの概念や関数をモデル化するための最小限で型付きで関数型の言語として、新規のオントロジー言語Monoclを定義する。
  • Monoclを用いてデータサイエンス・オントロジーを設計し、具体的なプログラミング構造(例:scikit-learnの推定器、pandasの関数)を抽象的な科学的概念(例:モデルのフィッティング、データテーブルの読み込み)にマッピングする。
  • 生のフローフレームを意味的なフローフレームに変換する意味的豊かさ向上アルゴリズムを開発し、データサイエンス・オントロジーを用いて関数のアノテーションを解決する。
  • 関数のアノテーションを用いて、具体的な関数(例:Rの`kmeans`、scikit-learnの`fit`)を抽象的なプログラムコンponent(例:「統計モデルのフィッティング」)にリンクさせる。
  • Monoclにサブタイプとコercionを統合し、多様なソフトウェアAPIを統一された意味的コンセプトに柔軟にマッピング可能にする。

実験結果

リサーチクエスチョン

  • RQ1どのようにしてデータフロー・グラフに意味的情報を豊かにすることで、データサイエンスのコードにおける分野特有の科学的コンセプトを反映させられるか?
  • RQ2低レベルのコード構造と高レベルのデータサイエンス抽象概念との関係を表現するためには、どのような形式的言語が必要か?
  • RQ3機械学習システムは、人為的メタデータを一切用いずに、データサイエンススクリプトの意味的意図を自動的に推論できるか?
  • RQ4統一されたオントロジーが、PythonやR、Pandas や Scikit-learn といった多様なプログラミングインターフェースを、共通の科学的コンセプトの下に統合できるか、その範囲はどの程度か?
  • RQ5コードの意味的表現が、ワークフロー要約や自動可視化といった実用的応用をどのように支援できるか?

主な発見

  • 意味的豊かさ向上アルゴリズムは、科学的意図を反映する解釈可能な意味的フロー・グラフに、生のデータフロー・グラフを成功裏に変換した。
  • データサイエンス・オントロジーは、多様なデータサイエンスライブラリ(例:SciPy、scikit-learn、Rのstats)を、共通の抽象的概念(例:「k-meansクラスタリング」「モデルのフィッティング」)に一貫してマッピング可能であることを示した。
  • Monoclオントロジー言語は、積型、ユニット型、および暗黙のコercionを伴うサブタイプを用いて、プログラムの型と関数を柔軟かつ合成可能な形でモデル化できる。
  • 本システムは、実世界のデータサイエンスワークフロー(例:バイオメディカル分野のデータサイエンスチャレンジ)においても実現可能性を示し、意味的表現が自動的に生成可能であることを裏付けた。
  • 本アプローチにより、AIエージェントが分野のコンセプトに基づいてデータサイエンスコードを理解・推論できるようになり、科学的意図に基づいた要約、デバッグ、コード生成を支援するツールの開発に道を拓いた。
  • データサイエンス・オントロジーおよびシステムコードのオープンソース提供により、再現性が確保され、バイオインフォマティクスや計算神経科学といった他の科学分野への応用拡張が可能となった。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。