CN107273352A - 一种基于Zolu函数的词嵌入学习模型及训练方法 - Google Patents
一种基于Zolu函数的词嵌入学习模型及训练方法 Download PDFInfo
- Publication number
- CN107273352A CN107273352A CN201710421488.9A CN201710421488A CN107273352A CN 107273352 A CN107273352 A CN 107273352A CN 201710421488 A CN201710421488 A CN 201710421488A CN 107273352 A CN107273352 A CN 107273352A
- Authority
- CN
- China
- Prior art keywords
- mrow
- word
- msubsup
- mover
- function
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000006870 function Effects 0.000 title claims abstract description 143
- 238000012549 training Methods 0.000 title claims abstract description 116
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000003780 insertion Methods 0.000 title abstract 4
- 230000037431 insertion Effects 0.000 title abstract 4
- 239000013598 vector Substances 0.000 claims abstract description 108
- 230000004913 activation Effects 0.000 claims abstract description 35
- 238000005070 sampling Methods 0.000 claims abstract description 34
- 238000013507 mapping Methods 0.000 claims abstract description 16
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 5
- 238000012545 processing Methods 0.000 claims description 23
- 230000009191 jumping Effects 0.000 claims description 9
- 238000010276 construction Methods 0.000 claims description 7
- 101100043731 Caenorhabditis elegans syx-3 gene Proteins 0.000 claims description 5
- 101100535673 Drosophila melanogaster Syn gene Proteins 0.000 claims description 5
- 101100368134 Mus musculus Syn1 gene Proteins 0.000 claims description 5
- 239000000203 mixture Substances 0.000 claims description 5
- 241000764238 Isis Species 0.000 claims description 4
- 238000003491 array Methods 0.000 claims description 4
- 229910052810 boron oxide Inorganic materials 0.000 claims description 2
- JKWMSGQKBLHBQQ-UHFFFAOYSA-N diboron trioxide Chemical compound O=BOB=O JKWMSGQKBLHBQQ-UHFFFAOYSA-N 0.000 claims description 2
- 238000003058 natural language processing Methods 0.000 abstract description 2
- 238000004321 preservation Methods 0.000 abstract 1
- 235000013372 meat Nutrition 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 102100022166 E3 ubiquitin-protein ligase NEURL1 Human genes 0.000 description 5
- 101000973232 Homo sapiens E3 ubiquitin-protein ligase NEURL1 Proteins 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 2
- 239000010931 gold Substances 0.000 description 2
- 229910052737 gold Inorganic materials 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 240000004808 Saccharomyces cerevisiae Species 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005470 impregnation Methods 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000877 morphologic effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/237—Lexical tools
- G06F40/242—Dictionaries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/36—Creation of semantic tools, e.g. ontology or thesauri
- G06F16/374—Thesaurus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Probability & Statistics with Applications (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Machine Translation (AREA)
Abstract
一种基于Zolu函数的词嵌入学习模型及训练方法,属于自然语言处理、词嵌入、词相似度计算以及词表达准确度技术领域。包括如下步骤:步骤1)接收及配置各种参数;步骤2)建立基于Zolu函数的激活函数表;步骤3)构建词汇表;步骤4)初始化各词向量;步骤5)构建霍夫曼二叉树,并根据词频给每个词设定在二叉树的位置;步骤6)根据词频建立负采样映射表;步骤7)对步骤3)词向量用基于Zolu函数的不同学习模型进行词嵌入训练;步骤8)判断进行聚类与否操作保存训练结果。本发明所提的学习模型与Mikolov所提的CBOW和SG模型以及与LL‑CBOW和LL‑SG算法相比,在词准确度及相似度方面均有所提高。
Description
技术领域
本发明涉及一种基于Zolu函数的词嵌入学习模型及训练方法,属于自然语言处理、词嵌入、词相似度计算以及词表达准确度技术领域。
背景技术
自然语言学习模型是神经网络模型的一种典型应用。其发展过程中有如下几个里程碑:
(1)Bengio在2003年将神经网络分为输入层(词语id),投影层(projection 层,由词语id转换为词向量),隐含层和输出层,此神经网络的复杂度如下:
Q=N*D+N*D*H+H*V;
其中N*D为输入层和投影层之间的权重,N表示上下文长度,不是n-gram中的n,D是输入词的实数表示的维度;N*D*H计算出了投影层到隐含层之间的权重数量,H是隐含层的节点数目,H*V表示隐含层和输出层之间的权重数目,V 是输出层的节点数目;此模型在n-gram模型基础上,引入词向量的关联度,是后续所提模型的基础;
(2)Mikolov2010年提出Recurrent Neural Network Language Model(RNNLM) 模型的复杂度为Q=H*H+H*V;
(3)2013年,Mikolov在上述神经网络模型基础之上,提出了CBOW和SG 学习模型,其本质是一种log-bilinear模型。此模型利用Huffman二叉树来代替原模型中的线性结构,同时对输出层进行了改造,使得神经网络的复杂度降低为H*log(V),将神经网络训练语言模型的效率提升了40%;
(4)2013年10月,Mikolov在NIPS会议上对连续词袋(Continuous Bag-of-Words,CBOW)及跳词(Skip-Gram,SG)模型中的负采样(Negative Sampling,NS)和分层Softmax(Hierarchical Softmax,HS)模块进行了分析,并同时公开了word2vec源代码。从而引发了对这一强大的词向量表示工具的广泛分析与研究。
Word2vec作为浅层深度学习模型的代表之作,极大降低了语言模型以及词向量训练的复杂度,同时由于将词向量之间的相关含义加入到了训练过程中,使得词向量的训练结果有着良好的相似度匹配关系。也正因为word2vec可以在向量空间上将含义相近的词的距离缩短,使得该工具在“推荐”方面拥有了广泛的应用市场。例如在输入法中,对于成型的自然语言,用户只需输入前面的个别字或者是词,输入法可以自动通过推断来推荐出用户接下来可能要打的语句。这一应用极大的便利了电脑输入法的使用。
继2013年后,鲜有文章对Mikolov所提的CBOW及SG模型进行改进,大部分是将其所提模型应用于各个领域中,往往均能取得良好的效果。因为,所提模型解决了维度灾难问题,能够高效进行降维处理,训练样本充足情况下,相似度及准确度性能也比现有其他模型都高。因此,随着近几年的应用,人们发现Word2vec代码及其揭示的CBOW和SG学习模型,是近乎“完美”的;改进空间不大。
但依然有相关改进文献产生,经过资料检索,有如下几项:
1)文章“Implicitly Incorporating Morphological Information into wordEmbedding”在Mikolov提出模型基础上引入词素:即前缀、后缀和词根,并基于此提出了MWE-A、MWE-S和MWE-M三种模型。文章将词素含义作为计算词向量空间距离的一个因素;从实验结果来看,在wordsim-353黄金准则下,比CBOW 模型在准确度性能方面提升了5%,在RG-65黄金准则下,比原CBOW在准确度性能方面提升了7%。
2)文献“Too/Two Simple Adaptations of Word2vec for Syntax Problems”结合词向量顺序进一步增加词向量计算的关联度。也使得CBOW模型性能得到了一定的提升。
发明内容
本发明的目的在于进一步提升现有词嵌入模型的准确度和相似度性能,提出了一种基于Zolu函数的词嵌入学习模型及训练方法。
一种基于Zolu函数的词嵌入学习模型及训练方法,包括一种基于Zolu函数的词嵌入学习模型及一种基于Zolu函数的词向量训练方法。
一种基于Zolu函数的词嵌入学习模型,从功能上又具体包括ZL-CBOW模型和ZL-SG模型;还包括HS模式和NS模式;其中,HS指Hierarchical Softmax 即分层Softmax,NS指Negative Sampling,即负采样;SS即Sub Sampling是 NS可选的功能组成之一,可进一步设定和选择实现SS功能;
一种基于Zolu函数的词嵌入学习模型,从组成上包括参数输入模块、初始化模块、激活函数表建立模块、构建词汇表模块、霍夫曼二叉树构建模块、词向量处理模块、词向量训练模块以及聚类处理模块;
一种基于Zolu函数的词嵌入学习模型,各模块功能如下:
参数输入模块的功能是接收以训练文件名、输出文件名、Batch大小、窗口尺寸、输出的词向量维数、采样阈值、负采样数目、HS选择、CBOW选择以及循环次数为主的输入参数;参数输入模块的功能还包括配置以debug模式、Binary 输出选择、学习率、线程数、最小词频、聚类簇个数、建立词典结构体以及哈希表分配为主的参数;
其中,输出文件名是存储训练好的词向量的文件;CBOW选择为0时使用 ZL-SG模型,为1时,选择ZL-CBOW模型;采样阈值是指词频超过多少将被采样;负采样数目的大小控制着负采样映射表的建立;HS选择为1时,选择 HS模式,为0时,为NS模式;
初始化模块的功能是接收参数输入模块的变量及参数,并且分别针对HS模式和NS模式申请动态数组;
激活函数表建立模块的功能是基于Zolu函数建立激活函数表,并且存储到expTable数组中;构建词汇表模块的功能是构建词汇表;
霍夫曼二叉树构建模块的功能是构建霍夫曼二叉树;
词向量处理模块的功能是在负采样数目大于1时,为每个单词建立能量对应表,即负采样映射表;
词向量训练模块的功能是基于Zolu函数展开ZL-CBOW学习模型的HS或 NS;以及ZL-SG学习模型的HS或NS模式词训练;
聚类处理模块的功能是对词向量训练结果基于K-means算法进行分类。
一种基于Zolu函数的词嵌入学习模型,各模块的连接关系如下:
参数输入模块与初始化模块相连;初始化模块与激活函数表建立模块相连;构建词汇表模块与霍夫曼二叉树构建模块相连;霍夫曼二叉树构建模块与词向量处理模块相连;词向量处理模块与词向量训练模块相连;激活函数表建立模块与词向量训练模块相连;词向量训练模块与聚类处理模块相连。
一种基于Zolu函数的词向量训练方法,包括如下步骤:
步骤一、参数输入模块接收各种词训练参数并配置各种参数;
其中,词训练参数主要包括:训练文件名、输出文件名、Batch大小、窗口尺寸、输出的词向量维数、采样阈值、负采样数目、HS选择、CBOW选择以及循环次数;
其中,训练文件名也可以不输入,如果不输入训练文件名,则在构建词汇表时,通过读原有词库来生成词汇表;
其中,配置的各种参数包括debug模式、Binary输出选择、学习率、线程数、最小词频、聚类簇个数、建立词典结构体以及哈希表分配;
步骤二、激活函数表建立模块建立激活函数表;
其中,激活函数表基于如下公式(1)中的Zolu函数:
其中,表格大小可以根据精度需要进行调整,Zolu函数也可以替换为
还可以替换成其他输入范围不受限制,输出值为0到1之间的激活函数;
步骤三、构建词汇表模块构建词汇表,具体分为如下两种情况:
3.1从原有词库中生成词汇表;
具体调用ReadVocab()函数实现;
3.2从训练文本中提取词汇表;
具体调用LearnVocabFromTrainFile()函数实现;
其中,原有词库生成词汇表,仅发生在无训练文本输入文件情况下;
步骤四、初始化模块初始化各词向量;
初始化的各词向量包括syn0、syn1、syn1neg并给syn0赋予初始值;还包括给HS和NS模式申请动态数组;
步骤五、霍夫曼二叉树构建模块构建映射层到输出层的权重,即生成二叉树,并根据词频给每个词设定其在霍夫曼二叉树的位置;
生成二叉树具体通过CreateBinaryTree函数实现,生成一棵节点数为
2*vocab_size+1个节点的霍夫曼二叉树;
其中,步骤四和步骤五具体通过Initnet()函数实现;
步骤六、判断是否为NS模式,若为NS,则根据词频建立负采样映射表,若不是NS模式,跳过此步骤,直接执行步骤七;步骤六具体为:
判断是否为NS通过判断步骤一参数中的负采样数目是否大于零,若大于零表明采用要建立负采样映射表,否则不建立;
负采样映射表具体通过InitUnigramTable()函数实现,在建立词频映射表时,优选的词频指数为0.75次方,也可以是其他数值;
步骤七、词向量训练模块对步骤三构建的词向量通过基于Zolu函数的不同词训练模型进行训练,具体为:
判断步骤一中的CBOW参数选项是0还是1,并根据CBOW参数选项决定执行7.1还是7.2操作:
7.1CBOW参数选项为1时,则进一步判断HS选择是0还是1,并进行如下操作:
7.1A当HS为1时,跳入ZL-CBOW模型的HS模式进行词向量训练;
其中,ZL-CBOW模型的HS模式下词向量训练xw和的更新公式分别为(2) 和(3):
其中,xw代表更新的词向量;代表从根节点出发到w路径上第j-1个非叶子节点对应的向量,为更新参数;代表从根节点出发到w路径上第j个节点对应的编码,具体含义为:
表明第j个节点是第j-1个节点的子节点,对应编码为0,条件概率表达为:
表明第j个节点不是第j-1个节点的子节点,对应编码为1,
ηθ和ηw分别代表动态更新的和xw的学习率,两者初始值是相同的,优选的初始值是0.025,也可以不同;中的参数T代表xw和的内积;
7.1B当HS为0时,跳入ZL-CBOW模型的NS模式进行词向量训练;
其中,ZL-CBOW模型在NS模式下词向量训练的xw和θu的更新公式分别为(4) 和(5):
其中,xw代表更新的词向量;θu代表当前样本u对应的辅助向量,为待训练参数;Lw(u)=1代表u=w,即u是正样本,否则Lw(u)=0代表u≠w,即u是负样本;和分别代表动态更新的θu和xw的学习率,两者初始值可以相同,也可以不同,若需要设置不同的初始学习率,需要分别设置两个学习率参数,word2vec源代码中采用的是相同的初始学习率初值及动态更新值;中的参数T代表xw和的内积;
7.2CBOW参数选项为0时,则进一步判断HS选择是0还是1,并进行如下操作:
7.2A当HS为1时,跳入ZL-SG模型中的HS模式进行词向量训练;
其中,更新的词向量vw及待更新参数分别表示如下公式(6)和(7);
其中,vw代表更新的词向量,每处理完Contex(w)中的一个词中的更新一次词向量vw;是待更新参数;和分别代表动态更新的和vw的学习率,两者可以相同,也可以不同;中的参数T代表vw和的内积;
代表从根节点出发到路径上第j-1个非叶子节点对应的向量,为节点的路径长度;代表从根节点出发到w路径上第j个节点对应的编码,具体含义为:
代表第j个节点是第j-1个节点的子节点,对应编码为0,条件概率设置为:
表明第j个节点不是第j-1个节点的子节点,对应编码为1,条件概率被设置为:
7.2B当HS为0时,跳入ZL-SG模型的NS模式进行词向量训练;
其中,ZL-SG模型在NS模式下词向量训练的和待更新参数的更新公式分别为(8)和(9):
其中,代表更新的词向量,每处理完中的一个词,更新一次;代表即是正样本,否则代表即是负样本;和分别代表动态更新的和的学习率;NEG(w)代表w的负样本集合;
步骤八、聚类处理模块判断步骤一配置各种参数中的聚类参数是否聚类,并根据聚类与否,决定是否进行聚类,再保存训练结果,具体操作为:
8.A若聚类参数K-means为1,则进行聚类操作后再保存聚类及词向量训练结果;
8.B若聚类参数K-means为0,则保存词向量训练结果;
至此,经过步骤一到步骤八,完成了一种基于Zolu函数的词向量训练方法。
有益效果
本发明所述的一种基于Zolu函数的词嵌入学习模型及训练方法,与现有词嵌入模型与方法相比,具有如下有益效果:
1.本发明将Zolu激活函数应用于词嵌入领域,并提出了ZL-CBOW及 ZL-SG两个词嵌入训练模型,与现有Mikolov所提模型及LL-CBOW模型相比,在词相似度方面有所提高;
2.本发明所述模型及词嵌入方法在训练准确度方面也比Mikolov所提的 CBOW以及LL-CBOW有提高;
3.本发明所述的一种基于Zolu函数的词嵌入学习模型及训练方法,在实现复杂度方面,与Mikolov所提模型相比,处于同一数量级,也可以适用于极大规模语料库的训练;
4.本发明所提的一种基于Zolu函数的词嵌入学习模型及训练方法,可应用于各种不同的“推荐”功能,即指从用户的某一特点出发,通过计算相似度从而为用户推荐契合其特点的类似商品、书籍、音乐等;例如:依照用户网购的足迹为其推荐可能喜欢的物品,依照音乐APP用户收藏的歌曲为其推荐可能喜欢的歌曲等。
附图说明
图1是本发明一种基于Zolu函数的词嵌入学习模型及实施例1中的模型组成示意图;
图2是本发明一种基于Zolu函数的词向量训练方法及实施例1中的训练方法流程图;
图3是本发明一种基于Zolu函数的词向量训练方法步骤7中的词向量训练流程图。
具体实施方式
本发明所述模型和方法是对Word2vec词嵌入模型的改进,Word2vec源代码下载网址如下:https://code.google.com/p.word2vec.
提出Word2vec模型的Mikolov分别通过如下两篇文章对Word2vec模型进行了较为细致的阐述:
[1]Tomas Mikolov,Kai Chen,Greg Corrado,and Jeffrey Dean. Efficientestimation of word representations in vector space.CoRR, abs/1301.3781,2013.
[2]T.Mikolov etc.Distributed Representations of words and phrases andtheir compositionality.Oct.2013.
然而,依然有一些作者写了很多中文和英文的描述,如:
[3]Yoav Goldberg and Omer Levy,word2vec Explained:Deriving Mikolov etal.’s Negative-Sampling Word-Embedding Method.
[4]http://blog.csdn.net/itplus/article/details/37998797
本发明中的公式符号及含义描述与[4]文献中一致,[4]文献是对word2vec 数学原理的深入剖析,如有需要参考的,请详细阅读上述[1]到[4]文献。
下面再结合附图和实施例对本发明做进一步说明和详细描述。
实施例1
本实施例结合附图1和附图2,叙述了本发明一种基于Zolu函数的词嵌入学习模型及训练方法的详细组成与词训练流程。
图1是本发明一种基于Zolu函数的词嵌入学习模型及实施例1中的模型组成示意。从图1可以看出参数输入模块与初始化模块相连;初始化模块与激活函数表建立模块相连;构建词汇表模块与霍夫曼二叉树构建模块相连;霍夫曼二叉树构建模块与词向量处理模块相连;词向量处理模块与词向量训练模块相连;激活函数表建立模块与词向量训练模块相连;词向量训练模块与聚类处理模块相连。
图2是本发明一种基于Zolu函数的词向量训练方法的程图。
从图2可以看出一种基于Zolu函数的词向量训练方法,包含如下步骤:
步骤A:输入及配置参数,具体包括输入参数和配置参数:
其中,输入参数为:训练文件名、输出文件名、Batch大小、窗口尺寸、采样数目、负采样数目、是否使用HS、是否使用CBOW以及循环次数;
配置参数为:debug模式、Binary输出、CBOW初始学习率、SG初始学习率、线程数、最小词频删除设置、是否聚类、词典结构体以及哈希表分配;
步骤B:计算激活函数值,并存到expTable中;
其中,激活函数采用Zolu函数,即:
这里,tanh(x)=2σ(2x)-1,其中,σ(x)是sigmoid激活函数,表达式为:
步骤C:调用TrainModel函数,具体为:
步骤C.1构建词汇,具体又包括两种情况:
C.1A从原有词库中生成,通过调用ReadVocab()函数实现;
C.1B从训练文本中提取,通过调用LearnVocabFromTrainFile()函数实现;
步骤C.2初始化网络,具体通过调用InitNet()函数来实现,具体为:
分别针对HS和NS申请动态数组,建立Huffman树,即哈夫曼树,再对每个单词进行编码;
步骤C.3判断是否是负采样,即NS为1,如果是,则调用InitUnigramTable() 函数,为每个单词建立能量分布表;若否,跳过此步骤;
步骤C.4建立多线程,并进行词训练,词训练的具体流程如图3;
步骤C.5词训练结束后,释放临时变量,退出;
步骤D判断是否聚类,若需要聚类,调用K-means算法聚类;否则,跳过聚类过程,直接保存词向量训练结果;
至此,从步骤A到步骤D,完成了一种基于Zolu函数的词向量训练方法。
图3是本发明一种基于Zolu函数的词向量训练方法步骤7以及本实施例中步骤C.4的具体流程,对应word2vec源代码中TrainModelThread函数的操作。从图3可以看出,步骤C.4,具体又包括:
步骤I)给neu1及nue1e分配空间;
其中,neu1对应CBOW相应公式中的xw,对应SG模型公式中的vw及 nue1e对应[4]文献中伪代码中的e,代表隐藏层中的误差向量;
累加word_count_actual,并更新last_word_count;
步骤II)打开Train_file文件,判断Debug_mode值,若Debug_mode值大于1,则显示当前学习率值、处理流程及所在线程;否则不显示;
步骤III)更新alpha学习率;其中,学习率的更新是每训练10000个词更新一次;也可以通过步骤A中的配置参数修正这个数值10000为别的数值;
步骤IV)从Train_file读入一个词;
步骤V)对高频词进行下采样subsampling;
步骤VI)判断sentence是否超过1000字,若超过了就不处理;
步骤VII)判断是否CBOW,并根据判断结果进行相应操作,具体为:
VII.A若CBOW=1,则跳到步骤VIII),进入CBOW;
VII.B否则CBOW=0,则跳到步骤VIIII),进入SG;
步骤VIII)判断是否HS,并根据判断结果进行相应操作,具体为:
VIII.A若HS=1,则进行ZL-CBOW学习模型的HS模式训练,具体通过公式(2)和公式(3)进行词嵌入更新;
VIII.B否则HS=0,则进行ZL-CBOW学习模型的NS模式训练,具体通过公式(4)和公式(5)进行词嵌入更新;
步骤VIIII)判断是否HS,并根据判断结果进行相应操作,具体为:
VIIII.A若HS=1,则进行ZL-SG学习模型的HS模式训练,具体通过公式 (6)和公式(7)进行词嵌入更新;
VIIII.B否则HS=0,则进行ZL-SG学习模型的NS模式训练,具体通过公式(8)和公式(9)进行词嵌入更新;
步骤X)训练结束后,释放临时变量,退出TrainModelThread函数。
实施例2
本实施例具体阐述了词嵌入训练时的ZL-CBOW、ZL-SG及激活函数对应的代码。
ZL-CBOW模型中xw和更新的源代码
if(cw){
for(c=0;c<layer1_size;c++)neu1[c]/=cw;
if(hs)for(d=0;d<vocab[word].codelen;d++){
f=0;
l2=vocab[word].point[d]*layer1_size;
//Propagate hidden->output
for(c=0;c<layer1_size;c++)f+=neu1[c]*syn1[c +l2];
if(f<=-MAX_EXP)f=0;
else if(f>=MAX_EXP)f=1;
else f=expTable[(int)((f+MAX_EXP)*(EXP_TABLE_SIZE /MAX_EXP/2))];
//'g'is the gradient multiplied by the learning rate
g=(1-2*vocab[word].code[d]-f)*alpha;
//Propagate errors output->hidden
for(c=0;c<layer1_size;c++)neu1e[c]+=g*syn1[c +l2];
//Learn weights hidden->output
for(c=0;c<layer1_size;c++)syn1[c+l2]+=g* neu1[c];
}
ZL-CBOW模型中Zolu激活函数的查找表建立源代码
ZL-SG模型中Xw和更新的源代码
ZL-SG模型中Zolu激活函数的查找表建立源代码
实施例3
本实施例叙述了本发明一种基于Zolu函数的词嵌入学习模型及训练方法,与Mikolov所提模型及及LL-CBOW模型相比,在词相似度方面的提高。
在该功能中,word2vec依据输入的一个词,将其转换为对应词向量,通过对词向量的数学运算来找出与其有一定相似度的词汇,按照相似度从高到低罗列出来作为结果。在该项功能的测试中,选择“meat”单词为样例,具体测试结果如表1所示。
表1相似词推荐结果
从表1可以看出,输入meat,我们所提出的ZL-CBOW模型训练结果显示前 5个都是“肉”,且都属于meat的相似词;而“Janod Killian;Mohamed Morchid; Richard Dufour;Georges Linarès A log-linear weighting approach in the Word2vec space forspoken language understanding IEEE Spoken Language Technology Workshop(SLT)Year:2016Pages:356-361,DOI: 10.1109/SLT.2016.7846289”提出的LL-CBOW模型显示结果中,第四个和第五个已经不是“meat”了;CBOW显示结果中,前四个是“meat”。
可见,本专利所提的ZL-CBOW模型的相似词推荐结果比CBOW和LL-CBOW都要好。
实施例4
本实施例叙述了本发明一种基于Zolu函数的词嵌入学习模型及训练方法在具体实施时与Mikolov所提CBOW模型相比,在准确度方面的提高。
以capital-common-countries为例,通过改变窗口尺寸大小得到不同的词相似度准确值,如下表2所述:
表2不同窗口尺寸大小ZL-CBOW与CBOW准确率对比
从表2中可以看出窗口尺寸从2到9依次增大情况下,使用Zolu作为激活函数的ZL-CBOW训练模型在窗口尺寸变化过程中其词向量计算的准确率数值比同样窗口尺寸的使用sigmoid函数作为激活函数的CBOW模型词训练的准确率数值每一列均有提高,其中窗口尺寸为2和3时,准确度的提升分别高达17%,即73.72%-56.72%,和11.07%,即82.02%-70.95%;即使针对窗口尺寸为7,提升也有0.6%,即:82.81%-82.21%。
下表3是针对不同数量的隐层节点数大小,对比ZL-CBOW和CBOW在预测单词功能方面的准确度(运行脚本analogy.sh)。
表3隐层节点数不同ZL-CBOW及CBOW模型在预测单词方面的准确率
对比
100 | 200 | 300 | |
ZL-CBOW | 86.17% | 86.36% | 84.98% |
CBOW | 81.42% | 82.61% | 81.23% |
从表3可以看出:
A).不论隐藏层节点是100、200还是300,本发明所提的ZL-CBOW模型,均比Mikolov的CBOW预测单词的准确率要高。
B).由200个隐层节点下降至100个隐层节点时,其计算词向量相似度的复杂性降低一半,然而本发明所提ZL-CBOW模型的预测准确性却几乎没受到影响,即:ZL-CBOW性能好又稳定。
C).无论是使用Zolu作为激活函数的ZL-CBOW模型还是使用sigmoid函数作为激活函数的CBOW模型,都在隐层节点数为200时达到了准确率的最大值;为了降低复杂度节省资源,在不影响预测效果的前提下,仍应该选择100为最佳的隐层节点数目。
实施例5
本实施例叙述了本发明一种基于Zolu函数的词嵌入学习模型及训练方法在具体实施时与Mikolov所提CBOW模型相比,在复杂度方面,属于同一量级。
以步骤7.1A中的ZL-CBOW学习模型中采用HS为例,更新公式为(1) 和(2);而对应Mikolov所提出的CBOW学习模型中采用HS的更新公式如下(10)和(11):
对比(2)和(10)以及(3)和(11),可以发现,有如下两点区别:
A:对于ZL-CBOW,前面的系数是2,而CBOW,前面的系数是1;
B:对于ZL-CBOW,更新函数为Zolu,而CBOW,更新函数为sigmoid。
下表4分别针对词相似度及预测单词功能对ZL-CBOW及CBOW运行时间做以对比。
表4 ZL-CBOW和CBOW运行时间对比
从表4可以看出,在运行词相似度及预测单词功能时,ZL-CBOW模型的运行时间只是稍微比CBOW分别多7%到9%的时间,没有数量级的提升,在实际应用过程中是完全可以忍受的。因此,ZL-CBOW算法复杂度与CBOW复杂度量级相同,也可以适用于极大规模语料库的训练。
以上所述为本发明的较佳实施例而已,本发明不应该局限于该实施例和附图所公开的内容。凡是不脱离本发明所公开的精神下完成的等效或修改,都落入本发明保护的范围。
Claims (10)
1.一种基于Zolu函数的词嵌入学习模型及训练方法,其特征在于:包括一种基于Zolu函数的词嵌入学习模型及一种基于Zolu函数的词向量训练方法;
一种基于Zolu函数的词嵌入学习模型,从功能上又具体包括ZL-CBOW模型和ZL-SG模型;还包括HS模式和NS模式;其中,HS指Hierarchical Softmax即分层Softmax,NS指Negative Sampling,即负采样;SS即Sub Sampling是NS可选的功能组成之一,可进一步设定和选择实现SS功能;
一种基于Zolu函数的词嵌入学习模型,从组成上包括参数输入模块、初始化模块、激活函数表建立模块、构建词汇表模块、霍夫曼二叉树构建模块、词向量处理模块、词向量训练模块以及聚类处理模块;
一种基于Zolu函数的词嵌入学习模型,各模块功能如下:
参数输入模块的功能是接收以训练文件名、输出文件名、Batch大小、窗口尺寸、输出的词向量维数、采样阈值、负采样数目、HS选择、CBOW选择以及循环次数为主的输入参数;参数输入模块的功能还包括配置以debug模式、Binary输出选择、学习率、线程数、最小词频、聚类簇个数、建立词典结构体以及哈希表分配为主的参数;
其中,输出文件名是存储训练好的词向量的文件;CBOW选择为0时使用ZL-SG模型,为1时,选择ZL-CBOW模型;采样阈值是指词频超过多少将被采样;负采样数目的大小控制着负采样映射表的建立;HS选择为1时,选择HS模式,为0时,为NS模式;
初始化模块的功能是接收参数输入模块的变量及参数,并且分别针对HS模式和NS模式申请动态数组;
激活函数表建立模块的功能是基于Zolu函数建立激活函数表,并且存储到expTable数组中;构建词汇表模块的功能是构建词汇表;
霍夫曼二叉树构建模块的功能是构建霍夫曼二叉树;
词向量处理模块的功能是在负采样数目大于1时,为每个单词建立能量对应表,即负采样映射表;
词向量训练模块的功能是基于Zolu函数展开ZL-CBOW学习模型的HS或NS;以及ZL-SG学习模型的HS或NS模式词训练;
聚类处理模块的功能是对词向量训练结果基于K-means算法进行分类;
一种基于Zolu函数的词嵌入学习模型,各模块的连接关系如下:
参数输入模块与初始化模块相连;初始化模块与激活函数表建立模块相连;构建词汇表模块与霍夫曼二叉树构建模块相连;霍夫曼二叉树构建模块与词向量处理模块相连;词向量处理模块与词向量训练模块相连;激活函数表建立模块与词向量训练模块相连;词向量训练模块与聚类处理模块相连。
2.根据权利要求1所述的一种基于Zolu函数的词嵌入学习模型及训练方法,其特征在于:一种基于Zolu函数的词向量训练方法,包括如下步骤:
步骤一、参数输入模块接收各种词训练参数并配置各种参数;
步骤二、激活函数表建立模块建立激活函数表;
步骤三、构建词汇表模块构建词汇表:
步骤四、初始化模块初始化各词向量;
步骤五、霍夫曼二叉树构建模块构建映射层到输出层的权重,即生成二叉树,并根据词频给每个词设定其在霍夫曼二叉树的位置;
步骤六、判断是否为NS模式,若为NS,则根据词频建立负采样映射表;若不是NS模式,跳过此步骤,直接执行步骤七;
步骤七、词向量训练模块对步骤三构建的词向量通过基于Zolu函数的不同词训练模型进行训练;
步骤八、聚类处理模块判断步骤一配置各种参数中的聚类参数是否聚类,并根据聚类与否,决定是否进行聚类,再保存训练结果;
至此,经过步骤一到步骤八,完成了一种基于Zolu函数的词向量训练方法。
3.根据权利要求2所述的一种基于Zolu函数的词嵌入学习模型及训练方法,其特征在于:步骤一中,词训练参数主要包括:训练文件名、输出文件名、Batch大小、窗口尺寸、输出的词向量维数、采样阈值、负采样数目、HS选择、CBOW选择以及循环次数;
其中,训练文件名也可以不输入,如果不输入训练文件名,则在构建词汇表时,通过读原有词库来生成词汇表;
其中,配置的各种参数包括debug模式、Binary输出选择、学习率、线程数、最小词频、聚类簇个数、建立词典结构体以及哈希表分配。
4.根据权利要求2所述的一种基于Zolu函数的词嵌入学习模型及训练方法,其特征在于:步骤二中,激活函数表基于如下公式(1)中的Zolu函数:
<mrow>
<mi>Z</mi>
<mi>o</mi>
<mi>l</mi>
<mi>u</mi>
<mrow>
<mo>(</mo>
<mi>x</mi>
<mo>)</mo>
</mrow>
<mo>=</mo>
<mfenced open = "{" close = "">
<mtable>
<mtr>
<mtd>
<mrow>
<mi>tanh</mi>
<mrow>
<mo>(</mo>
<mi>x</mi>
<mo>)</mo>
</mrow>
</mrow>
</mtd>
<mtd>
<mrow>
<mi>x</mi>
<mo>&GreaterEqual;</mo>
<mn>0</mn>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mrow>
<mi>x</mi>
<mo><</mo>
<mn>0</mn>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>1</mn>
<mo>)</mo>
</mrow>
</mrow>
其中,表格大小可以根据精度需要进行调整,Zolu函数也可以替换为
还可以替换成其他输入范围不受限制,输出值为0到1之间的激活函数。
5.根据权利要求2所述的一种基于Zolu函数的词嵌入学习模型及训练方法,其特征在于:步骤三、构建词汇表模块构建词汇表,具体分为如下两种情况:
3.1从原有词库中生成词汇表;
具体调用ReadVocab()函数实现;
3.2从训练文本中提取词汇表;
具体调用LearnVocabFromTrainFile()函数实现;
其中,原有词库生成词汇表,仅发生在无训练文本输入文件情况下。
6.根据权利要求2所述的一种基于Zolu函数的词嵌入学习模型及训练方法,其特征在于:步骤四中初始化的各词向量包括syn0、syn1、syn1neg并给syn0赋予初始值;还包括给HS和NS模式申请动态数组。
7.根据权利要求2所述的一种基于Zolu函数的词嵌入学习模型及训练方法,其特征在于:步骤五中生成二叉树具体通过CreateBinaryTree函数实现,生成一棵节点数为2*vocab_size+1个节点的霍夫曼二叉树;
其中,步骤四和步骤五具体通过Initnet()函数实现。
8.根据权利要求2所述的一种基于Zolu函数的词嵌入学习模型及训练方法,其特征在于:步骤六、判断是否为NS模式,若为NS,则根据词频建立负采样映射表,具体为:
判断是否为NS通过判断步骤一参数中的负采样数目是否大于零,若大于零表明采用要建立负采样映射表,否则不建立;
负采样映射表具体通过InitUnigramTable()函数实现,在建立词频映射表时,优选的词频指数为0.75次方,也可以是其他数值。
9.根据权利要求2所述的一种基于Zolu函数的词嵌入学习模型及训练方法,其特征在于:步骤七,具体为:
判断步骤一中的CBOW参数选项是0还是1,并根据CBOW参数选项决定执行7.1还是7.2操作:
7.1 CBOW参数选项为1时,则进一步判断HS选择是0还是1,并进行如下操作:
7.1A当HS为1时,跳入ZL-CBOW模型的HS模式进行词向量训练;
其中,ZL-CBOW模型的HS模式下词向量训练xw和的更新公式分别为(2)和(3):
<mrow>
<msub>
<mi>x</mi>
<mi>w</mi>
</msub>
<mo>=</mo>
<msub>
<mi>x</mi>
<mi>w</mi>
</msub>
<mo>+</mo>
<msub>
<mi>&eta;</mi>
<mi>w</mi>
</msub>
<mo>&lsqb;</mo>
<mn>1</mn>
<mo>-</mo>
<mn>2</mn>
<mo>*</mo>
<msubsup>
<mi>d</mi>
<mi>j</mi>
<mi>w</mi>
</msubsup>
<mo>-</mo>
<mi>Z</mi>
<mi>o</mi>
<mi>l</mi>
<mi>u</mi>
<mrow>
<mo>(</mo>
<msubsup>
<mi>x</mi>
<mi>w</mi>
<mi>T</mi>
</msubsup>
<msubsup>
<mi>&theta;</mi>
<mrow>
<mi>j</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
<mi>w</mi>
</msubsup>
<mo>)</mo>
</mrow>
<mo>&rsqb;</mo>
<msubsup>
<mi>&theta;</mi>
<mrow>
<mi>j</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
<mi>w</mi>
</msubsup>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>2</mn>
<mo>)</mo>
</mrow>
</mrow>
<mrow>
<msubsup>
<mi>&theta;</mi>
<mrow>
<mi>j</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
<mi>w</mi>
</msubsup>
<mo>=</mo>
<msubsup>
<mi>&theta;</mi>
<mrow>
<mi>j</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
<mi>w</mi>
</msubsup>
<mo>+</mo>
<msub>
<mi>&eta;</mi>
<mi>&theta;</mi>
</msub>
<mo>&lsqb;</mo>
<mn>1</mn>
<mo>-</mo>
<mn>2</mn>
<mo>*</mo>
<msubsup>
<mi>d</mi>
<mi>j</mi>
<mi>w</mi>
</msubsup>
<mo>-</mo>
<mi>Z</mi>
<mi>o</mi>
<mi>l</mi>
<mi>u</mi>
<mrow>
<mo>(</mo>
<msubsup>
<mi>x</mi>
<mi>w</mi>
<mi>T</mi>
</msubsup>
<msubsup>
<mi>&theta;</mi>
<mrow>
<mi>j</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
<mi>w</mi>
</msubsup>
<mo>)</mo>
</mrow>
<mo>&rsqb;</mo>
<msub>
<mi>x</mi>
<mi>w</mi>
</msub>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>3</mn>
<mo>)</mo>
</mrow>
</mrow>
其中,xw代表更新的词向量;代表从根节点出发到w路径上第j-1个非叶子节点对应的向量,为更新参数;代表从根节点出发到w路径上第j个节点对应的编码,具体含义为:
表明第j个节点是第j-1个节点的子节点,对应编码为0,条件概率表达为:
表明第j个节点不是第j-1个节点的子节点,对应编码为1,
ηθ和ηw分别代表动态更新的和xw的学习率,两者初始值是相同的,优选的初始值是0.025,也可以不同;中的参数T代表xw和的内积;
7.1B当HS为0时,跳入ZL-CBOW模型的NS模式进行词向量训练;
其中,ZL-CBOW模型在NS模式下词向量训练的xw和θu的更新公式分别为(4)和(5):
<mrow>
<msub>
<mi>x</mi>
<mi>w</mi>
</msub>
<mo>=</mo>
<msub>
<mi>x</mi>
<mi>w</mi>
</msub>
<mo>+</mo>
<msubsup>
<mi>&eta;</mi>
<mi>w</mi>
<mi>u</mi>
</msubsup>
<mo>&lsqb;</mo>
<mn>2</mn>
<msup>
<mi>L</mi>
<mi>w</mi>
</msup>
<mrow>
<mo>(</mo>
<mi>u</mi>
<mo>)</mo>
</mrow>
<mo>-</mo>
<mn>1</mn>
<mo>-</mo>
<mi>Z</mi>
<mi>o</mi>
<mi>l</mi>
<mi>u</mi>
<mrow>
<mo>(</mo>
<msubsup>
<mi>x</mi>
<mi>w</mi>
<mi>T</mi>
</msubsup>
<msup>
<mi>&theta;</mi>
<mi>u</mi>
</msup>
<mo>)</mo>
</mrow>
<mo>&rsqb;</mo>
<msup>
<mi>&theta;</mi>
<mi>u</mi>
</msup>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>4</mn>
<mo>)</mo>
</mrow>
</mrow>
<mrow>
<msup>
<mi>&theta;</mi>
<mi>u</mi>
</msup>
<mo>=</mo>
<msup>
<mi>&theta;</mi>
<mi>u</mi>
</msup>
<mo>+</mo>
<msubsup>
<mi>&eta;</mi>
<mi>&theta;</mi>
<mi>u</mi>
</msubsup>
<mo>&lsqb;</mo>
<mn>2</mn>
<msup>
<mi>L</mi>
<mi>w</mi>
</msup>
<mrow>
<mo>(</mo>
<mi>u</mi>
<mo>)</mo>
</mrow>
<mo>-</mo>
<mn>1</mn>
<mo>-</mo>
<mi>Z</mi>
<mi>o</mi>
<mi>l</mi>
<mi>u</mi>
<mrow>
<mo>(</mo>
<msubsup>
<mi>x</mi>
<mi>w</mi>
<mi>T</mi>
</msubsup>
<msup>
<mi>&theta;</mi>
<mi>u</mi>
</msup>
<mo>)</mo>
</mrow>
<mo>&rsqb;</mo>
<msub>
<mi>x</mi>
<mi>w</mi>
</msub>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>5</mn>
<mo>)</mo>
</mrow>
</mrow>
其中,xw代表更新的词向量;θu代表当前样本u对应的辅助向量,为待训练参数;Lw(u)=1代表u=w,即u是正样本,否则Lw(u)=0代表u≠w,即u是负样本;和分别代表动态更新的θu和xw的学习率,两者初始值可以相同,也可以不同,若需要设置不同的初始学习率,需要分别设置两个学习率参数,word2vec源代码中采用的是相同的初始学习率初值及动态更新值;中的参数T代表xw和的内积;
7.2CBOW参数选项为0时,则进一步判断HS选择是0还是1,并进行如下操作:
7.2A当HS为1时,跳入ZL-SG模型中的HS模式进行词向量训练;
其中,更新的词向量vw及待更新参数分别表示如下公式(6)和(7);
<mrow>
<msub>
<mi>v</mi>
<mi>w</mi>
</msub>
<mo>=</mo>
<msub>
<mi>v</mi>
<mi>w</mi>
</msub>
<mo>+</mo>
<msubsup>
<mi>&eta;</mi>
<mi>w</mi>
<mi>v</mi>
</msubsup>
<munder>
<mo>&Sigma;</mo>
<mrow>
<mover>
<mi>u</mi>
<mo>~</mo>
</mover>
<mo>&Element;</mo>
<mi>C</mi>
<mi>o</mi>
<mi>n</mi>
<mi>t</mi>
<mi>e</mi>
<mi>x</mi>
<mrow>
<mo>(</mo>
<mi>w</mi>
<mo>)</mo>
</mrow>
</mrow>
</munder>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>j</mi>
<mo>=</mo>
<mn>2</mn>
</mrow>
<msup>
<mn>2</mn>
<msup>
<mi>l</mi>
<mi>u</mi>
</msup>
</msup>
</munderover>
<mo>&lsqb;</mo>
<mn>1</mn>
<mo>-</mo>
<mn>2</mn>
<mo>*</mo>
<msubsup>
<mi>d</mi>
<mi>j</mi>
<mover>
<mi>u</mi>
<mo>~</mo>
</mover>
</msubsup>
<mo>-</mo>
<mi>Z</mi>
<mi>o</mi>
<mi>l</mi>
<mi>u</mi>
<mrow>
<mo>(</mo>
<msubsup>
<mi>v</mi>
<mi>w</mi>
<mi>T</mi>
</msubsup>
<msubsup>
<mi>&theta;</mi>
<mrow>
<mi>j</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
<mover>
<mi>u</mi>
<mo>~</mo>
</mover>
</msubsup>
<mo>)</mo>
</mrow>
<mo>&rsqb;</mo>
<msubsup>
<mi>&theta;</mi>
<mrow>
<mi>j</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
<mover>
<mi>u</mi>
<mo>~</mo>
</mover>
</msubsup>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>6</mn>
<mo>)</mo>
</mrow>
</mrow>
<mrow>
<msubsup>
<mi>&theta;</mi>
<mrow>
<mi>j</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
<mover>
<mi>u</mi>
<mo>~</mo>
</mover>
</msubsup>
<mo>=</mo>
<msubsup>
<mi>&theta;</mi>
<mrow>
<mi>j</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
<mover>
<mi>u</mi>
<mo>~</mo>
</mover>
</msubsup>
<mo>+</mo>
<msubsup>
<mi>&eta;</mi>
<mrow>
<mi>j</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
<mover>
<mi>u</mi>
<mo>~</mo>
</mover>
</msubsup>
<mo>&lsqb;</mo>
<mn>1</mn>
<mo>-</mo>
<mn>2</mn>
<mo>*</mo>
<msubsup>
<mi>d</mi>
<mi>j</mi>
<mover>
<mi>u</mi>
<mo>~</mo>
</mover>
</msubsup>
<mo>-</mo>
<mi>Z</mi>
<mi>o</mi>
<mi>l</mi>
<mi>u</mi>
<mrow>
<mo>(</mo>
<msup>
<msub>
<mi>v</mi>
<mi>w</mi>
</msub>
<mi>T</mi>
</msup>
<msubsup>
<mi>&theta;</mi>
<mrow>
<mi>j</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
<mover>
<mi>u</mi>
<mo>~</mo>
</mover>
</msubsup>
<mo>)</mo>
</mrow>
<mo>&rsqb;</mo>
<msub>
<mi>v</mi>
<mi>w</mi>
</msub>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>7</mn>
<mo>)</mo>
</mrow>
</mrow>
其中,vw代表更新的词向量,每处理完Contex(w)中的一个词中的更新一次词向量vw;是待更新参数;和分别代表动态更新的和vw的学习率,两者可以相同,也可以不同;中的参数T代表vw和的内积;
代表从根节点出发到路径上第j-1个非叶子节点对应的向量,为节点的路径长度;代表从根节点出发到w路径上第j个节点对应的编码,具体含义为:
代表第j个节点是第j-1个节点的子节点,对应编码为0,条件概率设置为:
表明第j个节点不是第j-1个节点的子节点,对应编码为1,条件概率被设置为:
7.2B当HS为0时,跳入ZL-SG模型的NS模式进行词向量训练;
其中,ZL-SG模型在NS模式下词向量训练的和待更新参数的更新公式分别为(8)和(9):
<mrow>
<msub>
<mi>v</mi>
<mover>
<mi>w</mi>
<mo>~</mo>
</mover>
</msub>
<mo>=</mo>
<msub>
<mi>v</mi>
<mover>
<mi>w</mi>
<mo>~</mo>
</mover>
</msub>
<mo>+</mo>
<msubsup>
<mi>&eta;</mi>
<mi>w</mi>
<mover>
<mi>u</mi>
<mo>&OverBar;</mo>
</mover>
</msubsup>
<munder>
<mo>&Sigma;</mo>
<mrow>
<mi>w</mi>
<mo>&Element;</mo>
<mi>c</mi>
<mi>o</mi>
<mi>n</mi>
<mi>t</mi>
<mi>e</mi>
<mi>x</mi>
<mrow>
<mo>(</mo>
<mover>
<mi>w</mi>
<mo>~</mo>
</mover>
<mo>)</mo>
</mrow>
</mrow>
</munder>
<munder>
<mo>&Sigma;</mo>
<mrow>
<mover>
<mi>u</mi>
<mo>~</mo>
</mover>
<mo>&Element;</mo>
<mo>{</mo>
<mi>w</mi>
<mo>}</mo>
<mo>&cup;</mo>
<mi>N</mi>
<mi>E</mi>
<mi>G</mi>
<mrow>
<mo>(</mo>
<mi>w</mi>
<mo>)</mo>
</mrow>
</mrow>
</munder>
<mo>&lsqb;</mo>
<mn>2</mn>
<msup>
<mi>L</mi>
<mi>w</mi>
</msup>
<mrow>
<mo>(</mo>
<mover>
<mi>u</mi>
<mo>~</mo>
</mover>
<mo>)</mo>
</mrow>
<mo>-</mo>
<mn>1</mn>
<mo>-</mo>
<mi>Z</mi>
<mi>o</mi>
<mi>l</mi>
<mi>u</mi>
<mrow>
<mo>(</mo>
<msubsup>
<mi>v</mi>
<mover>
<mi>w</mi>
<mo>~</mo>
</mover>
<mover>
<mi>T</mi>
<mo>&OverBar;</mo>
</mover>
</msubsup>
<msup>
<mi>&theta;</mi>
<mover>
<mi>u</mi>
<mo>&OverBar;</mo>
</mover>
</msup>
<mo>)</mo>
</mrow>
<mo>&rsqb;</mo>
<msup>
<mi>&theta;</mi>
<mover>
<mi>u</mi>
<mo>&OverBar;</mo>
</mover>
</msup>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>8</mn>
<mo>)</mo>
</mrow>
</mrow>
<mrow>
<msup>
<mi>&theta;</mi>
<mover>
<mi>u</mi>
<mo>~</mo>
</mover>
</msup>
<mo>=</mo>
<msup>
<mi>&theta;</mi>
<mover>
<mi>u</mi>
<mo>~</mo>
</mover>
</msup>
<mo>+</mo>
<msubsup>
<mi>&eta;</mi>
<mover>
<mi>&theta;</mi>
<mo>~</mo>
</mover>
<mover>
<mi>u</mi>
<mo>~</mo>
</mover>
</msubsup>
<mo>&lsqb;</mo>
<mn>2</mn>
<msup>
<mi>L</mi>
<mi>w</mi>
</msup>
<mrow>
<mo>(</mo>
<mover>
<mi>u</mi>
<mo>~</mo>
</mover>
<mo>)</mo>
</mrow>
<mo>-</mo>
<mn>1</mn>
<mo>-</mo>
<mi>Z</mi>
<mi>o</mi>
<mi>l</mi>
<mi>u</mi>
<mrow>
<mo>(</mo>
<msubsup>
<mi>v</mi>
<mi>w</mi>
<mi>T</mi>
</msubsup>
<msup>
<mi>&theta;</mi>
<mover>
<mi>u</mi>
<mo>~</mo>
</mover>
</msup>
<mo>)</mo>
</mrow>
<mo>&rsqb;</mo>
<msub>
<mi>v</mi>
<mi>w</mi>
</msub>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>9</mn>
<mo>)</mo>
</mrow>
</mrow>
其中,代表更新的词向量,每处理完中的一个词,更新一次;代表即是正样本,否则代表即是负样本;和分别代表动态更新的和的学习率;NEG(w)代表w的负样本集合。
10.根据权利要求2所述的一种基于Zolu函数的词嵌入学习模型及训练方法,其特征在于:步骤八、具体为:
8.A若聚类参数K-means为1,则进行聚类操作后再保存聚类及词向量训练结果;
8.B若聚类参数K-means为0,则保存词向量训练结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710421488.9A CN107273352B (zh) | 2017-06-07 | 2017-06-07 | 一种基于Zolu函数的词嵌入学习模型及训练方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710421488.9A CN107273352B (zh) | 2017-06-07 | 2017-06-07 | 一种基于Zolu函数的词嵌入学习模型及训练方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107273352A true CN107273352A (zh) | 2017-10-20 |
CN107273352B CN107273352B (zh) | 2020-07-14 |
Family
ID=60065878
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710421488.9A Active CN107273352B (zh) | 2017-06-07 | 2017-06-07 | 一种基于Zolu函数的词嵌入学习模型及训练方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107273352B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108182279A (zh) * | 2018-01-26 | 2018-06-19 | 有米科技股份有限公司 | 基于文本特征的对象分类方法、装置和计算机设备 |
CN109190126A (zh) * | 2018-09-17 | 2019-01-11 | 北京神州泰岳软件股份有限公司 | 词嵌入模型的训练方法及装置 |
CN109951464A (zh) * | 2019-03-07 | 2019-06-28 | 西安电子科技大学 | 未知二进制私有协议的报文序列聚类方法 |
CN110210557A (zh) * | 2019-05-31 | 2019-09-06 | 南京工程学院 | 一种实时流处理模式下未知文本的在线增量式聚类方法 |
CN112528650A (zh) * | 2020-12-18 | 2021-03-19 | 恩亿科(北京)数据科技有限公司 | 一种Bert模型预训练方法、系统及计算机设备 |
CN112733520A (zh) * | 2020-12-30 | 2021-04-30 | 望海康信(北京)科技股份公司 | 文本相似度计算方法、系统及相应设备和存储介质 |
CN113705227A (zh) * | 2020-05-21 | 2021-11-26 | 中国科学院上海高等研究院 | 中文无分词词嵌入模型的构建方法、系统、介质及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105930318A (zh) * | 2016-04-11 | 2016-09-07 | 深圳大学 | 一种词向量训练方法及系统 |
US20160328383A1 (en) * | 2015-05-08 | 2016-11-10 | International Business Machines Corporation | Generating distributed word embeddings using structured information |
JP2017076281A (ja) * | 2015-10-15 | 2017-04-20 | 日本電信電話株式会社 | 単語埋込学習装置、テキスト評価装置、方法、及びプログラム |
CN106649434A (zh) * | 2016-09-06 | 2017-05-10 | 北京蓝色光标品牌管理顾问股份有限公司 | 一种跨领域知识迁移的标签嵌入方法和装置 |
-
2017
- 2017-06-07 CN CN201710421488.9A patent/CN107273352B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160328383A1 (en) * | 2015-05-08 | 2016-11-10 | International Business Machines Corporation | Generating distributed word embeddings using structured information |
JP2017076281A (ja) * | 2015-10-15 | 2017-04-20 | 日本電信電話株式会社 | 単語埋込学習装置、テキスト評価装置、方法、及びプログラム |
CN105930318A (zh) * | 2016-04-11 | 2016-09-07 | 深圳大学 | 一种词向量训练方法及系统 |
CN106649434A (zh) * | 2016-09-06 | 2017-05-10 | 北京蓝色光标品牌管理顾问股份有限公司 | 一种跨领域知识迁移的标签嵌入方法和装置 |
Non-Patent Citations (3)
Title |
---|
BAOTIAN HU 等: "A novel word embedding learning model using the dissociation between nouns and verbs", 《NEUROCOMPUTING》 * |
OFIR PRESS 等: "Using the Output Embedding to Improve Language Models", 《ARXIV》 * |
YOAV GOLDBERG 等: "word2vec Explained: Deriving Mikolov et al.’s Negative-Sampling Word-Embedding Method", 《ARXIV》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108182279A (zh) * | 2018-01-26 | 2018-06-19 | 有米科技股份有限公司 | 基于文本特征的对象分类方法、装置和计算机设备 |
CN109190126A (zh) * | 2018-09-17 | 2019-01-11 | 北京神州泰岳软件股份有限公司 | 词嵌入模型的训练方法及装置 |
CN109190126B (zh) * | 2018-09-17 | 2023-08-15 | 北京神州泰岳软件股份有限公司 | 词嵌入模型的训练方法及装置 |
CN109951464B (zh) * | 2019-03-07 | 2021-05-14 | 西安电子科技大学 | 未知二进制私有协议的报文序列聚类方法 |
CN109951464A (zh) * | 2019-03-07 | 2019-06-28 | 西安电子科技大学 | 未知二进制私有协议的报文序列聚类方法 |
CN110210557A (zh) * | 2019-05-31 | 2019-09-06 | 南京工程学院 | 一种实时流处理模式下未知文本的在线增量式聚类方法 |
CN110210557B (zh) * | 2019-05-31 | 2024-01-12 | 南京工程学院 | 一种实时流处理模式下未知文本的在线增量式聚类方法 |
CN113705227A (zh) * | 2020-05-21 | 2021-11-26 | 中国科学院上海高等研究院 | 中文无分词词嵌入模型的构建方法、系统、介质及设备 |
CN113705227B (zh) * | 2020-05-21 | 2023-04-25 | 中国科学院上海高等研究院 | 中文无分词词嵌入模型的构建方法、系统、介质及设备 |
CN112528650A (zh) * | 2020-12-18 | 2021-03-19 | 恩亿科(北京)数据科技有限公司 | 一种Bert模型预训练方法、系统及计算机设备 |
CN112528650B (zh) * | 2020-12-18 | 2024-04-02 | 恩亿科(北京)数据科技有限公司 | 一种Bert模型预训练方法、系统及计算机设备 |
CN112733520A (zh) * | 2020-12-30 | 2021-04-30 | 望海康信(北京)科技股份公司 | 文本相似度计算方法、系统及相应设备和存储介质 |
CN112733520B (zh) * | 2020-12-30 | 2023-07-18 | 望海康信(北京)科技股份公司 | 文本相似度计算方法、系统及相应设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107273352B (zh) | 2020-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107273352B (zh) | 一种基于Zolu函数的词嵌入学习模型及训练方法 | |
CN107291693B (zh) | 一种改进词向量模型的语义计算方法 | |
CN108363790B (zh) | 用于对评论进行评估的方法、装置、设备和存储介质 | |
CN109241255B (zh) | 一种基于深度学习的意图识别方法 | |
CN107229610B (zh) | 一种情感数据的分析方法及装置 | |
CN107085581B (zh) | 短文本分类方法和装置 | |
Collobert et al. | Natural language processing (almost) from scratch | |
Demir et al. | Improving named entity recognition for morphologically rich languages using word embeddings | |
CN112667818B (zh) | 融合gcn与多粒度注意力的用户评论情感分析方法及系统 | |
CN111027595B (zh) | 双阶段语义词向量生成方法 | |
CN110969020A (zh) | 基于cnn和注意力机制的中文命名实体识别方法、系统及介质 | |
CN110413768B (zh) | 一种文章题目自动生成方法 | |
CN112232087B (zh) | 一种基于Transformer的多粒度注意力模型的特定方面情感分析方法 | |
CN113704416B (zh) | 词义消歧方法、装置、电子设备及计算机可读存储介质 | |
CN110297888B (zh) | 一种基于前缀树与循环神经网络的领域分类方法 | |
CN111966827B (zh) | 基于异构二部图的对话情感分析方法 | |
CN108021551B (zh) | 一种语料扩展方法及装置 | |
CN111177383A (zh) | 一种融合文本语法结构和语义信息的文本实体关系自动分类方法 | |
JP6291443B2 (ja) | 接続関係推定装置、方法、及びプログラム | |
CN111274790A (zh) | 基于句法依存图的篇章级事件嵌入方法及装置 | |
JP2011227688A (ja) | テキストコーパスにおける2つのエンティティ間の関係抽出方法及び装置 | |
CN110909116A (zh) | 一种面向社交媒体的实体集合扩展方法及系统 | |
CN115481219A (zh) | 一种基于语法序列嵌入模型的售电公司评价情感分类方法 | |
CN117688944B (zh) | 基于多粒度卷积特征融合的中文情感分析方法及系统 | |
CN114036938B (zh) | 一种融合主题信息和词向量提取文本特征的新闻分类方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |