Driven to discover
  • 目录
  • 简介
  • 数学基础
    • 数学基础
      • 线性代数
      • 概率统计
        • 概率基础
        • 连续概率
        • 概率分布
        • 大数与中心极限
      • 时间序列
      • 信息理论
      • 参数估计
      • 优化降梯
        • 极大、极小和鞍点
        • 泰勒及Jacobian、Hessian
        • 连续可微
          • 无约束优化
          • 有约束优化
        • 非连续可微
      • 备查附录
  • 数据挖掘
    • 数据挖掘
      • 数据预分析
      • 数据预处理
        • 数据采样
        • 数据降维
        • 特征选择
      • 模式挖掘
        • 频繁项集
        • 多样项集
        • 基于约束的频繁项集
        • 高维及庞大项集
        • 序列模式
        • 图模式
      • 聚类分析
        • 划分聚类
        • 层次聚类
        • 密度/网格聚类
      • 文本挖掘
        • 短语挖掘与主题模型
        • 实体识别与类型标记
  • 机器学习
    • 机器学习
      • 模型评估与选择
      • 线性模型
      • 决策树模型
      • 支持向量机
      • 贝叶斯分类器
      • 集成学习
        • Bagging
        • Boosting
          • AdaBoost
          • GBDT
          • XGBoost
          • LightGBM
        • 结合策略
      • 概率图模型
        • 贝叶斯网络
        • 隐马尔可夫
        • 条件随机场
  • 网络图模型
    • 网络图模型
      • 大规模图处理
        • 社区检测与搜索
        • 中心度分析
        • 网络形成模型
        • 异构信息网络
      • 网络映射
        • 结构维持的网络映射
        • 性质维持的网络映射
        • 动态网络映射
      • Graph Neural Network
  • 深度学习
    • 深度学习
      • 深度前馈网络
        • 非线性的学习
        • 基于梯度的学习
        • 激活函数
        • 架构设计
        • 前向传播
        • 反向传播
      • 深度学习正则化
        • 参数范数惩罚
        • 作为约束的范数惩罚
        • 正则化和欠约束问题
        • 数据集增强
        • 噪声鲁棒性
        • 半监督学习
        • 多任务学习
        • 提前终止
        • 参数绑定和共享
        • 稀疏表示
        • Bagging和其他集成方法
        • Dropout
        • 对抗训练
        • 切面距离、正切传播和流形正切分类器
      • 深度学习优化
        • 学习和纯优化异同
        • 神经网络优化中的挑战
        • 优化算法
        • 参数初始化策略
        • 优化策略和元算法
      • 卷积网络
        • 卷积运算
        • 卷积动机
        • 池化
      • 循环和递归网络
        • 展开计算图
        • 循环神经网络
        • 长短期记忆
        • 注意力机制
      • 生成对抗网络
      • 多任务学习
      • 技术分析
        • Attention
        • Normalization
  • 增强学习
    • 增强学习
      • 增强学习的数学表达形式
      • 求解增强学习问题
        • 已知环境模型的问题
        • 未知环境模型的问题
  • 计算机视觉
    • 计算机视觉
      • 图像分类
        • LeNet-5
        • AlexNet
        • VGGNet
        • GoogLeNet
        • ResNet
        • DenseNet
      • 目标检测
        • 相关研究
          • 选择性搜索
          • OverFeat
        • 基于区域提名的方法
          • R-CNN
          • SPP-net
          • Fast R-CNN
          • Faster R-CNN
          • R-FCN
        • 端到端的方法
          • YOLO
          • SSD
      • 语义分割
        • 全卷积网络
          • FCN
          • DeconvNet
          • SegNet
          • DilatedConvNet
        • CRF/MRF的使用
          • DeepLab
          • CRFasRNN
          • DPN
        • 实例分割
          • Mask R-CNN
      • 图像检索的深度哈希编码
        • 传统哈希编码方法
        • CNNH
        • DSH
      • 光学字符识别
        • CTC解码
          • 前向后向
          • 目标函数
          • 基本原理
      • 人脸识别
      • 三维重建
  • 自然语言处理
    • 自然语言处理
      • 中文分词技术
      • 词性标注
        • 传统词性标注模型
        • 基于神经网络的词性标注模型
        • 基于Bi-LSTM的词性标注模型
      • 命名实体识别
      • 关键词提取
        • 词频与排序
        • 主题模型
      • 句法分析
        • 基于PCFG的句法分析
        • 基于最大间隔马尔可夫网络的句法分析
        • 基于条件随机场的句法分析
        • 基于移进-归约的句法分析
      • 文本向量化
        • Continuous Bag-of-Word
        • Skip-Gram
        • word2vec(Hierarchical Softmax与Negative Sampling)
        • GloVe
        • fastText
        • Bert
      • 情感分析
        • 文档维度情感分析
        • 句子维度情感分析
        • 方面维度情感分析
        • 其他情感分析任务
      • 机器翻译
        • 神经网络机器翻译基本模型
        • 基于Attention的神经网络机器翻译
        • 基于卷积的机器翻译
  • 搜索推荐广告
    • 搜索推荐广告
      • 搜索
        • 召回
        • 排序
          • 传统匹配模型
          • 深度学习匹配模型
            • Representation Learning
              • DNN-based
              • CNN-based
              • RNN-based
            • Matching Function Learning
              • Matching with word-level learning methods
              • Matching with attention model
            • Matching function learning&Representation learning
            • Query-Doc Relevance matching
              • Based on global distribution of matching strengths
              • Based on local context of matched terms
        • 重排
      • 推荐
        • 召回
        • 排序
          • 传统匹配模型
            • 协同过滤
            • 基于特征
          • 深度学习匹配模型
            • Representation learning
              • 协同过滤
              • 基于特征
            • Matching function learning
              • 协同过滤
              • 基于特征
        • 重排
      • 广告
        • 行业知识
        • 核心技术
          • 发展趋势
          • CTR/CVR
            • 浅层模型
            • 深度模型
          • 智能定向
          • 技术难点
        • 相关技术
  • 计算机基础
    • 计算机基础
      • 数据结构
        • 排序算法
      • 操作系统
      • 计算机网络
      • 计算机组成原理
      • python
        • pandas
      • Bash
      • Spark
      • SQL
      • Excel
  • 经验总结
    • 经验总结
      • 广告应用
        • 人群定向
        • 召回通路
      • 时序预测
        • 统计时序
        • 机器学习
        • 深度学习
      • 图谱探索
        • 标签传播
        • 图谱&网络
      • 策略评估
        • 激励策略
        • 均衡策略
Powered by GitBook
On this page
  • n-gram的label
  • 模型架构
  • 核心思想
  • Source
  1. 自然语言处理
  2. 自然语言处理
  3. 文本向量化

fastText

PreviousGloVeNextBert

Last updated 6 years ago

word2vec是一种无监督模型,而fastText则是对应的有监督模型,都属于Tomas Mikolov的杰作。fastText由Facebook在2016年,学习的目标不再是词语内在的共现,而是人工标注的label。

n-gram的label

word2vec把语料库中的每个单词当成原子的,它会为每个单词生成一个向量。这忽略了单词内部的形态特征,比如:“apple” 和“apples”,两个单词都有较多公共字符,即它们的内部形态类似,但是在传统的word2vec中,这种单词内部形态信息因为它们被转换成不同的id丢失了。为了克服这个问题,fastText使用了字符级别的n-grams来表示一个单词。对于单词“apple”,假设n的取值为3,则它的trigram有“<ap”,"app","ppl","ple","le>"。

其中,<表示前缀,>表示后缀。于是,我们可以用这些trigram来表示“apple”这个单词,进一步,我们可以用这5个trigram的向量叠加来表示“apple”的词向量。这带来两点好处:

  • 对于低频词生成的词向量效果会更好。因为它们的n-gram可以和其它词共享。

  • 对于训练词库之外的单词,仍然可以构建它们的词向量。我们可以叠加它们的字符级n-gram向量。

模型架构

fastText模型架构如下所示,与word2vec中的CBOW模型类似, 也只有三层:输入层、隐含层、输出层(Hierarchical Softmax),输入都是多个经向量表示的单词,输出都是一个特定的target,隐含层都是对多个词向量的叠加平均。不同的是,CBOW的输入是目标单词的上下文,fastText的输入是多个单词及其n-gram特征,这些特征用来表示单个文档;CBOW的输入单词被oneHot编码过,fastText的输入特征是被embedding过;CBOW的输出是目标词汇,fastText的输出是文档对应的类标。

值得注意的是,fastText在输入时,将单词的字符级别的n-gram向量作为额外的特征(其中 x1,x2,…,xN−1,xNx_1,x_2,\dots,x_{N-1},x_Nx1​,x2​,…,xN−1​,xN​ 表示一个句子对应的n-gram特征,相比词袋模型,n-gram特征会关注词语的顺序,这些特征被转化为词向量并进行平均从而形成隐层变量);在输出时,fastText采用了分层Softmax,大大降低了模型训练时间。

对于 NNN 个文档的集合,fastText对应的损失函数为:

−1N∑n=1Nynlog⁡(f(BAxn))-\frac{1}{N}\sum\limits_{n=1}^Ny_n\log(f(BAx_n))−N1​n=1∑N​yn​log(f(BAxn​))

其中 xnx_nxn​ 是第 nnn 个文档对应的归一化统计特征, AAA 和 BBB 是权重矩阵,这个模型可以在多个CPU上使用梯度下降方法并行计算。

与word2vec类似,fastText也采用了层次式的分类器,只是word2vec是针对单词的,fastText则针对label

核心思想

仔细观察模型的后半部分,即从隐含层输出到输出层输出,会发现它就是一个softmax线性多类别分类器,分类器的输入是一个用来表征当前文档的向量;模型的前半部分,即从输入层输入到隐含层输出部分,主要在做一件事情:生成用来表征文档的向量。那么它是如何做的呢?叠加构成这篇文档的所有词及n-gram的词向量,然后取平均。叠加词向量背后的思想就是传统的词袋法,即将文档看成一个由词构成的集合。

于是fastText的核心思想就是:将整篇文档的词及n-gram向量叠加平均得到文档向量,然后使用文档向量做softmax多分类。这中间涉及到两个技巧:字符级n-gram特征的引入以及分层Softmax分类。

Source

开源
GitHub - facebookresearch/fastText: Library for fast text representation and classification.GitHub
fastText原理及实践知乎专栏
Logo
Logo