zoukankan      html  css  js  c++  java
  • word2vec 中的数学原理详解 笔记

    1)为什么使用对数似然函数作为损失函数?(解释:“对数损失函数”与“极大似然估计下的对数似然函数”在本质上是等价的)
    2) 自然语言处理中最重要的一个技术就是统计语言模型;
    统计语言模型是用来确定一个句子的概率的概率模型,常用的包括:n-gram 模型和神经网络;
    n-gram模型本质上认为下一个词的概率依赖于前面n-1个词;于是需要根据语料库,进行词频统计;考虑到特殊情况,需要利用平滑化进一步处理;
    3)这里额外介绍一些机器学习的通用套路:
    对特定问题建模时,先为其构造一个目标函数,然后对这个目标函数进行优化,从而求得一组最优参数,最后利用这组最优参数对应的模型来进行预测。
    4)神经概率语言模型-->词向量
    5)通常机器学习的输入是已知的,而在此处的神经概率语言模型中,输入的词向量也是训练得到的。
    6)神经网络语言模型vs n-gram模型优势:
    • 词语之间相似性可通过词向量体现
    • 词向量模型自带平滑化功能,其概率计算公式可以体现(softmax函数)
    • 神经网络语言模型也有其不足:里面有很多参数需要学习(隐藏层和输出层之间)
    7)词向量:将自然语言以数学化的方式表示,使机器能够识别
    • one-hot
    • distributied representation(LSA,LDA 都可以用来得到该表示)
    8)词向量和语言模型在训练完后可同时得到
    9)语言模型的一个评价指标是SENNA
    10)词向量在不同语言下,具有相似位置结构,可以用来进行不同语言间的翻译
    11)word2vec里的两个重要模型:CBOW(连续词袋模型)和Skip-gram模型
    这两个模型的作用刚好相反,CBOW是用目标单词上下文(前后n个单词)预测该目标单词;Skip-gram是用目标单词来预测上下文单词。
    针对这两个模型,word2vec给出两套框架来计算:hierarchical softmax 和 negative sampling
    12)神经概率语言模型与CBOW模型在结构上有若干区别,虽然整体框架相似。
    13) 既然CBOW和Skip-gram 都是用来学习词向量,而且结构基本相似,除了思路相反以外,那么这两个模型在下效果上怎样?
    (一种说法是cbow对低频词更有利,只要周围词训练的好,目标低频词效果也相应提升;同时cbow比skip-gram更快)
    14)Negative Sampling vs Hierarchical Softmax,更加简化,大幅提高性能
    负采样算法:高频词被选为负样本概率大,低频词就概率小
     
    15)负采样为何就能替代Hierarchical?而hierarchical中huffman tree的优势又在哪里?它起到的作用是什么?(给不同词频的词以不同的概率)(hierarchical 中并没有考虑负例,只是使训练集中的样本似然度最大化)
    16)word2vec的缺点是:没有考虑语序
     

  • 相关阅读:
    Python3.6全栈开发实例[022]
    Python3.6全栈开发实例[021]
    Python3.6全栈开发实例[020]
    Python3.6全栈开发实例[019]
    Python3.6全栈开发实例[018]
    单选按钮QRadioButton
    QToolButton按钮
    文本编辑框QTextEdit
    信号-事件汇总
    QMessageBox消息框
  • 原文地址:https://www.cnblogs.com/hugh2006/p/8309585.html
Copyright © 2011-2022 走看看