Embedding 理解
Word Embedding
单词表示最简单的是 one-hot
但是它的缺点是
- 矩阵表示过于稀疏,占用空间
- 对相关的词语无法得知它们的含义是相近的。
Word Embedding 解决了上述两个缺点,一个 Word Embedding 直观的例子如下图所示。
每个维度表示一个特征,当然在实际任务中,每个特征可能并不会像例子中的那么明显,是网络自己学习得来的。
Word Embedding 可视化如下图所示
通过 t-SNE 算法将 300 维的词向量映射到二维,方便观察,可以看到含义相近的词语距离更近。从这里也可以看到词嵌入的直观解释,那就是在一个 300 维的空间,每个单词都被嵌入其中,就像上图三维立方体中的每个点,就代表一个单词。这也是嵌入的由来。
广义 Embedding
在人脸识别领域,一张图片通过卷积网络到一个向量的过程称为编码,这里的 encoding 和 embedding 是一个意思,可以理解为广义的 embedding。
Embedding 在 Pytorch 中实现
import torch
import torch.nn as nn# an Embedding module containing 10 tensors of size 3
embedding = nn.Embedding(10, 3)
# a batch of 2 samples of 4 indices each
input = torch.LongTensor([[1,2,4,5],[4,3,2,9]])
output = embedding(input)
print(output)
tensor([[[ 0.3373, 0.3316, -1.3433],[ 1.3109, -0.3448, -0.4087],[ 1.2792, -1.0822, -0.1846],[-0.8766, 0.5696, -0.1815]],[[ 1.2792, -1.0822, -0.1846],[-0.0850, 0.8372, -0.0310],[ 1.3109, -0.3448, -0.4087],[ 1.3273, 0.5631, 0.6411]]], grad_fn=<EmbeddingBackward0>)
nn.Embedding 输入参数
- num_embeddings (int) – size of the dictionary of embeddings
- embedding_dim (int) – the size of each embedding vector
相当于把一个标量映射成一个向量。
来看一下 Embedding 层的参数。
Embedding 的权重是 10*3,和输入参数 size 相同。可以理解为,共有 10 个单词,单词用 0-9 表示,分别乘以 3 个权重,得到词向量。
以 input[0][0] 也就是 1 为例,可以看到对应的权重和输出一致,即1 分别乘以三个权重得到输出。
参考
[双语字幕]吴恩达深度学习deeplearning.ai —— P163 2.1 词汇表征
李宏毅2020机器学习深度学习(完整版)国语 —— P23 Unsupervised Learning - Word Embedding
Embedding 理解相关推荐
- Embedding理解、Keras实现Embedding
@创建于:20210714 @修改于:20210714 文章目录 1 Embedding介绍 1.1 embedding 有3 个主要目的 1.2 图形化解释 2 包模块.方法介绍 3 Keras实现 ...
- embedding理解
embedding理解 本质就是量化相似性,将相似性通过在多个维度上的量化,从而通过判断两个向量的距离来判断相似性. 意义:将类别数据(无限维度/多维度)用低维表示且可自学习. 协同过滤 推荐系统有两 ...
- torch.nn.Embedding理解
Pytorch官网的解释是:一个保存了固定字典和大小的简单查找表.这个模块常用来保存词嵌入和用下标检索它们.模块的输入是一个下标的列表,输出是对应的词嵌入. torch.nn.Embedding(nu ...
- ViT Patch Embedding理解
ViT(Vision Transformer)中的Patch Embedding用于将原始的2维图像转换成一系列的1维patch embeddings. 假设输入图像的维度为HxWxC,分别表示高,宽 ...
- Embedding理解+代码
目录 Embedding 主要思想 Word2vec 主要思想 两种模型: 目的: 算法 一.定义超参数 二.将语料库转换one-hot编码表示 三.模型训练 代码手动实现 skip-gram模型 一 ...
- torch.nn.Embedding()理解
https://blog.csdn.net/tommorrow12/article/details/80896331
- 10分钟带你深入理解Transformer原理及实现
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|深度学习这件小事 基于 Transformer<A ...
- Word Embedding 知识总结
一 Word Embedding的基本概念 1.1 什么是Word Embedding? 现有的机器学习方法往往无法直接处理文本数据,因此需要找到合适的方法,将文本数据转换为数值型数据,由此引出了Wo ...
- nn.embding()使用注意点
关于nn.embedding的维度的定义,函数的理解,一些需要注意的点 https://blog.csdn.net/a845717607/article/details/104752736 Embed ...
最新文章
- 在 react 里使用 antd
- Java 8 中 HashMap 到底有啥不同?
- JButton的setRollover出现的奇怪问题
- 成功解决pandas\core\generic.py:3660: SettingWithCopyWarning: A value is trying to be set on a copy of a
- 【学习笔记】14、标准数据类型—字典
- 对XMLHttpRequest异步请求的面向对象封装
- springboot创建单个对象
- URAL 1033 Labyrinth
- 轻松带你走进shiro的世界
- php gzip 关闭,php能否在当前脚本页关闭nginx的gzip输出
- 如何查看sql2005数据库的端口号
- GNN | 从序列神经网络到GCN、GraphSage、GAT图模型总结
- Microsoft Silverlight 4 Tools for Visual Studio 2010
- 计算机网络结构示意图,常见的五种计算机网络拓扑结构分析
- 一篇关于程序员的文章
- android 如何启动apk,Android JS启动APK
- docker配置国内加速器的两种方法
- NLP 模型压缩方法综述
- linux 下简单安装 pathogen.vim
- 程序员在二线城市工作爽吗?