論文の概要: Call Me Maybe: Enhancing JavaScript Call Graph Construction using Graph Neural Networks
- arxiv url: http://arxiv.org/abs/2506.18191v1
- Date: Sun, 22 Jun 2025 22:26:44 GMT
- ステータス: 翻訳完了
- システム内更新日: 2025-06-24 19:06:36.797
- Title: Call Me Maybe: Enhancing JavaScript Call Graph Construction using Graph Neural Networks
- Title(参考訳): グラフニューラルネットワークによるJavaScriptコールグラフ構築の強化
- Authors: Masudul Hasan Masud Bhuiyan, Gianluca De Stefano, Giancarlo Pellegrino, Cristian-Alexandru Staicu,
- Abstract要約: これまでの研究は、高度なソリューションでさえ偽のエッジを生成し、有効なソリューションを見逃していることを示している。
我々の主な考えは、複数のエッジ型を持つリッチな表現を用いて、完全なプログラムグラフ上のリンク予測として問題をフレーム化することである。
提案手法は,JavaScriptコールグラフ構築のリコールを改善することができることを示す。
- 参考スコア(独自算出の注目度): 15.40199816880172
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Static analysis plays a key role in finding bugs, including security issues. A critical step in static analysis is building accurate call graphs that model function calls in a program. However, due to hard-to-analyze language features, existing call graph construction algorithms for JavaScript are neither sound nor complete. Prior work shows that even advanced solutions produce false edges and miss valid ones. In this work, we assist these tools by identifying missed call edges. Our main idea is to frame the problem as link prediction on full program graphs, using a rich representation with multiple edge types. Our approach, GRAPHIA, leverages recent advances in graph neural networks to model non-local relationships between code elements. Concretely, we propose representing JavaScript programs using a combination of syntactic- and semantic-based edges. GRAPHIA can learn from imperfect labels, including static call edges from existing tools and dynamic edges from tests, either from the same or different projects. Because call graphs are sparse, standard machine learning metrics like ROC are not suitable. Instead, we evaluate GRAPHIA by ranking function definitions for each unresolved call site. We conduct a large-scale evaluation on 50 popular JavaScript libraries with 163K call edges (150K static and 13K dynamic). GRAPHIA builds program graphs with 6.6M structural and 386K semantic edges. It ranks the correct target as the top candidate in over 42% of unresolved cases and within the top 5 in 72% of cases, reducing the manual effort needed for analysis. Our results show that learning-based methods can improve the recall of JavaScript call graph construction. To our knowledge, this is the first work to apply GNN-based link prediction to full multi-file program graphs for interprocedural analysis.
- Abstract(参考訳): 静的分析は、セキュリティ問題を含むバグを見つける上で重要な役割を果たす。
静的解析における重要なステップは、プログラム内の関数呼び出しをモデル化する正確なコールグラフを構築することです。
しかし、分析が難しい言語機能のため、既存のJavaScriptのコールグラフ構築アルゴリズムは健全でも完全でもない。
以前の研究は、先進的なソリューションでさえ偽のエッジを生成し、有効なソリューションを見逃していることを示している。
この作業では、コールエッジの欠落を特定することで、これらのツールを支援します。
我々の主な考えは、複数のエッジ型を持つリッチな表現を用いて、完全なプログラムグラフ上のリンク予測として問題をフレーム化することである。
我々のアプローチである GraphIA は、最近のグラフニューラルネットワークの進歩を活用して、コード要素間の非局所的な関係をモデル化する。
具体的には,構文的エッジと意味論的エッジを組み合わせたJavaScriptプログラムを提案する。
GraphIAは、既存のツールからの静的コールエッジや、同じプロジェクトや異なるプロジェクトからの動的エッジなど、不完全なラベルから学ぶことができる。
コールグラフはスパースであるため、ROCのような標準的な機械学習メトリクスは適切ではない。
その代わり,未解決コールサイト毎の関数定義のランク付けにより GraphIA を評価する。
我々は163Kコールエッジ(150K静的および13K動的)を持つ50の人気のあるJavaScriptライブラリに対して大規模な評価を行う。
GraphIAは6.6M構造と386Kセマンティックエッジを持つプログラムグラフを構築する。
未解決事例の42%以上、未解決事例の72%以上において、正しいターゲットを最上位候補にランク付けし、分析に必要な手作業を減らす。
提案手法は,JavaScriptコールグラフ構築のリコールを改善することができることを示す。
我々の知る限り、これはGNNベースのリンク予測を完全なマルチファイルプログラムグラフに適用する最初の試みである。
関連論文リスト
- Can Large Language Models Analyze Graphs like Professionals? A Benchmark, Datasets and Models [88.4320775961431]
グラフを処理するために,大規模言語モデル(LLM)のベンチマークであるProGraphを導入する。
その結果,現在のLCMの性能は不満足であり,最高のモデルでは36%の精度しか達成できないことがわかった。
本研究では,6つの広く使用されているグラフライブラリに基づいて,クローリングされたドキュメントと自動生成コードを含むLLM4Graphデータセットを提案する。
論文 参考訳(メタデータ) (2024-09-29T11:38:45Z) - Static JavaScript Call Graphs: A Comparative Study [2.0512104126857786]
我々は、JavaScriptコールグラフを構築するために広く採用されている5つの静的アルゴリズムを体系的に比較した。
その結果,アルゴリズム間のコールエッジの交点は比較的大きく,精度は100であることがわかった。
ACGはTAJSの直後に最も精度が高かったが,ACGの呼び出しエッジは有意に増加した。
論文 参考訳(メタデータ) (2024-05-12T08:10:46Z) - Learnable Graph Matching: A Practical Paradigm for Data Association [74.28753343714858]
これらの問題に対処するための一般的な学習可能なグラフマッチング法を提案する。
提案手法は,複数のMOTデータセット上での最先端性能を実現する。
画像マッチングでは,一般的な屋内データセットであるScanNetで最先端の手法より優れている。
論文 参考訳(メタデータ) (2023-03-27T17:39:00Z) - Are All Edges Necessary? A Unified Framework for Graph Purification [6.795209119198288]
グラフのすべてのエッジが機械学習モデルのトレーニングに必要ではない。
本稿では,新たな視点からグラフデータを浄化するために,エッジをドロップする手法を提案する。
論文 参考訳(メタデータ) (2022-11-09T20:28:25Z) - AutoPruner: Transformer-Based Call Graph Pruning [7.319973664340497]
本稿では,統計的意味解析と構造解析の両方を通じて,コールグラフの偽陽性を除去する新しいコールグラフ解析手法であるAutoPrunerを提案する。
実世界のプログラムのベンチマークデータセットに対する実証的な評価は、AutoPrunerが最先端のベースラインを上回っていることを示している。
論文 参考訳(メタデータ) (2022-09-07T15:35:28Z) - Node Feature Extraction by Self-Supervised Multi-scale Neighborhood
Prediction [123.20238648121445]
我々は、新しい自己教師型学習フレームワーク、グラフ情報支援ノード機能exTraction (GIANT)を提案する。
GIANT は eXtreme Multi-label Classification (XMC) 形式を利用しており、これはグラフ情報に基づいた言語モデルの微調整に不可欠である。
我々は,Open Graph Benchmarkデータセット上での標準GNNパイプラインよりもGIANTの方が優れた性能を示す。
論文 参考訳(メタデータ) (2021-10-29T19:55:12Z) - Learnable Graph Matching: Incorporating Graph Partitioning with Deep
Feature Learning for Multiple Object Tracking [58.30147362745852]
フレーム間のデータアソシエーションは、Multiple Object Tracking(MOT)タスクの中核にある。
既存の手法は、主にトラックレットとフレーム内検出の間のコンテキスト情報を無視する。
そこで本研究では,学習可能なグラフマッチング手法を提案する。
論文 参考訳(メタデータ) (2021-03-30T08:58:45Z) - Grale: Designing Networks for Graph Learning [68.23038997141381]
我々は,数十億のノードを持つグラフのグラフ設計問題に対処するために,スケーラブルなGraleを提案する。
グレールは、(潜在的に弱い)類似性の異なる測度を融合して、そのノード間の高いタスク固有のホモフィリーを示すグラフを作成する。
Googleでは、数千億のノードを持つデータセットや、数十兆の潜在的なエッジを含む、20以上の異なる産業環境にGraleをデプロイしています。
論文 参考訳(メタデータ) (2020-07-23T13:25:36Z) - Learning Graph Structure With A Finite-State Automaton Layer [31.028101360041227]
本研究は,本質的なグラフ構造から抽象的関係を導出する学習の課題について考察する。
この問題を緩和して有限状態オートマトンポリシーを学習することで、これらの関係をエンドツーエンドで学習する方法を示す。
我々は,このレイヤがグリッドワールドグラフのショートカットを見つけ,Pythonプログラム上で単純な静的解析を再現できることを実証した。
論文 参考訳(メタデータ) (2020-07-09T17:01:34Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。