IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> FastText -> 正文阅读

[人工智能]FastText

1. 学习任务

????《 Bag of Tricks for Efficient Text Classification 》

《FastText: 对于高效率文本分类的一揽子技巧》Armand Joulin 等 ?单位:Facebook ? 会议:EACL 2017


?? 开源项目网页 fasttext.cc

1.1 论文结构

在这里插入图片描述

1.2 学习目标

在这里插入图片描述


? 文章 摘要 部分

  1. 本文为文本分类任务提出了一种简单并且高效的基准模型——FastText。
  2. FastText模型在精度上和基于深度学习的分类器平分秋色,但是在训练和测试 速度 上 FastText 快上几个数量级。
  3. 我们使用标准的多核CPU在10亿词的数据集上训练 FastText,用时少于10分钟,并且在一分钟内分类好具有312K类别的50万个句子。


? 文章 Introduction 部分

  1. 文本分类是自然语言处理的重要任务,可以用于信息检索、网页搜索、文档分类等。
  2. 基于深度学习的方法可以达到非常好的效果,但是速度很慢,限制了文本分类的应用。
  3. 基于机器学习的线性分类器效果也很好,有用于大规模分类任务的潜力。
  4. 从现在词向量学习中得到的灵感,我们提出了一种新的文本分类方法FastText,这种方法能够快速的训练和测试并且达到和最优结果相似的效果。

1.3 背景知识

1.3.1 基于深度学习文本分类模型优缺点

? 如:基于卷积神经网络的文本分类模型 TextCNN 和 字符级别卷积神经网络的文本分类模型 CharTextCNN

优点:

  • 效果好,一般能达到了目前最好的分类效果。
  • 不用做特征工程,模型简洁。

缺点:

  • 速度太慢,无法在大规模的文本分类任务上使用。

1.3.2 基于机器学习文本分类模型优缺点

? 如:TF-IDF

优点:

  • 一般速度都很快,TF-IDF 就相当于特征工程,模型都是线性分类器,所以比较简单。
  • 效果还可以,在某些任务上也能取得最好的效果。

缺点:

  • 需要做特征工程,分类效果依赖于有效特征的选取。

1.3.3 FastText 动机:

? 结合深度学习的文本分类模型和机器学习的文本分类模型的优点,达到 速度快效果好自动特征工程

1.4 研究成果及意义

  1. FastText 在多个任务上表现很好。(下图中8个数据集)

    在这里插入图片描述
  2. FastText 在效果很好的同时,速度非常快。单个 epoch 的训练时间(char-CNNVDCNNfastText ):

在这里插入图片描述

1.4.1 FastText 历史意义

  • 提出了一种新的文本分类方法——FastText,能够进行快速的文本分类,并且效果很好。
  • 提出了一种新的使用 子词 (词的前缀、后缀等)的词向量训练方法——FastText,能够一定程度上解决OOV问题。
  • 将FastText 开源,使得工业界和学术界能够快速使用 FastText。

2. FastText 模型

在这里插入图片描述
? FastText 的网络结构与 word2vecCBOW 非常相似。CBOW介绍 - 链接

联系

  1. 都是Log-linear模型,在最后一层加上softmax,实现权重到概率的非线性变换,模型非常简单。
  2. 都是对输入的 词向量 做平均,然后进行预测。
  3. 模型结构完全一样。

区别

  1. FastText提取的是句子特征,CBOW提取的是上下文特征。
  2. FastText需要标注语料,将每个句子标注成一个句子,是监督学习;CBOW不需要标注语料,是无监督学习。

目前的 FastText 存在的问题

? 问题:

  1. 当类别非常多的时候,最后的 softmax速度依旧非常慢。
  2. 使用的是 词袋模型,没有词序信息。

? 解决方法:

  1. 对问题1,类似于word2vec,使用 层次softmax
  2. 对问题2, 使用 n-gram 模型。

? 文章中N-gram features中使用的 hashing trick (Weinberger et al., 2009) 方法举例,

1-gram ? 3万词
2-gram ? 10万词
3-gram ? 40万词


? 假设词表大小是10万,前3万个仍是1-gram,一个词映射成一个向量;后面7万个分给 2-gram 和 3-gram, ( 10 + 40 ) % 7 = 7 (10+40) \%7=7 (10+40)%7=7 取余,进行了一个折中,[ 如果每个词对应一个向量,词表太大;如果多个词对应一个向量,不准确。] 这里 7 个词对应一个向量。

FastText 模型优缺点

? 优点: 1. 速度非常快,并且效果还可以。2. 有开源实现,可以快速上手使用。

? 缺点: 1. 模型结构简单,所以目前来说,不是最优的模型。2. 因为使用词袋思想,所以语义信息获取有限。

FastText 应用

  1. 文本特别多,对分类速度要求很高的场合。
  2. 作为一个基准baseline。

2.1 Subword 词向量

? Subword model 可参考文章 Enriching Word Vectors with Subword Information

2.3 Pytorch编程,显存不够大,调哪些参数?

import argparse

def ArgumentParser():
    parser = argparse.ArgumentParser()
    parser.add_argument('--embed_size', type=int, default=10, help="embedding size of word embedding")
    parser.add_argument("--epoch",type=int,default=200,help="epoch of training")
    parser.add_argument("--cuda",type=bool,default=True,help="whether use gpu")
    parser.add_argument("--gpu",type=int,default=1,help="whether use gpu")
    parser.add_argument("--label_num",type=int,default=4,help="the label number of samples")
    parser.add_argument("--learning_rate",type=float,default=0.02,help="learning rate during training")
    parser.add_argument("--batch_size",type=int,default=64,help="batch size during training")
    parser.add_argument("--seed",type=int,default=1,help="seed of random")
    parser.add_argument("--max_length",type=int,default=100,help="max length of sentence")
    parser.add_argument("--min_count",type=int,default=3,help="min_count of word")
    parser.add_argument("--n_gram",type=int,default=2,help="num gram of word")
    return parser.parse_args()  # pycharm中不加 args=[],jupyter 中加上
  1. embeding_size, 控制你的词向量矩阵大小,词向量矩阵在 GPU 里面
  2. batch_size,batch_size 代表一次往 GPU 里面装入多少条数据
  3. max_length,max_length 也决定了你输入的大小
  4. min_count, 显存小,可以将min_count 调大,过滤更多的词
  5. n_gram,显存小,将 n_gram 调大

参考链接- 深度之眼 - NLP baseline
参考链接- FastText 项目地址
参考链接- huaxiaozhuan-word representation_5 FastText

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-08-06 09:37:50  更:2021-08-06 09:51:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 22:46:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码