Dense Passage Retrieval for Open-Domain Question Answering

読んだ論文
https://arxiv.org/pdf/2004.04906.pdf

目次

どんなもの?

  • 従来のOpen-domain question answeringはBM25などの疎ベクトルを用いていた。
  • 今回は密ベクトルを用いるretrieverを提案した。

どんな課題や問題点を解決しようとしたの?

  • TF-IDFやBM25では意味を捉えないため文脈を考慮した回答はできない。
  • 密ベクトルを用いる手法としてORQAがあるが、2つの弱点がある。
    • ICTの事前学習は計算量が多く、文書の一文を質問文に代替するが、これは良い代替ではない。
    • コンテキストエンコーダ(ORQA論文のBERT_B)をファインチューニングしていない。
  • 本論文では、追加の事前学習を必要としない密ベクトルを用いた手法を提案した。

技術の手法は?

学習データ

  • \({<q_i, p_i^+, p_{i1}^-, p_{in}^->}_{i=1}^m\)
    • \(q_i\): クエリ
    • \(p_i^+\): 正例パッセージ
      • ドキュメント\(D={d_1, d_2, …, d_D}\)を分割した全体がコーパス、要素がパッセージ
        • \(C={p_1, p_2, …, p_M}\)
    • \(p_{ik}^-\): 負例パッセージ
    • \(n\): 1つの学習データあたりに用いる負例パッセージの数
    • \(m\): 学習データの数
  • 負例パッセージの抽出方法(負例パッセージも高品質なエンコーダを手に入れる重要な要素である。)
    • ランダム
      • コーパスからランダムに抽出
    • BM25
      • 答えは含まないがBM25で高いスコアを出したパッセージを抽出
    • Gold
      • 他のクエリとペアになった正例パッセージを抽出
        • In-batch negativesという手法で抽出できる
          • B個のクエリからなるミニバッチをエンコードした行列\(P: (B×d)\)
          • ミニバッチのクエリに関連するパッセージをエンコードした行列\(Q: (B×d)\)
          • \(PQ^T: (B×B)行列\): 行がクエリ、列がパッセージである内積を表す行列
            • 対角成分が正例、それ以外が負例

特徴抽出

  • パッセージ用エンコーダ\(E_P\)(論文ではBERT base-uncased)
  • クエリ用エンコーダ\(E_Q\)(論文ではBERT base-uncased)

類似関数

  • 内積\(sim(q, p)=E_Q(q)^TE_P(p)\)

損失関数

  • 対数尤度\(-log{\frac{e^{sim(q_i, p_i^+)}}{e^{sim(q_i, p_i^+)}+\sum_{j=1}^{n} e^{sim(q_i, p_{ij}^-)}}}\)

目的関数

  • 損失関数の最小化
  • 学習対象は\(E_P, E_Q\)

その他

  • 推論時には、エンコードされたパッセージはfaissにindexingしておく。

どんな実験を行った?

用いたパッセージ

  • 2018年12月20日の英語版wikipediaのダンプ
    • DrQAで公開されている前処理コードを使ってダンプの記事からクリーンなテキストを抽出
    • (Wang et al., 2019)に従い、各記事を100語のブロックに分割し、21,015,324個のパッセージを取得
    • それぞれのパッセージの先頭には記事のタイトルと[SEP]が付与されている。

用いたデータセット

  • Natural Questions (NQ)
  • TriviaQA
  • WebQuestions (WQ)
  • CuratedTREC (TREC)
  • SQuAD v1.1
    • TREC, WQ, TriviaQA6には質問と回答のペアが用意されていないため、BM25から回答を含む最高ランクのパッセージを正解パッセージとした。top-100に回答を含むパッセージがない場合はその質問は用いない。
    • SQuAD, NQはパッセージは今回の分割単位と異なるため置換する、置換できない場合その質問は用いない。

retrieverの検証

  • 設定パラメータ
    • バッチサイズ: 128
    • エポック
      • NQ, TriviaQA, SQuAD: 最大40
      • TREC, WQ: 最大100
    • 最適化手法: Adam(lr=10^-5), warm-up, ドロップアウト率0.1

end to end QAの検証

  • readerについて
    • 特徴抽出
      • DPRで抽出したtop-kのパッセージをBERTでエンコード
        • \(P_i \in R^{L×h} \): Lはパッセージの最大長, hは隠れ層の次元数
    • モデル
      • パッセージの正解確率 \(P_{selected}(i)=softmax(\hat{P}^Tw_{selected})_i \)
      • パッセージ内のスパン開始インデックスの正解確率 \(P_{start,i}(s)=softmax(P_iw_{start})_s \)
      • パッセージ内のスパン終了インデックスの正解確率 \(P_{end,i}(t)=softmax(P_iw_{end})_t \)
        • \(\hat{P}=(P_1^{[CLS]}, P_2^{[CLS]}, …, P_k^{[CLS]}) \in P^{h×k}\)
        • \(w_{selected}, w_{start}, w_{end} \in R^h\)はreaderが学習する重みベクトル
      • \(P_{start,i}(s)×P_{end,i}(t)\)が最大となるs,tがスパン区間
    • 目的関数
      • 正解スパンの対数尤度、正解パッセージの対数尤度の最大化
  • 設定パラメータ
    • \(m^~=24\): retrieverから渡されたtop-100のパッセージのうち、24件を負例パッセージとしてサンプリング
    • バッチサイズ
      • NQ, TriviaQA, SQuAD: 16
      • TREC, WQ: 4
  • 32GBのGPUを用いた

どんな結果が得られたの?

retrieverの検証

  • top-20のpassageの検索精度においてBM25のスコアを9%-19%上回った。
  • NQデータセットでは、学習データ1000件時点でBM25を上回った。
  • 負例数7で学習した場合、負例パッセージの抽出方法は、top-k\((k \geq 20)\)では影響しなかった。
    • GoldでIn-batch negativesは用いていない。
    • GoldでIn-batch negativesを用いるとスコアは向上した。
      • これらの違いは、負例パッセージが学習データセット全体から得られるかバッチ内から得られるかである。
      • バッチ内にある負例を用いることは省メモリであり、より多くの学習データを用いることができるため性能向上する。省メモリである分、バッチ数が増やせる。
  • BM25で回答を含まない最高ランクの負例パッセージ(hard negative)を1つ負例に追加するとスコアが向上した。
    • 2つ以上追加してもそれ以上は向上しなかった。
  • 類似関数はL2≒内積>cosだった。
  • 損失関数にtriplet lossを用いていも大きな違いはなかった。
  • NQで学習し、WQ、CuratedTRECで評価したらtop-20で3-5ポイントしか下がらなかった。
  • 処理速度
    • Intel Xeon CPU E5-2698 v4 @ 2.20GHzと512GBメモリを搭載したサーバ
    • faiss(in memory)使用
    • 検索速度
      • top-100/問, 995問/秒を処理した。
      • Lucene BM25(ファイルインデックス)では23.7問/秒
    • インデックス速度
      • パッセージ数2,100万
      • embeddingに8.8時間/8GPU
      • faissのインデックス構築に8.5時間
      • Lucene BM25では30分

end to end QAの検証

  • retrieverの精度が高いほど、最終スコアも高くなる。
  • 小規模なデータセットは他のデータセットと組み合わせて用いると精度が上がる。
  • 大規模なデータセットは他のデータセットと組み合わせても精度はあまり変わらない。
  • 5つのデータセットのうち、4つで最新の結果を上回った。

関連研究は?

よかったらシェアしてね!

この記事を書いた人

自然言語処理と推薦システムに興味があります。

コメント

コメント一覧 (13件)

目次
閉じる