Slide 1

Slide 1 text

COIL: Revisit Exact Lexical Match in Information Retrieval with Contextualized Inverted List Authoe: Luyu Gao, Zhuyun Dai, Jamie Callan 紹介者: 東工大D2 飯田 大貴 断りのない限り本スライドの図は当該論文からの引用です

Slide 2

Slide 2 text

論文概要 2 n 転置Indexにおいて、indexする値を、各文脈化ベクトルに することを提案 n 合わせて、その場合のスコアリング方法を提案 n 近年、教師ありの検索で台頭している、クエリと文書のベク トル表現による検索を上回る性能 n 検索にかかる時間も実用的であることを示した

Slide 3

Slide 3 text

背景 3 n 古典的な検索アルゴリズム(BM25等)は、転置indexを利用する ため、単語の完全一致を必要とする n そのため、単語の不一致(vocabulary mismatch)や意味の不一致(semantic mismatching)、課題とされている l 単語の不一致: 同じ概念が違う言葉で表現される(e.g. cat vs kitty) l 意味の不一致: 同じ言葉だが、違う意味を持つ(e.g. bank)

Slide 4

Slide 4 text

BERTの活用 4 n 近年、BERTを利用することで解決してきた

Slide 5

Slide 5 text

問い・提案 5 n 完全一致したtokenの文脈化された表現を使えば、転置indexの高速化 のメリットを享受しつつ、意味の一致を実現できるのではないか? →COIL: COntextualized Inverted Listを提案 Coil-tok Coil-full

Slide 6

Slide 6 text

スコアリング 6 n 𝑠!"# (𝑞, 𝑑): Coil-tokのスコア。完全一致したtokenの内、内積が最大のもの。 l 𝑠!"# 𝑞, 𝑑 = ∑$!∈$∩' max '"($! (𝒗) $* 𝒗+ ') n 𝑠$%&& (𝑞, 𝑑): Coil-fullのスコア。𝑠!"# (𝑞, 𝑑)とCLS-token由来のベクトルの内積を足したもの。 l 𝑠,-.. 𝑞, 𝑑 = 𝑠!"# 𝑞, 𝑑 + 𝒗/.0 $ * 𝒗/.0 ' n 各ベクトルは、線形変換を通じて次元を小さくする l 𝑣) $ = 𝑾!"#𝐿𝑀 𝑞, 𝑖 + 𝒃!"#, 𝑣+ ' = 𝑾!"#𝐿𝑀 𝑞, 𝑖 + 𝒃!"#, 𝑣/.0 $ = 𝑾/.0𝐿𝑀 𝑞, 𝐶𝐿𝑆 + 𝒃/.0 , 𝑣/.0 ' = 𝑾/.0𝐿𝑀 𝑑, 𝐶𝐿𝑆 + 𝒃/.0 𝑞: クエリ, 𝑞!: クエリのi-th token 𝑑: 文書, 𝑑": 文書のj-th token 𝑞 ∩ 𝑑: クエリと文書で一致するtoken 𝒗 ! #: 𝑞! 由来のベクトル, 𝒗" $: 𝑑" 由来のベクトル 𝐿𝑀(𝑞, 𝑖): 𝑞! をBERTでencodesしたベクトル 𝐿𝑀(𝑑, 𝑗): 𝑑" をBERTでencodesしたベクトル

Slide 7

Slide 7 text

トレーニング 7 n 損失関数: 対数尤度 l 𝐿 = − log ;<= 0 $,'# ;<= 0 $,'# >∑$ ;<= 0 $,'$ % l 正例の文書: 𝑑>, 負例の文書: {𝑑@ A, 𝑑B A, … , 𝑑. A, … } n 負例作成方法: in-batch negative + bm25-negative l In-batch negative: batch中の他の正例の文書を負例として扱う l bm25-negative: bm25の検索結果で正例ではないものを負例として扱う n 対象タスク・訓練データ l MSMARCO Passageタスク: MSMARCO Passage l MSMARCO Documentタスク: MSMARCO Document

Slide 8

Slide 8 text

比較手法 8 n Lexical Retriever: 単語一致とそのスコアリングでランキングする l BM25 l DeepCT: BERTを使い単語の重みを学習する方法 l DocT5Query: T5を使い、文書からクエリを生成し、文書拡張を行う方法。ランキングはBM25を 使用 n Dense Retriever: クエリと文書のベクトル表現で検索するもの n ColBERT: 全tokenの文脈化ベクトルを使用するもの n BERT Reranker: BM25のtop1000をBERTでrerankingする方法

Slide 9

Slide 9 text

結果: MSMARCO passage 9 n COIL-tokが既存のLexical Retriever方式の中で最もよい n COIL-tokがDense RetrieverよりMRRやnDCGでよい:

Slide 10

Slide 10 text

結果: MSMARCO passage 10 n COIL-fullはCOIL-tokより性能向上: COIL-tokとDense Retrieverが補完的 n COIL-fullは、ColBERT・BERT rerankerと同等程度の性能 n Rerankingにかかる時間はCOILの方が、 BERT rerankerより速い l COIL: 10ms, BERT reranker: 2700ms

Slide 11

Slide 11 text

結果: MSMARCO document 11 n Document Retrievalも傾向は変わらず

Slide 12

Slide 12 text

次元が精度と速度に与える影響 12 n COIL-fullは、ColBERTより速い。ColBERTは、Approximate Nearest Neighborにて高速 化しているがそれよりも速い n CLSのベクトルの次元を削る(𝑛! = 768から𝑛! = 128)と、大幅に速くなり、Dense よりも速く、良い性能となる n COIL-tokにすると、さらには速くなる。それでもDenseより良い性能 𝑛% : CLSベクトルの次元 𝑛&: tokenベクトルの次元 𝑛% = 0: COIL-tokの場合 COIL-full COIL-tok

Slide 13

Slide 13 text

Case Study 13 n 事例1: Cabinetの判別ができている n 事例2: Pass自体は同義(permission)だが、よりコンテキストに合った 方を優先できている n 事例3: Stopwordであっても判別に役立つ

Slide 14

Slide 14 text

おまけ: tokenベクトルの次元を1にした場合 14 n uniCOIL: COIL-tokのtokenベクトルの次元を1にした場合 l 学習データを通じて、文書とクエリの各単語の重みを決めたものとみなせる n タスクに合わせた単語重みにできるだけでも、かなり良い結果になる n DocT5Queryで語彙を拡張しておくと、Vocabulary mismatchが減り さらに良い Jimmy Lin: A Few Brief Notes on DeepImpact, COIL, and a Conceptual Framework for Information Retrieval Techniquesより DeepImpact: 単語重みを 学習する別の手法

Slide 15

Slide 15 text

まとめと感想 15 n まとめ l 転置indexでContextualized representationを活用する手法を紹介 l 既存手法と遜色ない精度で、検索速度を向上させた n 感想 l Vocabulary mismatchに対応しなくても、性能指標を大幅に上げることができることに驚き l 単語の文脈一致度に合わせてスコアリングできれば、性能が大幅に上がる l タスクに応じて、文書中での重要度を文書・クエリそれぞれだけから決めるだけでもある 程度性能が向上しうる場合がある

Slide 16

Slide 16 text

Appendix 16

Slide 17

Slide 17 text

実験パラメータ 17 n MSMARCO Documentの訓練時は、最初の512tokenを使用する 項目 Value 𝑛": トークンベクトルの次元 32 𝑛!: CLSベクトルの次元 768 optimizer AdamW Training epoch 5 Learning rate 3e-6 Warm-up ratio 0.1 schedular Linear schedular Document truncation Frist 512 tokens Others a Layer Normalization to CLS vector CPU Xeon E5-2630 v3 GPU RTX 2080 ti

Slide 18

Slide 18 text

トレーニングデータ正例数 18 n MSMARCO Passage: 532,761 n MSMARCO Document: 384,597 https://microsoft.github.io/msmarco/TREC-Deep-Learning-2019.htmlより