Slide 1

Slide 1 text

Transformerを使った
 テキストベクトル化の基本
 
 
 早野康太


Slide 2

Slide 2 text

自己紹介
 ● 名前
 ○ 早野 康太
 ● お仕事
 ○ 自然言語モデルの改善
 ● 今期アニメ
 ○ ダンジョン飯
 ○ 姫様“拷問”の時間です
 ○ 魔法少女にあこがれて


Slide 3

Slide 3 text

● Attention Is All You Need (Łukasz Kaiser et al., 2017)
 ○ 文章の単語同士の関連度を測る (Attention) 機構を組み込むことで
 自然言語処理モデルの性能が大きく向上
 ○ GPTなどの文章生成モデル
 ■ → TransformerモデルのDecoder部分を利用
 ○ テキストベクトル化用のモデル
 ■ → TransformerモデルのEncoder部分を利用
 Transformerモデル 


Slide 4

Slide 4 text

● A Survey of Transformers 
 (TIANYANG LIN et. al., 2021)
 ○ Transformer派生についてのサーベイ
 ○ 膨大な数のTransformer派生について
 詳細にまとめられている
 ○ もっと詳しく知りたい方は
 こちらを読まれるのをおすすめします
 
 Transformerから他のモデルへの派生


Slide 5

Slide 5 text

Transformerモデルを使ったテキストベクトル化
 ● Transformerモデルは文章をベクトル(数値)に落とし込むことが得意
 ○ ベクトル同士の類似度 (近さ) を測って検索に応用できる
 ○ いったんベクトルに落とし込んでしまえば
 画像処理や音声処理などと文章処理を組み合わせることもできる
 吾輩は猫である
 Transformer
 0.1, 0.3, 0.04, …
 文章(文字列)
 ベクトル
 画像生成 モデル
 類似度
 検索


Slide 6

Slide 6 text

Attentionによる単語のベクトル化
 吾輩
 は
 猫
 である
 。
 吾輩
 は
 猫
 である
 。
 文章を単語単位に分かち書き(トークナイズ) 
 各単語に対応するベクトル 


Slide 7

Slide 7 text

Attentionによる単語のベクトル化
 吾輩
 は
 猫
 である
 。
 吾輩
 は
 猫
 である
 。
 0.1
 0.3
 -0.5
 0.8
 長方形はベクトルだと思ってください 
 文章を単語単位に分かち書き(トークナイズ) 


Slide 8

Slide 8 text

Attentionによる単語のベクトル化
 吾輩
 は
 猫
 である
 。
 吾輩
 は
 猫
 である
 。
 文章を単語単位に分かち書き(トークナイズ) 
 各単語に対応するベクトル 
 単語に対応する新しいベクトル 
 ベクトル同士の内積の値(類似度) 
 ×


Slide 9

Slide 9 text

余談: ベクトル同士の”類似度”の測り方
 近い
 遠い
 ● 内積
 ○ 近い(同じ方向を向いている)ほど大きくなる
 ● コサイン類似度
 ○ 内積を-1 ~ 1に正規化 (要はcosθ )
 内積 = |a||b|cosθ

Slide 10

Slide 10 text

AttentionからTransformerへ
 吾輩
 は
 猫
 である
 。
 Attention
 Attention
 Transformer
 吾輩
 は
 猫
 である
 。
 BERTやGPTをはじめとしたTransformer系列のモデルは 
 Attentionを繰り返して文章をベクトルの連なりに変換している 


Slide 11

Slide 11 text

AttentionからTransformerへ
 吾輩
 は
 猫
 である
 。
 Attention
 Attention
 Transformer
 吾輩
 は
 猫
 である
 。
 BERTやGPTをはじめとしたTransformer系列のモデルは 
 Attentionを繰り返して文章をベクトルの連なりに変換している 
 一番はじめのベクトルは 
 ランダム初期化
 (学習の中で最適化されていく) 
 


Slide 12

Slide 12 text

文章のベクトル化
 吾輩
 は
 猫
 である
 。
 Attention
 Attention
 Transformer
 吾輩
 は
 猫
 である
 。
 [CLS]
 [CLS]
 文頭に特別な トークンを追加
 ● CLS Pooling
 ○ 文頭の特別なトークンのベクトルを文章ベクトルとして使う 
 ● Average Pooling
 ○ 全トークンの値を平均して文章ベクトルとして使う 


Slide 13

Slide 13 text

ベクトル化に特化させるためのfine-tuning
 Query:
 吾輩は猫であるの作者は?
 Negative Passage:
 『人間失格』(にんげんしっかく)は、太宰 治による中編小説。
 ベクトル化&類似度計算 
 ポジティブ類似度
 ネガティブ類似度
 Positive Passage:
 『吾輩は猫である』(わがはいはねこであ る)は、夏目漱石の長編小説であり、処女 小説である。
 ● ポジティブ類似度が高く、ネガティブ類似度が低くなるように 
 ロス関数を設定して学習する
 ○ ロス = - ポジティブ / (ポジティブ + ネガティブ) 


Slide 14

Slide 14 text

ベクトル化のベンチマーク
 ● MTEB: Massive Text Embedding Benchmark
 ○ テキスト埋め込みモデルのための大規模ベンチマーク
 ○ 8つのタスクにわたり56のデータセットが含まれる
 
 


Slide 15

Slide 15 text

ベンチマーク上位のモデルたち
 ● MTEB Leaderboard - a Hugging Face Space by mteb
 ○ AnglE-optimized Text Embeddings
 ○ Cohere/Cohere-embed-english-v3.0 · Hugging Face
 ○ BAAI/bge-large-en-v1.5 · Hugging Face
 ○ intfloat/e5-large-v2 · Hugging Face
 
 


Slide 16

Slide 16 text

RAG (Retrieval Augmented Generation)
 質問 + 選択肢
 Wikipedia passages
 dump
 Wikipedia embeddings
 
 あらかじめベクトル化 
 ベクトル化
 embedding
 ベクトル類似度検索 
 関連する文章
 (Context)
 LLMへのインプット
 Wikipedia記事から
 検索してContextを取得
 ベクトル検索用に調整された言語モデルを使う 
 (質問に回答するモデルとは別物) 


Slide 17

Slide 17 text

Stable Diffusion (画像生成モデルへの応用)
 
 
 raw pixel value
 VAE
 latent
 noisy latent
 + noise
 input text
 Text
 Encoder
 embedding 
 UNET
 prediction
 loss
 velocity
 生成したい画像についての文章を 
 ベクトル化して生成モデルに与える 


Slide 18

Slide 18 text

音楽生成モデル
 
 
 ● Suno AI
 ○ 自然言語で歌詞や曲調を指定すると
 その通りに音楽を生成してくれる
 ○ 具体的なモデルは公開されていないが
 内部では文章→ベクトルの変換を通して
 文章情報を生成モデルに与えている......はず!
 
 


Slide 19

Slide 19 text

まとめ
 
 ● Attention機構を利用したTransformerによって
 高品質なテキストベクトル化が実現可能になった
 ● ベクトル化のクオリティが向上することで
 検索だけでなく文章→画像や文章→音楽などマルチモーダルなモデルの
 クオリティも格段に向上している