词向量技术原理及应用详解(二)

时间:2019-08-24
本文章向大家介绍词向量技术原理及应用详解(二),主要包括词向量技术原理及应用详解(二)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

当前文本向量化主流的方式是word2vec词向量技术,从基于统计的方法,到基于神经网络的方法,掌握word2vec词向量技术是学习文本向量化的最好的方式

下面是Tomas MIkolov的三篇有关word embedding的文章:
            1、Efficient Estimation of Word Representation in Vector Space, 2013
            2、Distributed Representations of Sentences and Documents, 2014
            3、Enriching Word Vectors with Subword Information, 2016


因此严格意义上说,word2vec是一个2013年出现的新方法,15年以后逐渐流行起来。

Word2vec的几个关键点

什么是word2vec?

word2vec是词的一种表示,它将词以固定维数的向量表示出来。是用来将一个个的词变成词向量的工具。例如:“我爱中国”这句话通过分词为 我/ 爱/ 中国。那么这时候三个词都将表示为n维的词向量。中国 = [x1,x2,…,xn]

为什么要用word2vec?word2vec有什么好处。

传统的基于词袋模型 one-hot representation在判定同义词,相似句子的时候很无力。

例如在一个只有两个词的词典中。快递被编码为v1 = [0,1],快件被编码为v2 =[1,0],计算两个的相似度。为v1*v2 = 0。

word2vec充分利用上下文信息,对上下文进行训练。

每个词不在是 只有一个位置为1,其余位置为0的稀疏向量。而是一个稠密的固定维度向量。直观上可减少额外存储和计算开销。

其次,在深层次的语义理解上,经过训练后的词向量能利用上下文信息。能判定找出相似词语。

例如word2vec从大量文本语料中以无监督的方式学习语义信息,即通过一个嵌入空间使得语义上相似的单词在该空间内距离很近。比如“机器”和“机械”意思很相近,而“机器”和“猴子”的意思相差就很远了,那么由word2vec构建的这个数值空间中,“机器”和“机械”的距离较“机器”和“猴子”的距离而言是要近很多的。

word2vec有哪几种实现方式?

共两种:1)用上下文预测中心词cbow(continue bag of word)

              2)利用中心词预测上下文 skip-gram

从实现方式上看两者只是输入输出发生了变化。

word2vec的本质是什么?

当然是无监督学习,因为输出并没有label。但是从输入的和输出的形式上来看,输入的是一对对单词,看起来像是有监督,其实并不是。

因为词向量的本质可以看出是一个只有一层的神经网络,因此必须有输入,输出。而训练过程或者说目的不是得到预测结果单词,或对单词进行分类。最为关键的是获得hidden layer中权重。也就是说借助了sequence2sequence模型训练过程,得到hidden layer的权重。

sigmoid函数与softmax函数

sigmoid函数是什么?

sigmoid函数也叫 Logistic 函数,用于隐层神经元输出,取值范围为(0,1),它可以将一个实数映射到(0,1)的区间,可以用来做二分类。

Sigmoid函数的基本性质:定义域:(−∞,+∞);值域:(0,1);函数在定义域内为连续和光滑;处处可导,导数为:f′(x)=f(x)(1−f(x))

Softmax函数

Softmax要解决这样一个问题:我有一个向量,想用数学方法把向量中的所有元素归一化为一个概率分布。也就是说,该向量中的元素在[0,1]范围内,且所有元素的和为1。

softmax就是这个数学方法,本质上是一个函数。

假设我们有一个k维向量z,我们想把它转换为一个k维向量 ,使其所有元素的范围是[0,1]且所有元素的和为1,函数表达式是:

也就是说, 内的每一个元素是对z内的对应元素求指数,再除以所有元素求指数后的和。所以Softmax函数也叫做归一化指数函数(normalized exponential function)

二叉树和Huffman树

 二叉树

二叉树是树的特殊一种,具有如下特点:1)每个结点最多有两颗子树,结点的度最大为2;2)左子树和右子树是有顺序的,次序不能颠倒;3)即使某结点只有一个子树,也要区分左右子树。

斜树:所有的结点都只有左子树(左斜树),或者只有右子树(右斜树)。这就是斜树,应用较少。如下图的左斜树与右斜树:

满二叉树:所有的分支结点都存在左子树和右子树,并且所有的叶子结点都在同一层上,这样就是满二叉树。就是完美圆满的意思,关键在于树的平衡。

完全二叉树:对一棵具有n个结点的二叉树按层序排号,如果编号为i的结点与同样深度的满二叉树编号为i结点在二叉树中位置完全相同,就是完全二叉树。满二叉树必须是完全二叉树,反过来不一定成立。其中关键点是按层序编号,然后对应查找。

在上图中,树1,按层次编号5结点没有左子树,有右子树,10结点缺失。树2由于3结点没有字数,是的6,7位置空挡了。树3中结点5没有子树。所以上图都不是完全二叉树。

上图就是一个完全二叉树。结合完全二叉树定义得到其特点:1)叶子结点只能出现在最下一层(满二叉树继承而来);2)最下层叶子结点一定集中在左 部连续位置。3)倒数第二层,如有叶子节点,一定出现在右部连续位置。4)同样结点树的二叉树,完全二叉树的深度最小(满二叉树也是对的)。

Huffman树

在计算机科学中,树是一种很重要的非线性数据结构,它是数据元素(在树中称为结点)按分支关系组织起来的结构。若干棵互不相交的树所构成的集合称为森林。下面我们给出几个与树相关的常用概念。

路径和路径长度:在一棵树中,从一个结点往下可以达到的孩子或孙子结点之间的通路,称为路径。通路中分支的数目称为路径长度。若规定根结点的层号为1,则从根结点到第L层结点的路径长度为L-1。

结点的权和带权路径长度:若为树中结点赋予一个具有某种含义的(非负)数值,则这个数值称为该结点的权。结点的带权路径长度是指,从根节点到该结点之间的路径长度与该结点的权的乘积。

树的带权路径长度:规定为所有叶子结点的带权路径长度之和。

Huffman树:给定n个权值作为n个叶子结点,构造一棵二叉树,若它的带权路径长度达到最小,则称这样的二叉树为最优二叉树,也称为Huffman树。

Huffman树构造:给定n个权值{

原文地址:https://www.cnblogs.com/huangm1314/p/11307103.html