E-Predictor: プルリクエスト受け入れの早期予測手法
プルリクエスト受け入れの早期予測に関する研究の突破口
近年、オープンソースソフトウェア(Open-Source Software, OSS)の開発は主流のソフトウェア開発モデルの一つとなりつつあります。このモデルは開発者間での協力を大いに依存しており、プルリクエスト(Pull Request, PR)の仕組みは分散型ソフトウェア開発における協力の効率を向上させる手段として広く採用されています。GitHubなどのOSSプラットフォームでは、PRを通じて開発者はコード変更要求を提出し、プロジェクトの管理者(インテグレーター)がコードレビューを行い、そのコードを主ブランチにマージするかどうかを決定します。しかし、OSSプロジェクトの活発化に伴い、PRの数が急増し、管理者の負担が増大するとともに、PR処理の遅延が生じています。PRの受け入れ状態を効率的に管理し予測する方法は、研究者および開発者の注目の的となっています。
この背景を受け、浙江大学ブロックチェーンとデータセキュリティ国家重点実験室のKexing Chen、Lingfeng Bao、Xing Hu、ならびに華為技術(Huawei)のソフトウェア工学応用技術ラボのXin XiaとXiaohu Yangが、「e-predictor: PR受け入れ状態を早期に予測するアプローチ」(原題:”e-predictor: An Approach for Early Prediction of Pull Request Acceptance”)という研究論文を発表しました。この論文は2025年に『Science China Information Sciences』(Vol. 68, Iss. 5, DOI: https://doi.org/10.1007/s11432-022-3953-4)に掲載されており、PR作成時点でその受け入れ可否を即座に予測することを目的とした新しい予測手法「e-predictor」を体系的に提案しています。この手法は管理者の負担を軽減するとともに、迅速なフィードバックを提供します。
研究背景と革新的動機
PR中心の開発モデルはソフトウェア開発の協力効率を向上させましたが、その一方で顕著な課題も浮き彫りになっています。たとえば、GitHubの統計によると、2021年には1.7億件以上のPRがマージされました。これらのPRの急増により、管理者にとってレビュー作業が非常に負担となっています。文献の統計によれば、PRの作成からクローズまでの平均期間は37日であり、その結果、プロジェクトの進捗が遅れる一因となっています。既存の研究では、PRが受け入れられる可能性を事前に予測することでレビュー作業の削減を目指しましたが、これらのモデルの多くはPR作成後のコメントや議論といった動的な情報に依存しています。このため、実際には管理者の初期負担を軽減するには至っていません。
この課題を解決するため、本研究ではPR作成時に早期特性と深層セマンティクス特性を活用して予測を行う「e-predictor」を提案しました。このモデルにより、作成直後のPRに対し優先順位付けや工数見積もりを即座に行えるようにすることを目指します。
研究のワークフロー
研究チームはe-predictorの開発・検証を複数の段階に分けて体系的に進めました。
データ収集と前処理
研究チームは、GitHub上で最も人気のある49のOSSプロジェクトのPRデータを収集し、総計475,192件のPRを集めました。これらのプロジェクトが代表性を持つことを確認するため、次のような厳格なフィルタリングが行われました。 1. チュートリアルや教材系のプロジェクトを除外。 2. フォークプロジェクトを除外。 3. 実際の開発活動がGitHubではなく、単にバックアップ目的で公開されているプロジェクトを除外。
また、PRのマージを判断するため以下の基準を使用しました:
1. PRの"merged at"
フィールドが空でないことを確認。
2. PR内のコミットがプロジェクト主ブランチに含まれていることを確認。
3. コメント内に「merged」や「committed」といったキーワードが含まれていることを確認。
4. リポジトリ内のコミットが特定のPRを参照しているかどうかを確認。
これらに該当しないPRは拒否されたPRとして扱いました。
次に、PRの記述部分は特殊文字といったノイズを除去して前処理が行われ、コード変更部分はソースコードの追加・削除行のみを抽出しました。
特徴抽出
e-predictorは手動で集計した特徴量と深層セマンティクス特徴量の2つの特徴を使用しています。手動集計された特徴量は以下の3種類に分類されます:
- 寄稿者の特徴(Contributor Profile): 開発者がPRを作成する前の活動履歴として、所有していたプロジェクト数、コミット数、PR提出数、問題(issue)への参加記録、ロボットアカウントか否かなどを含む。
- PR特性(Specific Pull Request): PR記述の長さ、コミット数、コードの変更行数、テストファイルやドキュメントファイルの有無などを含む。
- プロジェクト特性(Project Profile): PR作成時点のプロジェクト全体の状態について、過去1ヶ月間のPR提出数、コメント量、問題のクローズ数などを含む。
さらに、深層学習を活用することで、 - PR記述特徴量: RoBERTaモデルを使用し、768次元の特徴ベクトルを生成。 - コード変更特徴量: CodeBERTモデルを使用してソースコード変更をエンコードし、768次元の特徴ベクトルを生成。
これらの特徴ベクトルを次元削減した後、30次元のベクトルに統合しました。
予測モデル
予測モデルにはXGBoost分類器が選ばれました。XGBoostは大量かつ高次元データを扱う際に優れた性能を持つことで知られており、PR予測タスクにも適用可能です。最終的に、e-predictorは手動特徴と深層セマンティクス特徴、計76次元を統合してXGBoostを用いて訓練されました。
研究結果
性能評価
研究チームはe-predictorの性能を10分割交差検証(10-fold Cross-Validation)と時間依存型の検証(Time-Aware Validation)という2つの戦略で評価しました。評価は主に以下の指標を使用しました:F1スコア、AUC値(受信者動作特性曲線の下の面積)、そしてPrecisionとRecall。
実験結果によると、e-predictorはPRが受け入れられるかどうかの予測において優れた性能を示しました: - 10分割交差検証では、e-predictorのF1@Mergeが90.1%、AUC値が85.4%に達し、他のベースラインモデルを大きく上回りました。 - 時間依存型検証ではAUC値が81.6%となり、同様にベースラインモデルを上回りました。
しかし、データセット自体が受理/拒否率約7:3の不均衡であるため、PRの拒否を予測する際の性能(F1@Reject)がやや劣っており、60.5%(10分割交差検証)にとどまります。それでも、PR拒否のPrecision@Rejectは75.1%と比較的高く、拒否の正確な判断が可能であることを示しています。
特徴重要度分析
手動で抽出した特徴量についてさらに分析したところ、PR記述の品質(記述内容の詳細さ)および対象プロジェクトにおける寄稿者の過去の経験がPR受け入れ状態に重要な影響を与えていることが明らかになりました。このことから、以下が導き出されます: 1. 明確で質の高い記述はPR受け入れ率を高める。 2. 過去に合格した経験は将来的なPRの成功率を大きく向上させる。
研究意義と価値
本研究は、より実践的で効率的なPR予測方法を提示した点で大きな意義があります。e-predictorはPR作成時の早期特性と深層セマンティクスを用いて予測を行い、管理者に意志決定を支援できます。これにより、管理負担が軽減されるとともに、寄稿者にも迅速なフィードバックを提供し、PR作成直後からコードや記述を最適化する機会が与えられます。さらに、本研究はディープラーニング技術と伝統的な特徴工学の融合を通じ、ソフトウェアエンジニアリングの実問題を解決する新たな手法を提案しました。
また、本研究の成果はOSSコミュニティにとって強力なツールとして役立ちます。PR管理の効率を高めるだけでなく、OSSプロジェクトの協力モデルを理解するためのデータ基盤も提供します。
結論と展望
e-predictorはPRの自動処理に有効なソリューションを提示しており、その方法論および技術革新は重要な学術的意義および実践的価値を持っています。本研究には(データの不均衡など)いくつかの課題が残されていますが、今後、より多くの特徴を拡張しアルゴリズムを改良することで、このツールの適用性および精度をさらに向上させることが可能です。研究チームはデータセットを拡大し、より汎用性があり強力なモデルを開発して、広範なOSSプロジェクトを支援することを計画しています。