pytorchのnn.Embeddingに書いてある説明(以下の引用)がわからなかったので調べた
lookup table って何?って感じ
A simple lookup table that stores embeddings of a fixed dictionary and size. This module is often used to store word embeddings and retrieve them using indices. The input to the module is a list of indices, and the output is the corresponding word embeddings.
一番分かりやすかった記事
https://medium.com/@hunter-j-phillips/the-embedding-layer-27d9c980d124
訓練
(seq_length, vocab_size)のワンホットベクトルに対して、(vocab_size, dim) のパラメータを用意することで分散表現に変換する。
訓練時は普通にbackpropするので、毎回行列の積を計算する。
推論
vocab_size 個だけ存在する全てのトークンについて、パラメータ行列の積を計算することで得られる分散表現を保存しておくことで、トークンが入力されたときに行列の積を計算せずに済む。これがlookup tableのことです。