[論文レビュー] Poly-encoders: Transformer Architectures and Pre-training Strategies for Fast and Accurate Multi-sentence Scoring
Poly-encoderを導入する。Bi-encodersのキャッシュ利点とCross-encodersの豊かな相互作用を組み合わせた transformer アーキテクチャで、マルチ文脈スコアリングタスクの推論を高速化し精度を向上させる。特に Reddit に見られるタスク様データでの事前学習が、対話と IR データセット全体で最先端の結果をもたらすことを示す。
The use of deep pre-trained bidirectional transformers has led to remarkable progress in a number of applications (Devlin et al., 2018). For tasks that make pairwise comparisons between sequences, matching a given input with a corresponding label, two approaches are common: Cross-encoders performing full self-attention over the pair and Bi-encoders encoding the pair separately. The former often performs better, but is too slow for practical use. In this work, we develop a new transformer architecture, the Poly-encoder, that learns global rather than token level self-attention features. We perform a detailed comparison of all three approaches, including what pre-training and fine-tuning strategies work best. We show our models achieve state-of-the-art results on three existing tasks; that Poly-encoders are faster than Cross-encoders and more accurate than Bi-encoders; and that the best results are obtained by pre-training on large datasets similar to the downstream tasks.
研究の動機と目的
- Candidate retrieval タスクにおける精度と速度のバランスを取り、マルチ文脈スコアリングを進展させる。
- Bi-encoder、Cross-encoder、および提案する Poly-encoder アーキテクチャを、さまざまな事前学習戦略の下で比較する。
- タスク関連の事前学習データが下流パフォーマンスに及ぼす影響を示す。
- リアルタイムシステムのためのスケーラビリティと実運用推論速度のトレードオフを示す。
提案手法
- 3 つのアーキテクチャを提案する。Bi-encoder(文脈エンコードとラベルエンコードを分離)、Cross-encoder(文脈とラベルを全自己注意で結合的にエンコード)、Poly-encoder(文脈が学習済みのグローバル文脈コードの小さな集合に対してアテンションを持ち、ラベルは別個にエンコード) 。
- 事前学習レジームを開発する。Wikipedia/Toronto Books での BERT 風事前学習、Reddit によるダイアログ関連のスクラッチからの事前学習(MLM と next-sentence/utterance prediction タスクを用いる)。
- 各アーキテクチャを four tasks(ConvAI2, DSTC7, Ubuntu V2, Wikipedia Article Search)でファインチューニングし、タスクに適したネガティブサンプルと評価指標を使用する。
- 性能を最大化するために、バッチサイズ、バッチあたりのネガティブサンプル、ファインチューニングするトランスフォーマ層を含むハイパーパラメータを調査する。
- Bi-, Poly-, Cross-encoders の学習効率を比較し、CPU/GPU での推論速度を評価する。
- Poly-encoder における文脈コードの数(m)の異なる影響を、性能と推論速度の両面から評価する。
実験結果
リサーチクエスチョン
- RQ1Poly-encoder はマルチ文脈スコアリングタスクにおいて Bi-encoder および Cross-encoder と比べて精度と速度の良好なバランスを達成できるか。
- RQ2Reddit と Wikipedia/Toronto Books の異なる事前学習データが、対話と IR データセット全体の下流パフォーマンスにどのように影響するか。
- RQ3Poly-encoder における文脈コードの数(m)が検索精度と推論時間に与える影響はどの程度か。
- RQ4リアルタイムシステムへのデプロイメントにおける実用的な学習・推論時間のトレードオフはどうなるか。
主な発見
- Poly-encoder は評価されたタスク全てで Bi-encoder より一貫して精度が高い。
- Poly-encoder は Cross-encoder よりはるかに高速な推論を実現し、リアルタイムのリトリーバルや対話システムに適している。
- Reddit(ダイアログに類似したデータ)での事前学習は、Poly-encoder または Bi-encoder と組み合わせた場合、3 つの対話タスクと IR タスク全てで最先端の結果をもたらす。
- 文脈コードの数を多く用いる(m が大きい)ほど Poly-encoder の性能は一般に向上するが、速度とのトレードオフは m が大きくなるにつれて逓減する。
- 推論時間の観点では Cross-encoder は桁違いに遅く、Poly-encoder は性能と速度の有利なトレードオフを提供し、生産導入に適している。
- Reddit での事前学習は、 tested されたすべてのアーキテクチャとタスクで BERT ベースの初期化を上回る改善をもたらす。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。