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. 可解释行不强
  • 相关阅读:
    欧拉回路和欧拉路径
    nth_element函数
    Java读写Excel
    如何指定tomcat中session过期时间
    Java 正则表达式
    Java与模式阅读笔记(1)依赖倒转原则
    Linux vi 命令详解
    native2ascii & ascii2native
    Linux 下zip包的压缩与解压
    linux设置邮件自动转发
  • 原文地址:https://www.cnblogs.com/Fosen/p/12609193.html
Copyright © 2011-2022 走看看