




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1One hot编码什么是one hot编码p one-hot编码,又称编码、一位有效编码。其方法是使用N位状态寄存器来对N个状态进行编码,每个状态都有它的寄存器位,并且在任意时候,其中只有一位有效。举个例子,假设我们有四个样本(行), 每个样本有三个特征(列),如下图:上图中我们已经对每个特征进行了普通的数字编码:我们的feature_1有两种可能的取值,比如是男/ 女,这里男用1表示,女用2表示。Feature_1Feature_2Feature_3Sample1143Sample2232Sample3122Sample4211什么是one hot编码p 那么one-hot编码是怎么搞的呢
2、?我们再拿feature_2来说明:这里feature_2 有4种取值(状态),我们就用4个状态位来表示这个特征,one-hot编码就是保证每个样本中的单个特征只有1位处于状态1,其他的都是0。什么是one hot编码p 对于2种状态、3种状态、甚至状态都可以这样表示,所以我们可以得到这些样本特征的新表示,入下图:one-hot编码将每个状态位都看成一个特征。对于前两个样本我们可以得到它的特征分别为Feature_1Feature_2Feature_3Sample1011000100Sample2100100010Sample3010010010Sample4100001001one-hot在
3、提取文本特征上的应用p one hot在特征提取上属于词袋模型(bag of words)。关于如何使用one-hot抽取文本特征库中有三段话: 我爱中国我们通过以下例子来说明。假设我们的语料妈妈爱我妈妈爱中国我们首先对预料库分词,并获取其中所有的词,然后对每个此进行编号:1 我; 2 爱; 3; 4 妈妈;5 中国然后使用one hot对每段话提取特征:one-hot在提取文本特征上的应用one-hot在提取文本特征上的应用p 因此我们得到了最终的特征为Ø 我爱中国-> ( 1,1,0,0,1 )妈妈爱我->( 1,1,1,1,0 ) 妈妈爱中国 ->( 0,1,
4、1,1,1 )ØØp 优缺点分析Ø 优点:ü 一是解决了分类器不好处理离散数据的问题;ü 二是在一定程度上也起到了扩充特征的作用(上面样本特征数从3扩展到了9);Ø 缺点:ü 在文本特征表示上有些缺点就非常突出了;ü 首先,它是一个词袋模型,不考虑词与词之间的顺序;ü 其次,它假设词与词相互(在大多数情况下,词与词是相互影响的);ü 最后,它得到的特征是离散稀疏的;one-hot 实现p 手动实现one-hot编码p Keras中one-hot编码的实现Word2vec的相关概念2Word2Ve
5、c前生今世Word2Vec前生今世p上图是deep learning圈中的关系图,做DeepLearning的人就那么些,本文作者Tomas MIkolov的工作参考了很多Bengio的工作,在Bengio待过很长一段时间,一起发过paper。此外他和还是同事。p下面是Tomas MIkolov的三篇有关word embedding的文章。üüü1、Efficient Estimation of Word Representation in Vector Space, 2013 2、Distributed Representations of Sentences
6、and Documents, 20143、Enriching Word Vectors with Subword Information, 2016p因此严格意义上说,word2vec是一个2013年出现的新方法,15年以后逐渐流行起来。Word2Vec需要注意的几个关键点pword2vec是什么?üüüüWord2vec是词的一种表示,他将词以固定维数的例如 “我爱中国” 这句话通过分词分为 我/ 爱那么 这个时候这三个词都将表示为n维的词中国= x1, x2,.,xn表示出来。/ 中国。p为什么要用word2vec?word2vec有什么好处。
7、52;传统的基于词袋模型one-hot representation在判定同义词,相似句子的时候很无力。例如在一个只有两个词的词典中。快递被编码为v1 = 0,1,快件被编码为v2 =1,0,计算两个的相似度。为v1*v2 = 0而word2vec充分利用上下文信息,对上下文进行训练。每个词不üü在是 只有一个位置为1,其余位置为0的稀疏。而是一个稠密的固定维度。Word2Vec需要注意的几个关键点ü 直观上可减少额外和计算开销。ü 其次,在次的语义理解上,经过训练后的词能利用上下文信息。能判定找出相似词语。p word2vec有哪几种实现方式?
8、2; 一共为两种ü 1)用上下文ü 2)利用中心词中心词 cbow(continue bag of word) 上下文 skip-gramü 从实现看两者两者只是输入输出发生了变化。Word2Vec需要注意的几个关键点p word2vec的本质是什么?ü 当然是无监督学习,因为输出并没有label。ü 但是从输入的和输出的形式上来看,输入的是一对对单词,看起来像是有监督,其实并不是。ü 因为词的本质可以看出是一个只有一层的神经网络,因此必须有输入,输出。而训练过程或者说目的不是得到结果单词,或者对单词进行分类。最为关键的是获得hidd
9、en layer中权重。ü 也就是说借助了sequence2sequence模型训练过程,得到hidden layer的权重。Sigmoidp Sigmoid是什么?ü sigmoid函数也叫Logistic 函数,用于隐层神经元输出,取值范围为(0,1),它可以将一个实数类。到(0,1)的区间,可以用来做二分Sigmoidp Sigmoid函数的基本性质:üüüü定义域:(,+)值域:(1,1)函数在定义域内为连续和光滑函数 处处可导,导数为:f(x)=f(x)(1f(x)SoftmaxpSoftmax要解决这样一个问题:我有一个,
10、想用数学方法把中的所有元素归一化为一个概率分布。也就是说,该0,1范围内,且所有元素的和为1。Softmax就是这个数学方法,本质上是一个函数。中的元素在pp假设我们有一个k维z,我们想把它转换为一个k维,使其所有元素的范围是0,1且所有元素的和为1,函数表是:p也就是说,内的每一个元素是对z内的对应元素求指数,再除以所有元素求指数后的和。所以Softmax函数也叫做归一化指数函数(normalized exponential function)二叉树p二叉树的特殊一种,具有如下特点:ØØØ1、每个结点最多有两颗子树,结点的度最大为2;2、左子树和右子有顺序的,次
11、序不能颠倒;3、即使某结点只有一个子树,也要区分左右子树。p斜树Ø所有的结点都只有左子树(左斜树),或者只是斜树,应用较少树(右斜树)。这就二叉树p 满二叉树Ø所有的分支结点都存在左子树和右子树,并且所有的点都在同一层上,这样就是满二叉树。就是完美圆满的意思,关键在于树的平衡。二叉树p 根据满二叉树的定义,得到其特点为:ØØØ叶子只能出现在最下一层。点度一定是2.非最多。在同样深度的二叉,满二叉树的结点个数最多,二叉树p 完全二叉树Ø对一棵具有n个结点的二叉树按层序排号,如果编号为i的结点与同样深度的满二叉树编号为i结点在二叉位置完全
12、相同,就是完全二叉树。满二叉树必须是完全二叉树,反过来不一定成立。p 其中关键点是按层序编号,然后对应查找。二叉树p 在上图中,树1,按层次编号5结点没有左子树,树,10结点缺失。树2由于3结点没有字数,是的6,7位置空挡了。树3中结点5没有子树。二叉树pp上图就是一个完全二叉树。结合完全二叉树定义得到其特点:üüüü点只能出现在最下一层(满二叉树继承而来)最下层倒数第二层,点一定集中在左部连续位置。叶子节点,一定出现在右部连续位置。同样结点树的二叉树,完全二叉树的深度最小(满二叉树也是对的)。Huffman树p在计算机科学中,一种很重要的非线性数据结构
13、,它是数据元素(在树所称为结点)按分支关系组织起来的结构。若干棵互不相交的的集合称为森林。下面我们给出几个与树相关的常用概念。p路径和路径长度:在一棵,从一个结点往下可以达到的孩子或孙子结点之间的通路,称为路径。通路中分支的数目称为路径长度。若规定根结点的层号为1,则从根结点到第L层结点的路径长度为L-1p结点的带径长度:若为结点赋予一个具有某种含义的(非负)数值,则这个数值称为该结点的权。结点的带径长度是指,从根节点到该结点之间的路径长度与该结点的权的乘积。Huffman树pp树的带径长度:规定为所有点的带径长度之和。Huffman树:给定n个作为n个点,构造一棵二叉树,若它的带径长度达到最
14、小,则称这样的二叉树为最优二叉树,也称为Huffman树。pHuffman树构造:给定n个𝑤1, 𝑤2, , 𝑤𝑛作为二叉树的n个叶子结点,可通过以下算法来构造一棵Huffman树。Huffman树构造算法püü(1)将 𝑤1, 𝑤2, , 𝑤𝑛 看成是有n棵树的森林(每棵树仅有一个结点)。(2)在森林中选出两个根结点的最小的树合并,作为一棵新树的根之和。结点为其左、右子树根结点üü(3) 从森林中删除选取的两棵树,并将新树加入
15、森林。(4) 重复(2)、(3)步,直到森林中只剩一棵树为止,该树即为所求的Huffman树。Huffman树p 举个栗子:假设今年期间,从新浪中抓取了若干条与足球”、“俄罗斯”、相关的,经统计,“我”、“喜欢”、“”这六个词出现的次数分别为15,8,6,5,3,“足球”、“1.请以这6个词为,构造一棵Huffman树。点,以相应词频当Huffman编码p在数据通信中,需要将传送的文字转换成二进制的字符串,用0,1码的不同排列来表示字符。例如,需传送的报文为“AFYER DATA EAR ARE ART AREA”,这里用到的字符集为“A,E,R,T,F,D”,各字母出现的次数为8,54,5,
16、3,1,1.现要求为这些字母设计编码。要区别6个字母,最简单的二机制编码方式是等长编码,固定采用3位二进制(23=8>6),可分别用000、001、010、011、100、101对p“A,E,R,T,F,D”进行编码码。显然编码的长度取决报文中不同字符的个数。若报文中可能出现26个不同字符,则固定编码长度为5(25=32>26).然而,传送报文时总是希望总长度尽可能短。在实际应用中,各个字符的出现频度或使用次数是不相同的,如A、B、C的使用频率远远高于X、Y、Z,自然会想到设计编码时,让使用频率高的用短码,使用频率低的用长码,以优化整个报文编码。,当对方接收报文时再按照三位一分进行
17、译pHuffman编码p为使不等长编码为前缀编码(即要求一个字符的编码不能是另一个字符编码的前缀),可用字符集中的每个字符作为点生成一棵编码二叉树,为了获得传送报文的最短长度,可将每个字符的出现频率作为字符结点的赋予该结点上,显然字使用频率越小小,小叶子就越靠下,于是频率小编码长,频率高编码短,这样就保证了此树的最小带径长度,效果上就是传送报文的最短长度。因此,求传送报文的最短长度问题转化为求由字符集中的所有字符作为点,由字符出现频率作为所产生的Huffman树的问题。其p利用Huffman树设计的二进制前缀编码,称为Huffman编码,它既能满足前缀编码的条件,又能保证报文编码总长最短。Hu
18、ffman编码p文本领域如何用Huffman编码,它把训练语料中的词当成点,其在,通过构造相应的Huffman树来对每一个词进语料中出现的次数当作行Huffman编码。p右图中六个词的Huffman编码,其中约结点编码为1,定(词频较大的)(词频较小的)右孩子结点编码为0.这样一来,“我”、“喜欢”、“”、“巴西”、“足球”、“”这六个词的Huffman编码分别为0,111,110,101,1001和1000.8喜欢语言模型p什么是语言模型?Ø说,语言模型就是用来计算一个句子的概率的模型,也就是话是否是人话的概率?一句p比如下面三句话:ü 今天天气很好,我们去圆明园
19、2; 今天很好天气,我们去圆明园ü 今天我们天气,很好去圆明园吧。吧。吧。p如何一个句子是否合理,很容易想到了一种很好的统计模型来解决上述问题,只需要看它在所有句子中出现的概率就行了。第一个句子出现的概率大概是80%,第二个句子出现的概率大概是50%,第三个句子出现的概率大概是20%,第一个句子出现的可能性最大,因此这个句子最为合理。语言模型p 如何计算一个句子出现的概率呢?Ø 我们可以把有史以来人类说过的话都统计一遍,这样就能很方便的计算概率了。然而,你我都知道这条路走不通。Ø 假设想知道S在文本中出现的可能性,也就是数学上所说的S的概率,既然S=w1,w2,.
20、,wn,那么不妨把S展开表示,语言模型Ø 利用条件概率的公式,S这个序列出现的概率等于每一个词出现的条件概率的乘乘积,展开为:计算P(w1)很容易,P(w2|w1)也还能算出来,P(w3|w1,w2)已经非常难以计算了。Ø 所以这样的方法存在两个致命的缺陷:üü參数空间过大:条件概率P(wn|w1,w2,.,wn-1)的可能性太多,无法估算,不可能有用; 数据稀疏严重:对于非常多词对的组合,在语料库中都没有出现,依据最大似然估计得到的概率将会是0。语言模型p假设Ø为了解决參数空间过大的问题。引入了:随意一个词出现的概率只与它前面出现的有限的一个
21、或者几个词有关。即在此时,假设一个词wi出现的概率只与它前面的wi1有关,这种假设称为1Ø阶假设。现在,S的概率就变得简单了:Ø那么,接下来的问题就变成了估计条件概率P(wi|wi1),根据它的定义,语言模型Ø当样本量很大的时候,基于大数定律,一个短语或者词语出现的概率可以用其频率来表示,即其中,count(i)表示词i出现的次数,count表示语料库的大小。那么语言模型p一元语言模型(unigram):Ø如果一个词的出现与它周围的词是的,称为一元语言模型P(S ) =P(w 1) * P(w 2) *P(w 3) * . * P(wn)p二元语言模型(
22、bigram)Ø如果一个词的出现仅依赖于它前面出现的一个词,称为二元语言模型语言模型p三元语言模型(trigram)Ø假设一个词的出现仅依赖于它前面出现的两个词,称为三元语言模型ØØ一般来说,N元模型就是假设当前词的出现概率只与它前面的N-1个词有关。在实践中用的最多的就是bigram和trigram了,高于四元的用的非常少,由于训练它须要更庞大的语料,并且数据稀疏严重,时间复杂度高,精度却提高的不多。神经网络语言模型p前言Ø学习的套路是,对所研究的问题建模,构造一个目标函数,然后优化参数,最后用这个目标函数进行。Ø对于统计语言模型,
23、常使用最大对数似然作为目标函数,即Ø在n-gram模型中,Ø由此可见,概率是关于w和context(w)的函数,即Ø一旦F确定下来了,任何概率都可以使用这个函数进行计算了。神经网络语言模型p神经网络语言模型Ø上节介绍的n-gram模型相信我们已经十分清楚了,但是n-gram模型的一个突出的确定就是,n的设置不宜过大,n从2到3提升效果显著,但是从3-4提升 的效果就没那么好了。而且随着n的增大,参数的数量是以几何形势增长的。Ø因此,n-gram模型只能提取某个词前面两到三个词的信息,而不能提取的信息了。然而很明显的是,整文本序列中,包含更前面的
24、词能够提供比仅仅2到3个词的信息,这也是神经网络语言模型着重要解决的问题之一。Ø神经网络模型主要在以下两点上寻求更大的进步:üün-gram模型没有考虑上下文中的词提供的信息n-gram模型没有考虑词与此之间的相似性。神经网络语言模型p举个栗子Ø如果在一个语料库中,“我爱青岛”出现了6000次,而“我爱大连"只出现了15次,n-gram模型得出的结果是前面一个句子的可能性会比后面一个句子大得多。但是实际上,这两个句子是相似的,他们在真实的情况下出现的概率也应该是相仿的。Ø神经网络语言模型可以概括为以下三点:üü
25、252;将词汇表中的每个词表示成一个在m里的实数形式的分布式特征使用序列中词语的分布式特征来表示连接概率函数同时学习特征和概率函数的参数Ø特征表示词的不同特征:每一个词都是空间内的一个点。特征的个数通常都比较小,比如30,60或者100,远远小于词汇表的长度。概率函数是在给定一个词前面的若干词的情况下,该词出现的条件概率。调整概率函数的参数,使得训练集的对数似然达到最大。每个词的特征得到的,也可以用先验知识进行初始化。是通过训练神经网络语言模型p 数学理论探讨ØØØ训练集是序列目标是找到一个号的模型,使得唯一的约束条件是是词汇表,是一个很大但有限的集合;
26、神经网络语言模型神经网络语言模型神经网络语言模型Word2vec的实现方式3Skip-Gram模型(跳字模型)pSkip-Gram在Skip-Gram模型中,我们用个词来ØØ它在文本序列周围的词。举个栗了:假设文本序列是“我”、“爱”、“中国”、“这片”和“土地”。以“中国”作为中心词,设时间窗口小为 2。跳字模型所关心的是, 给定中心词“中国”生成与它距离不超过 2 个词的背景词“我”、“爱”、“这片”和“土地”的条件概率。p数学描述假设词典索引集 V 的大小为 |V|,且 V=0,1,|V|1。给定一个长度为T 的文本序列中,时间步 t 的词为 w(t)。当时间窗口大小
27、为 m 时,跳字模型需要最大化给定任一中心词生成所有背景词的概率;ØSkip-Gram模型(跳字模型)上式的最大似然估计与最小化以下损失函数等价:Skip-Gram模型(跳字模型)Ø我们可以用V和U分别表示中心词和背景词的为i的词,它在作为中心词和背景词时的。换言之,对于词典中索引表示分别是vi和ui。而词典中所有词的这两种正是跳字模型所要学习的模型参数。模型参数植入损失函数,我们需要使用模型参数表达损失函数中的给定中心词生成背景词的条件概率。Ø给定中心词,假设生成各个背景词是相互的。设中心词wc在词典中索引为c,背景词wo在词典中索引为o,损失函数中的给定中心词
28、生成背景词的条件概率可以通过 softmax 函数定义为:Ø当序列长度 T 较大时,我们通常在每次迭代时随机采样一个较短的子序列来计算有关该子序列的损失。然后,根据该损失计算词量。的梯度并迭代词向Skip-Gram模型(跳字模型)Ø下面我们看看如何计算随机采样的子序列的损失有关中心词的梯度。和上面提到的长度为T的文本序列的损失函数类似,随机采样的子序列的损失实际上是对子序列中给定中心词生成背景词的条件概率的对数求平均。通过微分,我们可以得到上式中条件概率的对数有关中心词vc的梯度Ø该式子也可以写成这样Skip-Gram模型(跳字模型)ØØ随机采
29、样的子序列有关其他词的梯度同理可得;训练模型时,每一次迭代实际上是用这些梯度来迭代子序列中出现过的中心词和背景词的;Ø训练结束后,对于词典中的任一索引为i的词,我们均得到该词作为中心词和背景词的两组词vi和ui;Ø在自然语言处理应用中,我们会使用跳字模型的中心词。CBOW模型(连续词袋模型)pCBOW模型ØCBOW模型与Skip-Gram模型类似。与Skip-Gram模型最大的不同是, CBOW模型用一个中心词在文本序列前后的背景词来该中心词。Ø举个栗了:假设文本序列是“我”、“爱”、“中国”、“这片”和“土 地”。以“中国”作为中心词,设时间窗口小为
30、2。连续词袋模型所关的是,给定与中心词距离不超过 2 个词的背景词“我”、“爱”、“这片”和“土地”生成中心词“中国”的条件概率。p数学描述假设词典索引集 V 的大小为 |V|,且 V=0,1,|V|1。给定一个长度为T 的文本序列中,时间步 t 的词为 w(t)。当时间窗口大小为 m 时,CBOW模型需要最大化给定背景词生成任一中心词的概率;ØCBOW模型(连续词袋模型)Ø上式的最大似然估计与最小化以下损失函数等价:Ø我们可以用V和U分别表示背景词和中心词的为i的词,它在作为背景词和中心词时的。换言之,对于词典中索引表示分别是vi和ui。而词典中所有词的这两种正
31、是连续词袋模型所要学习的模型参数。模型参数植入损失函数,我们需要使用模型参数表达损失函数中的给定背景词生成中心词的概率。设中心词wc在词典中索引为c,背景词 wo1,wo2m 在词典中索引为 o1,o2m,损失函数中的给定背景词生成中心词的概率可以通过softmax 函数定义为:CBOW模型(连续词袋模型)Ø和跳字模型一样,当序列长度T较大时,我们通常在每次迭代时随机采样一个较短的子序列来计算有关该子序列的损失。然后,根据该损失计算词的梯度并迭代词关任一背景词。通过微分,我们可以计算出上式中条件概率的对数有voi(i=1,2m)的梯度为:Ø该式也可写作Ø随机采样的
32、子序列有关其他词的梯度同理可得。和跳字模型一样,训练结束后,对于词典中的任一索引为i的词,我们均得到该词作为背景词和中心词的两组词型的背景词vi和ui。在自然语言处理应用中,我们会使用连续词袋模。Word2vec的训练方式4问题pSkip-Gram:pCBOW:近似训练法p我们可以看到,无论是跳字模型还是连续词袋模型,每一步梯度计算的开销与词典V的大小相关。当词典较大时,例如几十万到上百万,这种训练方法的计算开销会较大。因此, 小计算开销。常用的近似训练法包括:使用近似的方法来计算这些梯度,从而减pØØ负采样层序 softmax负采样p负采样ØØ以跳字模
33、型为例讨论负采样实际上,词典V的大小之所以会在损失中出现,是因为给定中心词wc生成背景词wo的条件概率P(wowc) 使用了softmax运算,而softmax运算正是考虑了背景词可能是词典中的任一词,并体现在分母上。p不妨换个角度考虑给定中心词生成背景词的条件概率。我们先定义噪声词分布P(w),接着假设给定中心词wc生成背景词wo由以下相互来近似:Ø组成中心词wc和背景词wo同时出现时间窗口。中心词wc和第1个噪声词w1不同时出现在该时间窗口(噪声词w1按噪声词分布P(w)随机生成,且假设不为背景词wo)。中心词wc和第K个噪声词wK不同时出现在该时间窗口(噪声词 wK 按噪声词分
34、布P(w)随机生成,且假设不为背景词wo)。ØØØ负采样Ø下面,我们可以使用同时出现在该训练窗口的概率:函数来表达中心词WC和背景词WOØ那么,给定中心词wc生成背景词wo的条件概率的对数可以近似为:Ø假设噪声词wk在词典中的索引为ik,上式可改写为:负采样Ø因此,有关给定中心词wc生成背景词wo的损失是:Ø假设词典V很大,每次迭代的计算开销由O(|V|)变为O(K)。当我们把K取较小值时,负采样每次迭代的计算开销将较小。Ø当然,我们也可以对连续词袋模型进行负采样。有关给定背景词生成中心词wc的损失:负采
35、样Ø在负采样中可以近似为:Ø同样,当我们把 K 取较小值时,负采样每次迭代的计算开销将较小。层序 softmaxØ层序softmax是另一种常用的近似训练法。它利用了二叉树这一数据结构。树的每个叶子节点代表着词典V中的每个词。我们以图为例来描述层序softmax的工作机制:n(w3,1)n(w3,2)n(w3,3).W1W2W3W4W|V|层次softmax树,每个叶子节点代表着字典中的每个词层序 softmaxn(w3,1)n(w3,2)n(w3,3).W1W2W3W4W|V|Ø假设L(w)为从二叉树的根节点到词w的叶子节点的路径(包括上的节点数。设
36、n(w,j)为该路径上第j个节点,并设该节点的点)为un(w,j)。以上图为例,L(w3)=4。设词典中的词wi的词为vi。那么跳字模型和连续词袋模型所需要计算的给定词wi生成词w的条件概率为:层序 softmaxn(w3,1)n(w3,2)n(w3,3).W1W2W3W4W|V|Ø 其中(x)=1/(1+exp(x),leftChild(n)是节点n的节点,如果x为真,x=1;反之 x=1。由于(x)+(x)=1,给定词wi生成词典V中任一词的条件概率之和为 1 这一条件也将满足:n(w3,1)层序 softmaxn(w3,2)n(w3,3).W1W2W3W4W|V|Ø让
37、我们计算上图中给定词wi生成词w3的条件概率。我们需要将wi的词vi由根节和根节点到w3路径上的非叶子节点一一求内积。由于在二叉点到叶子节点w3的路径上需要向左、向右、再向左地遍历(图中红线的路径),我们得到Ø在使用softmax的跳字模型和连续词袋模型中,词和二叉非叶子节点是需要学习的模型参数。假设词典V很大,每次迭代的计算开销由O(|V|) 下降至O(log2|V|)。Word2Vec实战5Word2Vec实战p Tensorflow实现word2vecp Gensim中word2vec的使用Word2Vec实战p在gensim中,word2vec相关的API都在包gensim.
38、ms.word2vec中。和算法有关的参数都在类gensim.m 算法需要注意的参数有:s.word2vec.Word2Vec中。pØØ1) sentences: 我们要分析的语料,可以是一个列表,或者从文件中遍历读出。2) size: 词的维度,默认值是100。这个维度的取值一般与我们的语料的大小相关,如果是不大的语料,比如小于100M的文本语料,则使用默认值一般就可以了。如果是超大的语料,建议增大维度。Ø3) window:即词上下文最大距离,这个参数在我们的算法原理篇中标记为,window越大,则和某一词较远的词也会产生上下文关系。默认值为5。在实际使用中,
39、可以根据实际的需求来动态调整这个window的大小。如果是小语料则这个值可以设的更小。对于一般的语料这个值推荐在5,10之间。4) sg: 即我们的word2vec两个模型的选择了。如果是0,则是CBOW模型,是1则是Skip-Gram 模型,默认是0即CBOW模型。5) hs: 即我们的word2vec两个解法的选择了,如果是0, 则是Negative Sampling,是1的话并且负采样个数negative大于0, 则是Hierarchical Softmax。默认是0即Negative Sampling。ØØWord2Vec实战p算法需要注意的参数有:Ø6)
40、 negative:即使用Negative Sampling时负采样的个数,默认是5。推荐在3,10之间。这个参数在我们的算法原理篇中标记为neg。Ø7) cbow_mean: 仅用于CBOW在做投影的时候,为0,则算法中的为上下文的词之和,为1则为上下文的词的平均值。在我们的原理篇中,是按照词的平均值来描述的。个人比较喜欢用平均值来表示,默认值也是1,不推荐修改默认值。Ø8) min_count:需要计算词的最小词频。这个值可以去掉一些很生僻的低频词,默认是5。如果是小语料,可以调低这个值。9) iter: 随机梯度下降法中迭代的最大次数,默认是5。对于大语料,可以增大这
41、个值。10) alpha: 在随机梯度下降法中迭代的初始步长。算法原理篇中标记为,默认是0.025。11) min_alpha: 由于算法支持在迭代的过程中逐渐减小步长,min_alpha给出了最小的迭代步长值。随机梯度下降中每轮的迭代步长可以由iter,alpha, min_alpha一起ØØØ得出。这部分由于不是word2vec算法的内容,因此在原理篇我们没有提到。对于大语料,需要对alpha, min_alpha,iter一起调参,来选择合适的三个值。6Fasttext(高效的文本分类和表示工具)Fasttext(高效的文本分类和表示工具)p Fasttex
42、t的Ø 是fastText是FAIR(AIResearch) 在2016年推出的一款文本分)上是这样介绍的:类与化工具。它的官网(FastText users tois an open-source, free, lightweightlibrary that allows learn text representations and text classifiers.It workson standard, generic hardware. Msize toeven fit on mobile devices.s can later be reduced inØ fas
43、tText开源、轻量级,适用于文本分类和文本化表示场景,运行于标准硬件环境。裁剪压缩过的模型甚至可以轻松跑在移动设备上。Fasttext(高效的文本分类和表示工具)p Fasttext最惊艳的地方在于,和最前沿深度神经网络模型相比,它在分类精度等指标毫不逊色的情况下,把训练和推断速度降低了几个数量级!按的报告,在普通多核CPU上,10亿词的文本训练时间小于10分钟,50万句子分到31.2万类别用时小于1分钟。p Fasttext能够做到效果好,速度快,主要依靠两个:一是利用了词内的n-gram信息(subword n-gram information),二是用到了层次化Softmax回归(Hi
44、erarchical Softmax)的训练trick。Subword n-gram lnformationp Subword n-gramlnformationØ思想所属EnrichingWordVectorswith Subword Information大意是对于输入的上下文中的每一个词,都进行基于词的n-gram,之后将所有的n-gram和原词相加,来代表上下文信息。这种做法的好处是英文单词中,可以由 前缀或者后缀等语言形态上的相似性,在词与词之间建立。Subword n-gram lnformationp 在fastText的工作之前,大部分的文本化的工作,都是以词汇表中的
45、单词作为基本单元来进行训练学习的。这种想法非常自然,但也会带来如下的问题:Ø低频词、罕见词,由于在语料中本身出现的次数就少,得不到足够的训练,效果不佳;未登录词,如果出现了一些在词典中都没有出现过的词,或者带有某些Ø拼写错误的词,传统模型更加为力。p fastText引入了subword n-gram的概念来解决词形变化(morphology) 的问题。直观上,它将一个单词打散到字符级别,并且利用字符级别的n-gram信息来捕捉字符间的顺序关系,希望能够以此丰富单词内部更细微的语义。我们知道,西方语言文字常常通过前缀、后缀、字根来构词,汉语也有单字表义的传统,所以这样的做法
46、听起来还是有一定的道理。Subword n-gram lnformationp举个例子。对于一个单词“加入<>两个字符,即变形为“<”,为了表达单词前后边界,我们>”。假设我们希望抽取所有的tri-gram信息,可以得到如下集合:G = <go, goo, oog,ogl, gle, le>在实践中,我们往往会同时提取单词的多种n-gram信息,如2/3/4/5-pgram。这样,原始的一个单词合所表达。,就被一个字符级别的n-gram集p 在训练过程中,每个n-gram都会对应训练一个,而原来完整单词的词就由它对应的所有n-gram的求和得到。所有的单词以
47、及字符级别的n-gram会同时相加求平均作为训练模型的输入。p 从实验效果来看,subword n-gram信息的加入,不但解决了低频词未登录词的表达的问题,而且对于最终任务精度一般会有几个百分点的提升。Hierarchical SoftmaxpSoftmax大家都比较熟悉,它是逻辑回归(logisticregression)在多分类任务上的推广,是我们训练的神经网络中的最后一层。一般地, Softmax以隐藏层的输出h为输入,经过线性和指数变换后,再进行全局的归一化处理,找到概率最大的输出项。当词汇数量V较大时(一般会到几十万量级),Softmax计算代价很大,是O(V)量级。层次化的Sof
48、tmax的思想实质上是将一个全局多分类的问题,转化成为了若干个二元分类问题,从而将计算复杂度从O(V)降到O(logV)。每个二元分类问题,由一个基本的逻辑回归单元来实现。如下图所示,从根结点开始,每个中间结点(标记成灰色)都是一个逻辑回归单元,pp根据它的输出来选择是向左走还是向右走。下图示例中实际上走了一条“左-左-右”的路线,从而找到单词w。而最终输出单词w的概率,等于中间若干逻辑回归单元输出概率的连乘积。Hierarchical Softmaxp 每个二元分类问题,由一个基本的逻辑回归单元来实现。如下图所示,从根结点开始,每个中间结点(标记成灰色)都是一个逻辑回归单元,根据它的输出来选
49、择是向左走还是向右走。下图示例中实际上走了一条“左-左-右”的路线,从而找到单词w。而最终输出单词w的概率,等于中间若干逻辑回归单元输出概率的连乘积。Hierarchical Softmaxppp其中表示sigmoid函数ch(n)表示n节点的是一个特殊函数,被定义为:Hierarchical Softmaxp上图中,灰色显示的是从根节点到叶子节点w2的路径L(w2)=4,则P(w2) 可表示为:P(w 2 ) = P(n(w 2 ,1),left)P(n(w 2 ,2),left) · P(n(w 2 ,3),right)p于是,从根节点走到叶子节点 w2,实际上是在做了3次二分类
50、的逻辑回归。通过分层的Softmax,计算复杂度一下从|K|降低到log|K|。p模型对比p 模型结构模型对比p模型结构Ø上图没有展示词的训练过程。可以看到,和CBOW一样,fastText模型也只有三层:输入层、隐含层、输出层(Hierarchical Softmax),输入都是多个经都是对多个词表示的单词,输出都是一个特定的target,隐含层的叠加平均。Ø不同的是,CBOW的输入是目标单词的上下文,fastText的输入是多个单词及其n-gram特征,这些特征用来表示单个文档;CBOW的输入单词被onehot编码过,fastText的输入特征是被embedding过;
51、CBOW的输出是目标词汇,fastText的输出是文档对应的类标。Ø值得注意的是,fastText在输入时,将单词的字符级别的n-gram作为额外的特征;在输出时,fastText采用了分层Softmax,大大降低了模型训练时间。FastText文本分类实战classifier.labels classifier.label_prefix classifier.dim classifier.ws classifier.epoch classifier.min_count classifier.neg classifier.word_ngrams classifier.loss_nam
52、e classifier.bucket classifier.minn classifier.maxn classifier.lr_update_rate classifier.t classifier.encoding# # # # # # # # # # # # # # # # # #List of labels Prefix of the label Size of word vectorSize of context window Number of epochsMinimal number of word occurencesNumber of negative Max length
53、 of word Loss function name Number of buckets Min length of char Max length of charsampled ngramngramngramRate of updates for the learningrateValue of Encoding Test thesampling thresholdthat used by classifierclassifierclassifier.test(filename,classifier.predict(texts,k)k)Predict the most likely lab
54、el Predict the most likely label includeclassifier.predict_proba(texts,k)their probability7Glove(一种更别致的词表示)Glove是什么?p什么是GloveØGloVe的全称叫Global Vectors for Word Representation,它是一个基于全局词频统计(count-based & overall statistics)的词表征(word representation)工具,它可以把一个单词表达成一个由实数组成的,这些捕捉到了单词之间一些语义特性,比如相似性(similarity)、类比性(analogy)等。我们通过对的运算,比如欧几里得距离或者cosine相似度,可以计算出两个单词之间的语义相似性。Stanford NLP Group的Jeffrey Pennington, Richard Socher, Christopher D. Manning在2014年的Empirical Methods i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年高科技研发中心厂房租赁合同
- 2025版墙纸出口贸易合同范本
- 2025版物流仓储生产劳务承包合同样本
- 2025年度电子商务授权委托书合同
- 2025年度互联网平台数据使用权转让合同
- 2025年大学校园外教聘任与管理服务合同
- 2025年贵州酱酒集团有限公司招聘考试笔试试题(含答案)
- 量子电阻测量工具创新创业项目商业计划书
- 自动驾驶车辆维修助手创新创业项目商业计划书
- 2025年抚远市消防员考试笔试试题(含答案)
- 网络安全风险评估与应对策略手册
- DB15∕T 3644-2024 国有企业阳光采购规范
- 2025年小升初音标测试题及答案
- 2025年高校辅导员招考笔试真题及答案
- 慎交友-不交损友课件
- 宾馆前台培训课件
- 消防安全专项施工方案及应急预案
- WST856-2025安全注射标准解读
- MSA-GRR数据自动生成工具
- 沉香种植可行性研究报告
- 光纤通信施工难点措施
评论
0/150
提交评论