Up | 「埋め込み (embedding)」 | 作成: 2025-05-28 更新: 2025-05-30 |
その「埋め込み」の意味は? 「埋め込み」の近くに来ることばに,「ベクトル・行列」 「表」 「テンソル」 がある。 また,ベクトルの布置として「意味空間」が語られる。 この場合,「埋め込み」は,つぎがこれの自然な意味にになる: テンソル空間とは何か? Transformer で謂う「テンソル」は,数学のテンソルとは違う。 これは,「座標空間」 だと思えばよい。 点の座標をつくるものは,座標軸である。 要素がn個の1次元表=ベクトルは,n本の座標軸 x_1, x_2, ‥‥, x_n をとることで,点になる。 要素が m × n 個の2次元表=行列は,m × n本の座標軸 ‥‥‥‥ x_m1, ‥‥ , x_mn 座標軸の次元が,テンソル空間の次元である。 表をテンソル空間の点にするというのは,ふつうやることではない。 どんな場合にこれをしようとするか? Transformer のトークンベクトルの場合が,それである: 「処理において,明解で効率的な数学的手法が使える」 Transformer の場合,「埋め込み=テンソル空間への埋め込み」の意味では,「埋め込み行列」というものは無い。 扱う行列は,種類も数も少なく,そしてテンソル空間で構造を考えるというものでもないからである。 「埋め込み」には,別の文脈がある。 それは, 「入力層 → 埋め込み層 → 処理層」 旧い語用だが,Transformer でもこれが継承されている。 この語用の継承に一役も二役も買っているのが,基本ツールになっている PyTorch の nn.Embedding。 実際,これを使えば,そのネーミングにより皆「埋め込み」ということになる。 「埋め込み」の2つの意味は,「トークンベクトル」のろころで錯交する。 「トークンベクトル」は,「トークンの処理形式」として語られ,また「ベクトル空間の点」として語られる。 重み行列は,「埋め込み=埋め込み層への埋め込み」の意味で,「埋め込み行列」になる。 この埋め込みは,「テンソル空間への埋め込み」の意味はないが,テンソル表現ではある。 このテンソル表現は,ざっくり言えば,PyTorch を便利なツールとして使うため,ということになる。 ── nn.Embedding は,表がテンソルであることを求める。 |