什么是token,什么叫词嵌入
token又叫词元,即 句子被分成的一个个单词碎片。
句子:"I don't like apples."
- •
按单词分词: 可能会被切成
["I", "don't", "like", "apples", "."]
这5个token。
按子词分词(更常见): 可能会被切成 ["I", "do", "n't", "like", "apple", "s", "."]
这7个token。这里的 "n't"
是一个表示否定的常见子词单元。
词嵌入,则是对token的编码,变成一个个向量值。 它使得 词之间有所关联性,让计算机能够知道词之间的远近关系,如:
经过词嵌入模型训练后:
- •
“国王”
这个词会表示成一个向量,比如[0.8, -0.2, 0.4, ..., 0.6]
(一个几百维的数组) - •
“王后”
会表示成[0.7, -0.1, 0.5, ..., 0.5]
- •
“男人”
会表示成[0.6, 0.9, -0.3, ..., 0.1]
- •
“女人”
会表示成[0.5, 0.8, -0.2, ..., 0.2]
这些值是怎么得到的呢?
是通过查询词嵌入表得到的。 词嵌入表就是所有词组词嵌入的向量组成的 矩阵,每一列是一个token变成的词向量。他是开始有个随机初始化,然后通过模型训练得到,然后最后得到能够很好预测的词嵌入表。