【问题标题】:How are the TokenEmbeddings in BERT created?BERT 中的 TokenEmbeddings 是如何创建的?
【发布时间】:2020-01-17 12:51:22
【问题描述】:

paper describing BERT 中有一段关于 WordPiece Embeddings 的内容。

我们使用 WordPiece 嵌入(Wu 等人, 2016) 具有 30,000 个标记词汇表。首先 每个序列的标记总是一个特殊的分类 令牌([CLS])。最终隐藏状态 与此令牌对应的用作聚合 用于分类的序列表示 任务。句子对被打包成一个 单序列。我们区分句子 两种方式。首先,我们用一个特殊的 令牌([SEP])。其次,我们添加了一个学习嵌入 到每个标记,表明它是否属于 到句子 A 或句子 B。如图 1 所示, 我们将输入嵌入表示为 E,最终隐藏 特殊 [CLS] 标记的向量为 C 2 RH, 以及第 i 个输入标记的最终隐藏向量 作为Ti 2 RH。 对于给定的令牌,其输入表示为 通过对相应的令牌求和构造, 段和位置嵌入。可视化 这种结构如图 2 所示。

据我了解,WordPiece 将单词拆分为像 #I #like #swim #ing 这样的单词片段,但它不会生成嵌入。但是我在论文和其他来源中没有找到任何这些 Token Embeddings 是如何生成的。他们是否在实际预训练之前进行了预训练?如何?或者它们是随机初始化的?

【问题讨论】:

    标签: machine-learning nlp word-embedding


    【解决方案1】:

    wordpieces 是分开训练的,所以最常见的词保持在一起,而不太常见的词最终被分解为字符。

    嵌入与 BERT 的其余部分联合训练。反向传播是通过所有层完成的,直到嵌入更新,就像网络中的任何其他参数一样。

    请注意,只有训练批次中实际存在的令牌嵌入得到更新,其余的保持不变。这也是为什么您需要拥有相对较小的词块词汇表的原因,以便所有嵌入在训练期间得到足够频繁的更新。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-06-12
      • 2020-01-22
      • 1970-01-01
      • 2023-01-30
      • 2021-12-16
      • 2015-07-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多