[論文レビュー] A Systematic Literature Review on the Use of Deep Learning in Software Engineering Research
本系統的文献レビューでは、ソフトウェア工学における深層学習(DL4SE)の128編の論文を分析し、23のソフトウェア工学タスクにおいて、主なパターン、課題、ベストプラクティスを同定した。学習の構成要素に焦点を当てた構造的分析により、成功事例、再現性に関する懸念、DL4SEにおける今後の研究方向性を示す包括的な研究ロードマップを提示した。
An increasingly popular set of techniques adopted by software engineering (SE) researchers to automate development tasks are those rooted in the concept of Deep Learning (DL). The popularity of such techniques largely stems from their automated feature engineering capabilities, which aid in modeling software artifacts. However, due to the rapid pace at which DL techniques have been adopted, it is difficult to distill the current successes, failures, and opportunities of the current research landscape. In an effort to bring clarity to this crosscutting area of work, from its modern inception to the present, this paper presents a systematic literature review of research at the intersection of SE & DL. The review canvases work appearing in the most prominent SE and DL conferences and journals and spans 128 papers across 23 unique SE tasks. We center our analysis around the components of learning, a set of principles that govern the application of machine learning techniques (ML) to a given problem domain, discussing several aspects of the surveyed work at a granular level. The end result of our analysis is a research roadmap that both delineates the foundations of DL techniques applied to SE research, and highlights likely areas of fertile exploration for the future.
研究の動機と目的
- ソフトウェア工学研究における深層学習の応用の現状を把握すること。
- SEタスクへの深層学習の適用における繰り返し現れるパターン、課題、ベストプラクティスを同定すること。
- 128件の研究を分析することで、今後の研究のための研究ロードマップを提示すること。
- DL4SE文献における再現性および再現可能性に関する懸念を評価すること。
- DL4SEと新興分野である深層学習のためのソフトウェア工学(SE4DL)を区別し、本レビューでDL4SEに焦点を当てる理由を正当化すること。
提案手法
- ソフトウェア工学研究のためのKitchenhamらのガイドラインに従い、系統的文献レビュー(SLR)を実施した。
- トップのSEおよびDL会議で使用された洗練された検索文字列を用い、スノーボール法および手動での論文収集を補完した。
- 事前に定義された含む/除外基準を適用し、23の異なるSEタスクから128件の関連する一次研究を特定した。
- データタイプ、前処理、アーキテクチャ、損失関数、ハイパーパrameterチューニング、評価指標を含む14次元にわたる詳細な属性を抽出した。
- 探索的データ分析および相関分析を実施し、DLの構成要素とパフォーマンスの間の関係を解明した。
- 発見を統合し、再現性の課題、ベストプラクティス、実行可能な今後の研究方向性を特定する研究ロードマップを構築した。
実験結果
リサーチクエスチョン
- RQ1どのソフトウェア工学タスクが深層学習を用いて最も頻繁に取り上げられているか?
- RQ2SE研究で最も一般的に使用されている深層学習アーキテクチャとデータタイプは何か?
- RQ3DL4SE研究では、ハイパーパrameterチューニング、過学習、モデル評価をどのように処理しているか?
- RQ4DL4SE文献における再現性および再現可能性に関する主な課題は何か?
- RQ5SEタスクのためのDLモデル設計時に、例えばオッカムの剃刀の原則のような原則がどのように考慮されているか?
主な発見
- 最も頻繁に研究対象とされたSEタスクには、欠陥予測、コード提案、自動プログラム修復、マルウェア検出が含まれる。
- 畳み込みニューラルネットワーク(CNN)および再帰ニューラルネットワーク(RNN)、特にLSTMが、最も一般的に使用されている深層学習アーキテクチャである。
- 多くの研究が、コードやテキストベースのデータ(例:ソースコード、コメント、ドキュメンテーション)を入力として使用しており、しばしばトークン化および埋め込み技術が必要となる。
- 32%の研究でのみ、比較用のベースラインモデルの使用が報告されており、性能向上の主張の妥当性および再現可能性に懸念が生じる。
- 損失関数としては、交差エントロピーと平均二乗誤差が最も頻繁に使用されたが、不均衡な欠陥予測タスクではファーカス損失が登場した。
- 適切なバリデーション戦略の使用とモデル一般化性能の向上の間に強い相関が見られたことから、研究間でのメソドロジーの厳密さのばらつきが顕著であることが示された。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。