Transformer核心概念II-Embedding

Embedding概念的提出并不是源自Transformer,而是来源于深度学习,但是Transformer中的Embedding却是区别于深度学习中的Embedding的,而且Transformer的Embedding成为了该模型中一个核心之一。

1. Transformer中Embedding的概念

简单概括Transformer中Embedding概念包含2层含义,一是深度学习中的Embedding,二是Position Encoding,如下图所示:
在这里插入图片描述

Embedding in Deep Learning

Embedding in Deep Learning中的作用主要可以概括为以下几项:

  1. 将原来离散的向量转换为连续型(近似连续)的向量:将孤立的、离散的符号(如单词ID、类别ID)转换为连续的数值向量。计算机(神经网络)非常擅长处理连续数值。
  2. 将原来高维、稀疏的向量转为低维、密集的向量:相比One-Hot编码(词汇表有5万个词,向量就是5万维),Embedding向量通常是50维、100维、300维,极大地降低了计算复杂度;One-Hot向量是稀疏的(绝大部分是0,只有一个1),而Embedding向量是密集的,每一个维度都包含有意义的信息。
  3. 向量转化的过程可学习:向量Embedding的过程实际就是张量乘法的过程,而向量所乘的转换张量并不是静态的,而是通过训练的过程,按照某种最优标准一步一步获得的,也就是转换过程是一个动态过程。
    一般来讲,进行Embedding得到张量的维数用dmodel来表示。
    无论是Tensorflow还是Pytorch都提供了Embedding的API,下面给出一个Tensorflow实现Embedding的实例:
import tensorflow as tf

vocab_size = 10000  # 词汇表的大小
embedding_dim = 16  # 每个单词向量的维度
 
embedding_layer = tf.keras.layers.Embedding(input_dim=vocab_size, output_dim=embedding_dim)

# 假设我们有以下批量的整数索引
indices = tf.constant([[1, 2, 3], [4, 5, 6]]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值