シュッと ColBERT のメモをする

ちゃっす(/・ω・)/


ColBERT っちゅーのが気になったのでシュッと調べてメモしておくのである(/・ω・)/


こちらですな


恐らくメイビー Contextualized Late Interaction over BERT から来ていると思われ(/・ω・)/



ふにゃっとした内容としてはベクトル検索で得られる結果をよりいい感じに、かつ、効率よくするやーつですな( ・ω・)



昨今よく見る RAG (Retrieval Augmented Generation) とかでベクトル検索は使われたりしておりますですな(/・ω・)/



なんかまぁ "2000 年に放送された日本のアニメ" みたいなのが検索クエリだとしまして



シュシュットボール
- あらすじほげほげ 放送年 2000 年 日本
シュッとした刃
- あらすじほげほげ 放送年 2001 年 日本
シュシュっと呪術廻戦
- あらすじほげほげ  放送年 2002 年
シュンプソンズ 
- あらすじほげほげ 放送年 2000 年 アメリカ
シュッキーマウス 
- あらすじほげほげ 放送年 2001 年 アメリカ


みたいなデータがあるとすると


"2000 年に放送された日本のアニメ" に一番近そうなシュシュットボールがとれるといいなぁってな感じ(/・ω・)/



But しかし



保存されているデータが Wikipedia みたいな感じでぼちぼちの文章量のドキュメントが大量にあったりする場合、あんまり関係なくても 2000 年、日本、アニメ、、、みたいな意味を持ってはいるものの欲しい情報ではないものが選ばれたりするわけですな( ・ω・)



これは検索クエリと検索対象のドキュメントを単一のベクトルとして表現するとなりやすいのである(/・ω・)/



ので、ColBERT ちゃんは検索クエリと検索対象のドキュメントをトークン単位でベクトル表現とすることで、より精度の高い検索をしたいでござるっちゅー感じ(/・ω・)/



しかしながら細かい単位で検索するということはそれだけ計算コストがかかるということであーる(/・ω・)/



その辺は各トークンのベクトルをセントロイド(クラスター中心)とそのセントロイドからの残差によって表現したり~残差を量子化したり~で工夫している模様(/・ω・)/


詳細は論文とか読んでね☆


というわけでシュッとメモったのでおしまい。




この記事が気に入ったらサポートをしてみませんか?