Embeding如何理解?
参考:
http://www.sohu.com/a/206922947_390227
https://zhuanlan.zhihu.com/p/27830489
https://www.jianshu.com/p/0bb00eed9c63
https://www.baidu.com/link?url=CwDMHi72fOR8BzSlKAR0_01oYq-Jn79tNdrWrISguElN1w4Ng9DBZhihxCNjrWUBavktHOALF41rzvar191r4SlbKHO_EgiY_dmSYpDoq5C&wd=&eqid=c0fe574e00063f08000000035d11e9c6
https://www.jianshu.com/p/2a76b7d3126b
https://www.baidu.com/link?url=XI4NojXLflTT49Am0pQmaWXoPfqvBqdB1K8nkt6sFX1LRqsVwDyedyyN9vOH76GXquBBTfW7b2DfzYumTwYjaRBl87APzOD0u_YCeu4zWGW&wd=&eqid=c0fe574e00063f08000000035d11e9c6
https://blog.csdn.net/k284213498/article/details/83474972
嵌入(Embedding)
例如,想用将具有三个等级的输入变量表示为二维数据。使用嵌入层,底层自微分引擎(the underlaying automatic differentiation engines,例如Tensorflow或PyTorch)将具有三个等级的输入数据减少为二维数据。
嵌入式数据
输入数据需要用索引表示。这一点可以通过标签编码轻松实现。这是你的嵌入层的输入。
这里有一个简单的例子,在keras中使用嵌入层,点击链接,查看详情:https://github.com/krishnakalyan3/FastAI_Practice/blob/master/notebooks/RecSys.ipynb
最初,权重是随机初始化的,它们使用随机梯度下降得到优化,从而在二维空间中获得良好的数据表示。可以说,当我们有100个等级时,并且想要在50个维度中获得这个数据的表示时,这是一个非常有用的主意。
示例:
原始数据:

标签数据:

独热编码:

嵌入数据:

2.机器学习中的embedding原理及tensorflow 相关API的理解
embedding 算法主要用于处理稀疏特征,应用于NLP、推荐、广告等领域。所以word2vec 只是embbeding 思想的一个应用,而不是全部。
原文地址:https://gshtime.github.io/2018/06/01/tensorflow-embedding-lookup-sparse/
代码地址:git@github.com:gshtime/tensorflow-api.git
embedding原理
常见的特征降维方法主要有PCA、SVD等。
而embedding的主要目的也是对(稀疏)特征进行降维,它降维的方式可以类比为一个全连接层(没有激活函数),通过 embedding 层的权重矩阵计算来降低维度。
假设:
- feature_num : 原始特征数
- embedding_size: embedding之后的特征数
- [feature_num, embedding_size] 权重矩阵shape
- [m, feature_num] 输入矩阵shape,m为样本数
- [m, embedding_size] 输出矩阵shape,m为样本数
从id(索引)找到对应的 One-hot encoding ,然后红色的weight就直接对应了输出节点的值(注意这里没有 activation function),也就是对应的embedding向量。

3.Word Embedding的发展和原理简介
https://www.jianshu.com/p/2a76b7d3126b
可以将Word Embedding理解为一种映射,其过程是:将文本空间中的某个word,通过一定的方法,映射或者说嵌入(embedding)到另一个数值向量空间(之所以称之为embedding,是因为这种表示方法往往伴随着一种降维的意思。
1.2 Word Embedding的输入
Word Embedding的输入是原始文本中的一组不重叠的词汇,假设有句子:apple on a apple tree。那么为了便于处理,我们可以将这些词汇放置到一个dictionary里,例如:["apple", "on", "a", "tree"],这个dictionary就可以看作是Word Embedding的一个输入。
1.3 Word Embedding的输出
Word Embedding的输出就是每个word的向量表示。对于上文中的原始输入,假设使用最简单的one hot编码方式,那么每个word都对应了一种数值表示。例如,apple对应的vector就是[1, 0, 0, 0],a对应的vector就是[0, 0, 1, 0],各种机器学习应用可以基于这种word的数值表示来构建各自的模型。当然,这是一种最简单的映射方法,但却足以阐述Word Embedding的意义。下文将介绍常见的Word Embedding的方法和优缺点。
2 Word Embedding的类型
Word Embedding也是有流派的,主流有以下两种:
基于频率的Word Embedding(Frequency based embedding)
基于预测的Word Embedding(Prediction based embedding)
下面分别介绍之。
2.1 基于频率的Word Embedding
基于频率的Word Embedding又可细分为如下几种:
Count Vector
TF-IDF Vector
Co-Occurence Vector
其本质都是基于one-hot表示法的,以频率为主旨的加权方法改进。
代码实现:
https://www.baidu.com/link?url=XI4NojXLflTT49Am0pQmaWXoPfqvBqdB1K8nkt6sFX1LRqsVwDyedyyN9vOH76GXquBBTfW7b2DfzYumTwYjaRBl87APzOD0u_YCeu4zWGW&wd=&eqid=c0fe574e00063f08000000035d11e9c6
Embeding如何理解?的更多相关文章
- 理解CSS视觉格式化
前面的话 CSS视觉格式化这个词可能比较陌生,但说起盒模型可能就恍然大悟了.实际上,盒模型只是CSS视觉格式化的一部分.视觉格式化分为块级和行内两种处理方式.理解视觉格式化,可以确定得到的效果是应 ...
- 彻底理解AC多模式匹配算法
(本文尤其适合遍览网上的讲解而仍百思不得姐的同学) 一.原理 AC自动机首先将模式组记录为Trie字典树的形式,以节点表示不同状态,边上标以字母表中的字符,表示状态的转移.根节点状态记为0状态,表示起 ...
- 理解加密算法(三)——创建CA机构,签发证书并开始TLS通信
接理解加密算法(一)--加密算法分类.理解加密算法(二)--TLS/SSL 1 不安全的TCP通信 普通的TCP通信数据是明文传输的,所以存在数据泄露和被篡改的风险,我们可以写一段测试代码试验一下. ...
- node.js学习(三)简单的node程序&&模块简单使用&&commonJS规范&&深入理解模块原理
一.一个简单的node程序 1.新建一个txt文件 2.修改后缀 修改之后会弹出这个,点击"是" 3.运行test.js 源文件 使用node.js运行之后的. 如果该路径下没有该 ...
- 如何一步一步用DDD设计一个电商网站(一)—— 先理解核心概念
一.前言 DDD(领域驱动设计)的一些介绍网上资料很多,这里就不继续描述了.自己使用领域驱动设计摸滚打爬也有2年多的时间,出于对知识的总结和分享,也是对自我理解的一个公开检验,介于博客园这个平 ...
- 学习AOP之透过Spring的Ioc理解Advisor
花了几天时间来学习Spring,突然明白一个问题,就是看书不能让人理解Spring,一方面要结合使用场景,另一方面要阅读源代码,这种方式理解起来事半功倍.那看书有什么用呢?主要还是扩展视野,毕竟书是别 ...
- ThreadLocal简单理解
在java开源项目的代码中看到一个类里ThreadLocal的属性: private static ThreadLocal<Boolean> clientMode = new Thread ...
- JS核心系列:理解 new 的运行机制
和其他高级语言一样 javascript 中也有 new 运算符,我们知道 new 运算符是用来实例化一个类,从而在内存中分配一个实例对象. 但在 javascript 中,万物皆对象,为什么还要通过 ...
- 深入理解JS 执行细节
javascript从定义到执行,JS引擎在实现层做了很多初始化工作,因此在学习JS引擎工作机制之前,我们需要引入几个相关的概念:执行环境栈.全局对象.执行环境.变量对象.活动对象.作用域和作用域链等 ...
随机推荐
- 【hihocoder 1329】 平衡树·Splay(set做法)
[题目链接]:http://hihocoder.com/problemset/problem/1329 [题意] [题解] 因为一开始是空的树,所以; n其实就代表了树中的最多元素个数; 则最坏的情况 ...
- 洛谷 P2483 BZOJ 1975 [SDOI2010]魔法猪学院
题目描述 iPig在假期来到了传说中的魔法猪学院,开始为期两个月的魔法猪训练.经过了一周理论知识和一周基本魔法的学习之后,iPig对猪世界的世界本原有了很多的了解:众所周知,世界是由元素构成的:元素与 ...
- 0823关于整理MySQL死锁
-- 更多的是需要理解 http://hedengcheng.com/?p=577 -- 何登成 关于WHERE的提取http://www.cnblogs.com/metoy/p/5545580.ht ...
- redis--周边知识点
一般Redis服务器内存超过128G内存的机器是非常少的 很少在redis中缓存视频,除非是快播,一般都是缓存文本字段 redis可视化的工具和SQL的管理工具是不一样的,最好是使用REDIS的she ...
- asp.net--WebService知识点
开头是这样的 [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = Wsi ...
- 谈论java中怎样处理高并发的问题
1 从最基础的地方做起,优化我们写的代码,降低必要的资源浪费. a.避免频繁的使用new对象.对于整个应用仅仅须要存在一个实例的类.我们能够使用单例模式. 对于String连接操作,使 ...
- GIS+=地理信息+容器技术(1)——容器技术概述
-------------------------------------------------------------------------------------- Blog: http ...
- HDU 1429--胜利大逃亡(续)【BFS && 状态压缩】
胜利大逃亡(续) Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total S ...
- Cache 总结
这一文,让我们分析一下,<浅谈 Cache> 一文中的奇怪现象,事实上如今来看也并不奇怪了. 在什么情况下 r1 和 r2 都为 0 呢? 细致看代码,你会 ...
- formValidator向struts2 ajax传參验证
话不多说,直接上代码 页面head里面的formvalidator验证配置 <script type="text/javascript"> $(document).re ...