• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
贞子小白白
博客园    首页    新随笔    联系   管理    订阅  订阅

【NLP】|01 NLP常见模型(一)Word2Vec

一、Word2Vec:

参考学习链接

 1.需要具备的基础知识:

- 哈夫曼树、哈夫曼编码(变长编码,高频距离root近)

- 【统计语言模型】N-gram模型(这里模型表示的下标和上标表示起始和终止,表示第k个单词被假设只和其前n-1个单词相关,也就是【k-(n-1)一直到k-1】)

传统的方法需要存储N+N^2+...+N^n的参数(N代表词典,n代表n-gram),

- 所以放到神经网络优化,也就设想出了【神经语言模型】:

 

 

   具体点:

 

 

 

 

 

   神经语言模型存在的缺点就是,计算量过于庞大。

2.word2vec:

  上面的神经网络模型对词向量的关注很少,而word2vec主要的任务是去生成向量(对语言模型的概率求最大似然得到)

  将输入层到投影层的运算从『拼接』变成『叠加』

  针对『隐层和输出层之间的矩阵运算』,word2vec选择删去隐藏层。如下,wi网络参数就是yi训练出来的词向量。

 

 

   因为没办法对字典级别的yi进行softmax训练,所以提出了两种方法:Hieraichical Softmax和Negative Sampling。

   (1)Hierarchical Softmax优化:

    利用了树实现了分层的Softmax,即用树形结构替代了输出层的结构。Hierarchical softmax采用的树是二叉树。它将树上的叶子节点分配给词典里的词,而将从树根到叶子节点的路径上的每个非叶子结点都看作是二分类,路径上的二分类概率连乘的结果就是该叶子节点对应的词的概率。一个full softmax需要一次计算所有的W个词,而hierarchical softmax却只需要计算大约logW(即树根到该叶子节点的路径长度)个词,大大减少了计算的复杂度。高频词短编码速度更快。

    CBOW: 

    Skip-gram:当前一个词--->huffman树

   (2)Negative Sampling优化:随机负采样

     采样概率:f(wi​) 是数据集中词wi​的个数与总词数之比,按照[f(wi​) ^0.75]/[Σf(wi​) ^0.75]的概率采样,采5-20个左右停止(自己定)

3.word2vec并行:

将训练的语料分成若干份,依次交给并行的线程、进程或分布式机器等并行运行载体进行Skip-Gram或CBow-Gram模型训练,在各个独立的并行空间中,语料是不相同的,但训练的神经网络、词向量和哈夫曼是共享的,训练中使用的学习率等参数需要更新,在结束训练后需要计算。

 偶然看到的代码资源:尚未实现

posted @ 2021-04-16 16:32  贞子小白白  阅读(206)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3