[論文レビュー] DeepTriage: Exploring the Effectiveness of Deep Learning for Bug Triaging
本稿では、バグレポートのタイトルと本文から文脈的・意味的表現を学習するための、アテンションを備えた深層双方向RNN(DBRNN-A)であるDeepTriageを提案する。従来のbag-of-words(BOW)モデルを上回る性能を発揮し、未ラベルのバグレポートを活用し、トランスファー学習を可能にすることで、3つのオープンソースデータセットにおいて高いランク10平均正答率を達成した。コードとデータは再現性を確保するため公開されている。
For a given software bug report, identifying an appropriate developer who could potentially fix the bug is the primary task of a bug triaging process. A bug title (summary) and a detailed description is present in most of the bug tracking systems. Automatic bug triaging algorithm can be formulated as a classification problem, with the bug title and description as the input, mapping it to one of the available developers (classes). The major challenge is that the bug description usually contains a combination of free unstructured text, code snippets, and stack trace making the input data noisy. The existing bag-of-words (BOW) feature models do not consider the syntactical and sequential word information available in the unstructured text. We propose a novel bug report representation algorithm using an attention based deep bidirectional recurrent neural network (DBRNN-A) model that learns a syntactic and semantic feature from long word sequences in an unsupervised manner. Instead of BOW features, the DBRNN-A based bug representation is then used for training the classifier. Using an attention mechanism enables the model to learn the context representation over a long word sequence, as in a bug report. To provide a large amount of data to learn the feature learning model, the unfixed bug reports (~70% bugs in an open source bug tracking system) are leveraged, which were completely ignored in the previous studies. Another contribution is to make this research reproducible by making the source code available and creating a public benchmark dataset of bug reports from three open source bug tracking system: Google Chromium (383,104 bug reports), Mozilla Core (314,388 bug reports), and Mozilla Firefox (162,307 bug reports). Experimentally we compare our approach with BOW model and machine learning approaches and observe that DBRNN-A provides a higher rank-10 average accuracy.
研究の動機と目的
- 自動トライアージングにおいて、テキスト、コード、スタックトレースを含むノイズが多く、非構造的なバグレポートデータの取り扱いの課題に対処すること。
- 語順や意味的関係を無視するbag-of-words(BOW)モデルの限界を克服すること。
- バグレポート内の長距離の句法学的・意味的依存関係を捉えることができる、ディープラーニングベースの表現モデルの開発。
- 未修復(未ラベル)のバグレポートを追加の学習データとして活用し、自己教師学習による事前学習を行うことで、トライアージング性能の向上。
- トライアージング研究の再現性を向上させるために、公開ベンチマークデータセットとソースコードを提供すること。
提案手法
- バグレポート全体(タイトル+本文)を統一的で文脈に配慮したベクトル表現に変換するため、アテンション機構を備えた深層双方向再帰ニューラルネットワーク(DBRNN)を採用する。
- ラベルが不要なため、未修復バグレポートの大規模コーパス(データの約70%を占める)を用いて自己教師学習による事前学習を行い、堅牢で汎用性の高い特徴を学習する。
- 従来のBOWやTF-IDF特徴量の代わりに、DBRNN-Aで学習された表現を下流分類器の入力として使用する。
- 学習済み表現を用いて、ソフトマックス、SVM、ナイーブベイズ、コサイン類似度の複数の分類器を訓練・評価し、性能を評価する。
- Google Chromiumで事前学習したDBRNN-Aモデルを、Mozilla CoreおよびFirefoxデータセットのバグトライアージングに適応させるために微調整することで、トランスファー学習を実施する。
- Google Chromium、Mozilla Core、Mozilla Firefoxの3つのオープンソースプロジェクトから構成される公開ベンチマークデータセットを構築し、標準化された前処理および評価プロトコルを整備する。
実験結果
リサーチクエスチョン
- RQ1アテンションを備えた深層双方向RNN(DBRNN-A)は、従来のbag-of-words(BOW)モデルと比較して、より効果的かつ堅牢なバグレポート表現を学習できるか?
- RQ2未ラベル(未修復)のバグレポートを活用することで、自己教師学習による事前学習が、トライアージングモデルの性能を顕著に向上させるか?
- RQ3提案されたDBRNN-A表現は、トランスファー学習を通じて、異なるソフトウェアプロジェクト間でどの程度一般化可能か?
- RQ4トライアージングにおいて、バグのタイトルのみを用いるのと、本文を含めた完全な記述を用いるのとでは、性能にどのような差が生じるか?
- RQ5提案された特徴表現は、トライアージングを越えて、他のソフトウェア保守タスク(例:バグの分類、バグの予測)に対しても効果的に再利用可能か?
主な発見
- ソフトマックス分類器を用いたDBRNN-Aモデルは、Chromium、Mozilla Core、Firefoxの3つのデータセットすべてにおいて、すべてのベースラインモデル(BOW、SVM、ナイーブベイズ、コサイン類似度)を上回るランク10平均正答率を達成した。
- バグのタイトルのみを用いたトライアージングでは、性能が著しく低下し、入力に本文を含めることの重要性が顕著に示された。
- Chromiumデータセットで事前学習したモデルは、Mozillaデータセットにおいても競争力あるトライアージング正答率を達成しており、強力なトランスファー学習能力を示した。
- 未修復バグレポートを自己教師学習の事前学習に活用することで、分類性能が顕著に向上した。これらのデータは、先行研究では無視されていた。
- tf-idf、n-gram、アンサンブル手法を用いた既存の最先端手法を上回り、一部のケースではランク10正答率が最大10ポイント向上した。
- ベンチマークデータセット、コード、評価プロトコルの公開により、完全な再現性が確保され、今後の自動ソフトウェア保守分野の研究を促進できる。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。