所有栏目 | 云社区 美国云服务器[国内云主机商]
你的位置:首页 > 云社区 » 正文

nlp中使用预训练的词向量和随机初始化的词向量的区别在哪里?

发布时间:2020-04-12 08:42:44

资讯分类:向量和  词向量  nlp  初始化  向量  训练  数据
nlp中使用预训练的词向量和随机初始化的词向量的区别在哪里?

词向量的意义在于为特征提供“基于上下文的语义感知”,也就是常说的语义感知。词向量有个假设,表达相似的内容表达形式也相似。语言也有一个特性,表达相似的句子的构成和成分也相似。举个例子来说,“小明在吃香蕉”,“小红在吃苹果”。两个句子表达的含义很相似。在假设表达形式也相似的前提下,“小明”和“小红”应该是相似的,“苹果”和“香蕉”也是相似的。事实也确实是这样。

由此可知,词向量中包含了句法和语义的信息。预训练词向量意味着提前计算出词在数据中的语义信息。这有两个好处两个坏处。

好处1是,语言都是相通的,可以给模型一个base line,最差效果也不会太差。再有差别的方言基本的用词、语序的变化不大,因为我们都是一个老祖宗的后代。粤语等国内小语种不算,已经不算是一种语言了。好处2是,预训练的词向量往往语料很大,训练出的模型覆盖面更广,能大大提高以预训练词向量为基础的模型的泛化能力。

坏处1是,基本每种机器学习任务都是有目标函数的,而且都是有偏好的、基于业务需求的目标函数。这意味着模型更看重目标问题的解决能力而不是泛化能力。这跟预训练词向量的优势有些背道而驰。预训练词向量虽然可以保证基本的base line,但在真实的应用场景里,这种base line依然达不到解决问题的程度,有和没有没有太大差别。坏处2是虽然语言都是相同的,但毕竟还是有所不同。预训练词向量会默认这种不同的存在,导致的结果就是,模型始终维持在“中不溜”的状态,不上不下。

随机词向量的优势是,只要数据量足够,可以保证好处1,解决坏处2。数据量足够大的时候,随机性会被隐藏在词顺序下的语义信息而抵消。而随机词向量用到的词和数据都是任务中的数据,这些数据本身就是目标的数据,对目标的求解就更有梯度价值。

综上而论,在数据量足够大的时候,比如能达到百万级别,随机词向量的效果未必比预训练词向量差多少,甚至可能更好。但对训练模型而言,数据比模型更难获得。在数据量比较少的情况下,预训练词向量相当于大量的先验知识,是小样本训练的最佳选择。


留言与评论(共有 0 条评论)
   
验证码:
Top