zoukankan      html  css  js  c++  java
  • TextCNN论文解读

    引言

    本文是对《Convolutional Neural Networks for Sentence Classification》的原理解读,简称TextCNN。

    作者提出了一种基于CNN的新的文本分类模型。该模型结构简单,支持静态词向量和可微调词向量。作者做了一系列实验验证了该方法的优势,在各种文本分类模型上取得state-of-the-art的结果。

    模型结构


    如上图所示。

    1. 输入长度为n的序列,序列中每个词向量维度为k。模型输入维度为(n, k)
    2. 在词向量阶段,作者也使用了不同的处理方法。尝试了以下三种词向量获取方式:
    • 使用预训练好的词向量,在模型训练阶段词向量可进行fine-tuning。
    • 使用预训练好的词向量,在模型训练阶段词向量冻结,不进行fine-tuning。
    • 使用两个词向量获取通道,一个是冻结的,一个可fine-tuning的。

    实验结果显示,使用预训练好的词向量,在模型训练阶段词向量进行fine-tuning的方式通常能取得最优结果,个别情况下双通道方式能取得最有结果。
    3. 输入经过尺寸为(h, k)的卷积核,这里跟图像卷积不同是,这里卷积核的第二维的大小跟词向量的维度大小相同,就是此处的卷积核在扫描特征的时候只沿着序列的方向进行扫描,生成(n-h+1,)的一维向量。
    直观上理解,相当于使用卷积核提取窗口大小为h的n-gram特征。
    4. 多个卷积核生成多个(n-h+1,)的n-gram特征。
    5. 卷积后面跟着GlobalAvgMaxpooling,这样无论是多长的序列进来,输出都是等长的。
    6. 使用了多个不同尺寸的卷积核,相当于提取了不同窗口大小的n-gram特征。

    正则

    1. 在倒数第二层使用了l2正则
    2. 在隐藏层使用了 Dropout

    优缺点

    1. 通过CNN的方式捕捉n-gram特征,本质上是词袋模型。计算速度快,预性能也不错。
    2. 可解释行不强
  • 相关阅读:
    CountDownLatch, CyclicBarrier, Semaphore
    工具类中使用@Autowired失败问题
    可重入锁(递归锁)
    读写锁
    自旋锁
    加入BLOG
    控制字符串的超长部分用省略号表示
    java常见面试题总结
    maven打包不运行test脚本的命令
    DataGrip使用教程
  • 原文地址:https://www.cnblogs.com/Fosen/p/12609193.html
Copyright © 2011-2022 走看看