首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

NeuralNLP-NeuralClassifier-深度学习文本分类工具

NeuralNLP是腾讯广告(Tencent Marketing Solution,TMS)(https://e.qq.com/)数据算法团队搭建的一个基于PyTorch的深度学习NLP公共实验平台,主要涵盖文本分类、序列标注、语义匹配、BERT微调和文本生成等,目前已经广泛应用于腾讯广告业务文本相关的需求场景中,如广告定向、相关性计算、LookAlike、动态创意、点击率/转化率预估等。

NeuralClassifier是NeuralNLP的一个子项目,是一款基于PyTorch开发的深度学习文本分类工具。NeuralClassifier旨在通过良好的架构设计,集成业界主流的文本分类模型和各种优化机制,支持尽可能广泛的文本分类任务,如多标签分类,层次分类等,并方便用户在工具基础上自定义模型和进行更灵活的扩展。

NeuralClassifier的功能汇总如下:

支持大部分的分类任务:二分类、多分类、多标签分类、层次分类

支持众多模型:主流模型如FastText、TextCNN、TextRNN(Bi-GRU/LSTM)等,还支持最新的state-of-the-art模型,如VDCNN、DPCNN、Region Embedding、AttentiveConvNet、DRNN、Transformer等,并方便支持用户自定义模型结构

支持主流机制,如Attention、Pre-trained embedding等

支持数据输入的多线程加速读取、变长和定长输入、词和字符级输入、自定义输入等

支持多种损失函数,如Softmax/Sigmoid交叉熵、Focal Loss等

与业界工具对比

NeuralClassifier的一个特色是提供了对于层次多标签分类(Hierarchical Multi-label Classification, HMC)任务的支持,同时集成了非常多的文本分类模型。层次多标签分类的神经网络模型目前业界还主要针对特定的模型结构,并没有集成到一起的比较好用的工具。与业界层次多标签分类工具对比情况如下表所示。

架构设计

NeuralClassifier采用分层的架构设计,从下到上依次为:input layer、embedding layer、encoder layer、output layer。input层负责读取文本输入并做格式处理,embedding层对文本进行embedding处理,并在encoder层进行编码表示。output层负责对encoder层输出的信息做基于目标分类任务的转换,如二分类、多分类、层次分类等。用户可以通过一个配置文件方便的配置不同层的各种模型和Features。

评测效果

我们选取了业界主流的两个层次多标签分类数据集:RCV1和Yelp,并在其上对比了和SOTA的效果,结果表明根据NeuralClassifier提供的丰富模型和Features,可以取得和SOTA相当的效果。此外,我们还对比了NeuralClassifier提供的不同的文本分类模型(Text encoder)的效果,以及层次分类和普通单层分类的效果。

0. Dataset

RCV1: Lewis et al., 2004

Yelp: https://www.yelp.com/dataset/challenge

1. Compare with SOTA

HR-DGCNN (Peng et al., 2018)

HMCN (Wehrmann et al., 2018)

2. Different text encoders

基于NeuralClassifier不同text encoders的结果

除了encoder层,其他层均一致:使用word输入、预训练embedding、Hierarchical Multi-label Loss

3. Hierarchical vs Flat

基于NeuralClassifier的层次和单层分类的对比结果

除了encoder和output层,其他层均一致:使用word输入、预训练embedding

真情期待开源贡献

我们期望NeuralClassifier工具能够帮助业界的同仁快速的搭建深度学习文本分类应用,也希望我们实现的功能,尤其是对于多标签分类和层次分类,能够有助于业界相关领域的应用。深度学习的自然语言处理技术发展非常迅速,神经网络的模型和实现方式也很灵活,NeuralClassifier期待大家共同完善。

NeuralClassifier详细的介绍也可以参考我们发表在ACL2019的System demonstration paper: NeuralClassifier: An Open-source Neural Hierarchical Multi-label Text Classification Toolkit.

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190709A03XE300?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券