的嵌入层是如何实现的看完你就明白了
作者:__
编译:ronghuaiyang
导读: 非常简单直白的语言解释了BERT中的嵌入层的组成以及实现的方式。
介绍
在本文中,我将解释BERT中嵌入层的实现细节,即 token 嵌入、Segment 嵌入和 Position 嵌入。
简介
这是一张来自论文的图,它恰当地描述了 BERT 中每一个嵌入层的功能:
与大多数旨在解决 nlp 相关任务的深度学习模型一样,BERT 将每个输入 token(输入文本中的单词)通过 token 嵌入层传递,以便将每个 token 转换为向量表示。与其他深度学习模型不同,BERT 有额外的嵌入层,以 Segment 嵌入和 Position 嵌入的形式。这些附加的嵌入层的原因会在本文的最后变得清楚。
Token 嵌入
目的
如前一节所述,token 嵌入层的作用是将单词转换为固定维的向量表示形式。在 BERT 的例子中,每个单词都表示为一个 768 维的向量。
实现
假设输入文本是“I like strawberries”。下图描述了 token 嵌入层的作用:
在将输入文本传递到 token 嵌入层之前,首先对其进行 token 化。另外,在 tokens 的开始([CLS])和结束([SEP])处添加额外的 tokens。这些 tokens 的目的是作为分类任务的输入表示,并分别分隔一对输入文本(更多细节将在下一节中介绍)。
tokens 化是使用一种叫做 WordPiece token 化的方法来完成的。这是一种数据驱动的 token 化方法,旨在实现词汇量和非词汇量之间的平衡。这就是“strawberries”被分成“straw”和“berries”的方式。对这种方法的详细描述超出了本文的范围。感兴趣的读者可以参考Wu et al. (2016)和Schuster & Nakajima (2012)中的第 4.1 节。单词 token 化的使用使得 BERT 只能在其词汇表中存储 30522 个“词”,而且在对英语文本进行 token 化时,很少会遇到词汇表以外的单词。
token 嵌入层将每个 wordpiece token 转换为 768 维向量表示形式。这将使得我们的 6 个输入 token 被转换成一个形状为(6,768)的矩阵,或者一个形状为(1,6,768)的张量,如果我们包括批处理维度的话。
Segment 嵌入
目的
BERT 能够解决包含文本分类的 NLP 任务。这类问题的一个例子是对两个文本在语义上是否相似进行分类。这对输入文本被简单地连接并输入到模型中。那么 BERT 是如何区分输入的呢?答案是 Segment 嵌入。
实现
假设我们的输入文本对是(“I like cats”, “I like dogs”)。下面是 Segment 嵌入如何帮助 BERT 区分这个输入对中的 tokens :
Segment 嵌入层只有两个向量表示。第一个向量(索引 0)分配给属于输入 1 的所有 tokens,而最后一个向量(索引 1)分配给属于输入 2 的所有 tokens。如果一个输入只有一个输入语句,那么它的 Segment 嵌入就是对应于 Segment 嵌入表的索引为 0 的向量。
Position 嵌入
目的
BERT 由一堆 Transformers 组成的,广义地说,Transformers 不编码其输入的顺序特征。在这个博客文章: https://medium.com/@ init/how-self-attention-with-relatedposition-representations-works-28173b8c245a 的动机部分更详细地解释了我的意思。总之,有 Position 嵌入将允许 BERT 理解给定的输入文本,比如:
I think, therefore I am
第一个“I”不应该与第二个“I”具有相同的向量表示。
实现
BERT 被设计用来处理长度为 512 的输入序列。作者通过让 BERT 学习每个位置的向量表示来包含输入序列的顺序特征。这意味着 P
- 原文作者:知识铺
- 原文链接:https://index.zshipu.com/geek/post/%E4%BA%92%E8%81%94%E7%BD%91/%E7%9A%84%E5%B5%8C%E5%85%A5%E5%B1%82%E6%98%AF%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E7%9A%84%E7%9C%8B%E5%AE%8C%E4%BD%A0%E5%B0%B1%E6%98%8E%E7%99%BD%E4%BA%86/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。
- 免责声明:本页面内容均来源于站内编辑发布,部分信息来源互联网,并不意味着本站赞同其观点或者证实其内容的真实性,如涉及版权等问题,请立即联系客服进行更改或删除,保证您的合法权益。转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。也可以邮件至 sblig@126.com