债券新闻多标签分类
发布时间:2019-06-14 浏览次数:60
作者:徐靖宇 王 努 何光旭
回归和分类问题是机器学习领域关注的两大部分,多边签分类问题是分类问题的一部分。这里的多标签分类和多分类问题存在一定区别。
多标签分类问题大量存在于我们的生活中,比如某个电影既属于喜剧类又属于动作类,某个新闻既属于军事类又属于科技类。以本文研究的债券新闻为例,对于一则新闻文本“公司上半年净利润亏损,联合评级将中安消之主体长期信用等级及15中安消债项信用等级列入信用评级观察名单”,这则新闻既可以被分为财务变动类事件,也可被分为评级变动类事件。
对于任何一部电影,电影的中央委员会会根据电影的内容颁发证书。例如图片1-1,这部电影被评为“UA”(意思是“12岁以下儿童需在父母陪同下观看”)。还有其他类型的证书类,如“A”(仅限于成人)或“U”(不受限制的公开放映),但可以肯定的是,每部电影只能在这三种类型的证书中进行分类。简而言之,有多个类别,但每个实例只分配一个,因此这些问题被称为多分类问题。
图1-1
由于标签的复杂化,多标签分类和传统的分类问题相比,主要有两方面的难点:
- 类别标签数量的不确定性。有些样本可能只有一个标签,有些样本可能有多个标签;
- 标签之间相互依赖,比如包含某个类别标签的样本很大概率上包含另一个类别标签。
针对这些难点,本文以债券新闻文本的多标签分类问题为研究任务,利用机器学习方法为金融领域事件新闻的分类问题提供思路。
目前有很多关于多标签问题的学习算法,依据解决问题的角度,这些算法主要分为两大类:一是基于问题转化(Problem Transformation)的方法;二是基于算法适应(AlgorithmAdaptation)的方法。2.1
问题转化方法是将多标记问题向单标记问题转化,从而适应现有的分类算法,其中具有代表性的方法有二元关联(Binary-Relevance), 分类器链(Classifier-Chain)以及标签Powerset(Label-Power-Set)。
二元关联法把每个标签当作单独的一个类分类问题。例如我们有这样的数据集(图2-1),X是独立的特征,Y是目标变量。
图2-1 数据集
在二元关联中,这个问题被分解成4个不同的类分类问题,如图2-2所示:
图2-2 问题分解
这是最简单的方法,但是这种方法的缺点是它不考虑标签的相关性,因为它单独处理每个目标变量。
分类器链的主要思想为,首先将多标签问题转换成单标签问题,第一个分类器只在输入数据上进行训练,然后每个分类器都在输入空间和链上的所有之前的分类器上进行训练。例如数据集,可以将数据转化成下图(2-3)形式,即将所有标签展开,如果样本有该标签,则对应位置为1否则为0。因为有3种标签,因此需要训练三个分类器,训练的具体过程为如下图(2-4),使用输入数据X训练第一个分类器,使用输入数据X以及分类器1的预测结果
训练第二个分类器,然后使用输入数据以及分类器1及分类器2的预测结果、
训练第三个分类器。(图2-4)
图2-3 数据集转化
图2-4 分类器训练流程
标签Powerset法将问题转化为一个多类问题,一个多类分类器在训练数据中发现所有唯一的标签组合上被训练。
图2-5
在这一点上,我们发现x1和x4有相同的标签(图2-5)。同样的,x3和x6有相同的标签。因此,标签powerset将这个问题转换为一个单一的多类问题,如图2-6所示。
因此,标签powerset给训练集中的每一个可能的标签组合提供了一个独特的类。
SVM是一种二分类模型,SVM在小样本
训练集上能够得到比其它算法好很多的结果。文本分类问题中,样本集在低维的样本
图 2-6 数据集标签转化
空间往往无法线性处理,而SVM方法则可以通过一个非线性映射p,把样本空间映射到一个高维乃至无穷维的特征空间中(Hilbert空间),使得在原来的样本空间中非线性可分的问题转化为在特征空间中的线性可分的问题,在高维特征空间中通过一个线性超平面实现线性划分。与此同时,伴随升维带来的计算复杂化,可以通过SVM的核方法巧妙地解决,避免了“维数灾难”。在本文的应用中,假设存在n个分类标签,则分类器链中第i个SVM分类器的任务即为判定输入文本是否属于第i个标签。
LSTM是长短期记忆网络,是一种时间递归神经网络,适合于处理和预测时间序列中间隔和延迟相对较长的事件。而文本数据可以将行文看作是一个时间序列数据,并且下一个词受语法、语境、上文信息等限制,可能会与之前间隔很久的词有关联。基于文本数据这些特性,LSTM可以很好的应用到其中进行文本预测和分类。
LSTM区别于RNN的地方,主要就在于它在算法中加入了一个判断信息有用与否的“处理器”,这个处理器作用的结构被称为cell。一个cell当中被放置了三扇门,分别叫做输入门(input gate)、遗忘门(forget gate)和输出门(output gate)。一个信息进入LSTM的网络当中,分别计算遗忘门、输入门、输出门以及候选记忆细胞的值:
然后根据规则来判断是否有用。只有符合算法认证的信息才会留下,不符的信息则通过遗忘门被遗忘。输入门则可以控制当前时间步的输入通过候选记忆细胞如何流入当前时间步的记忆细胞。最后通过输出门来控制从记忆细胞到隐藏状态的信息的流动。这个设计可以应对循环神经网络中的梯度衰减问题,并更好地捕捉时间序列中时间步距离较大的依赖关系。具体结构如下图2-7
图2-7 LSTM结构图
算法适应方法的思路和问题转化不同,它通过改变现有分类器,使新能够直接处理多标记问题,其中具有代表性的方法有ML-kNN,随机森林(Random Forest)及岭回归(Ridge regression)等。
随机森林支持多标签分类,其原因是随机森林的基础分类器决策树是支持多标签分类。决策树进行多标签分类的过程为,在寻找最优分裂结点时,假设采用的信息准则是信息增益,那么对于单标签分类,一个特征的信息增益记为,对于多标签,如果存在
个标签,那么一个特征的信息增益则为
,根据这样的准则生成最终的决策树,这样的决策树是支持多标签分类的。
本文主要采用基于支持向量机(Support Vector Machine,SVM)以及基于LSTM(Long Short-Term Memory)的分类器链方法及随机森林模型。
本文的实验数据来自于金融界网站(http://bond.jrj.com.cn)及Wind新闻终端的债券负面/重大信息模块。债券文本新闻共4799条,8种类别,各类别数量如表(3-1)所示,因为存在多类别标签问题,所以各类别有交叉的部分,各类别文本数量相加的总和会大于样本的总量。
表3-1 样本标签数量
| 文本数量 | |
| 评级变动类 | 1220 |
| 证券发行类 | 1030 |
| 人事变动类 | 340 |
| 资产变动类 | 438 |
| 财务变动类 | 286 |
| 宏观政策类 | 406 |
| 指标变动类 | 596 |
| 其他 | 600 |
| 总计 | 4916 |
实验的整个流程如下图(3-11),我们首先对数据进行划分,划分为训练集和测试集;然后对数据进行预处理,之后用训集数据生成词向量,并且将词向量用于测试集;最后用预处理好的训练集训练模型,测试集评判模型效果。
我们对数据集进行随机划分,训练集占总样本67%,测试集占33%,具体如表(3-2)所示。表(3-3)统计了测试集与训练集中各个标签的数量。
图3-1 实验流程图
表3-2 数据集划分
| 数据集 | 占比(%) | 数量(条) |
| 训练集 | 67 | 3216 |
| 测试集 | 33 | 1583 |
表3-3 训练集及测试集标签数量
| 事件类别 | 训练集 | 测试集 |
| 评级变动类 | 831 | 389 |
| 证券发行类 | 682 | 348 |
| 人事变动类 | 233 | 107 |
| 资产变动类 | 286 | 152 |
| 财务变动类 | 207 | 79 |
| 宏观政策类 | 263 | 143 |
| 指标变动类 | 391 | 205 |
| 其他 | 402 | 198 |
| 总计 | 3295 | 1621 |
分词
首先我们预定义了一个词表,词表中主要包含了三种类型的词,一、专有词汇,例如“绿色债券”、“10银城投债”等,这些专有词汇是从训练集文本中提取出来的。具体做法是,这些词汇一般都会被中文双引号包括起来,所以我们提取了双引号包括的词,但是引用别人说的话同样是被双引号包括,所以我们首先从提取出的词中去掉这部分词,然后去掉那些过长和过短(只有一个字)的词;二、年月日,我们构造了2000年至2018年所有的年份,1月至12月所有的月份以及1日到31日所有的天,例如“2018年”、“12月”、“18日”等;三、债券评级,我国的债券信用评级等级划分为三等九级,符号表示为:AAA、AA、A、BBB、BB、B、CCC、CC、C。除AAA级,CCC级(含)以下等级外,每一个信用等级可用“+”、“-”符号进行微调,我们将所有的等级加入到了预定义词表中。构造这个词表是为了这些词能够被正确地分出来。然后使用python分词包“jieba”对债券新闻文本进行分词,共得8605个词。
停用词
同样,我们构造停用词词表,其中词表中共有1598个词,这些词主要是一些没有实际含义的词,例如“啊”、“阿”、“呀”、“哎哟”等等。去掉停用词后,还剩余7519个词。
词云
对去掉停用词后的词表,将其中出现频率最高的前200个词做了词云,如图3-2。可以看出出现比较多的词为“评级”、“信用等级”、“信用”、“主体”、“稳定”等等,都是与债券相关性较大的词。
TF-IDF(termfrequency–inverse document frequency)是一种加权技术,其
思想是如果某个词或短语在一篇文章中出现的频率高,并且在其他文章中很少出现,
图3-2 分词词云图
则认为此词或者短语具有很好的类别区分能力,其中TF意思是词频,IDF意思是逆文本频率指数。我们计算每个词的TF-IDF值,并将一则新闻的所有词的TF-IDF值的向量的和来表示这则新闻,即每则新闻是由一个7519维的向量来表示。
词嵌入
词嵌入即把词映射为实数域向量的技术,主要包括两个模型:连续词袋模型(continuous bag of words,CBOW)及跳字模型(skip-gram),两者的主要区别为,连续词袋模型假设某中心词在文本序列前后的背景词来生成该中心词,而跳字模型假设基于某个词来生成它在文本序列周围的词。本文采用开源项目(https://github.com/Embedding/Chinese-Word-Vectors)通过跳字模型预训练的金融新闻词向量,每个词是由一个300维的向量进行表示的。
我们基于分类器链的思想构建了基于SVM的分类器链,并使用TF-IDF技术构造文本的特征。由于数据集共有8种标签类型,所以分类器链中共包含8个SVM分类器,其训练过程如图3-3,由于我们在构造SVM分类器时使用的是径向基核函数,所以存在两个参数需要调优,一个是惩罚参数,一个是窗宽参数,我们采用网格参数调优的方法,寻找最优参数。训练得到的分类器可以用于预测,预测流程如图3-4。
图3-3 SVM分类器链训练流程图
图3-4 SVM分类器链预测流程图
同样是基于分类器链的思想,我们构建了基于LSTM的分类器,这里我们使用的是预训练的词向量,由于LSTM模型需要等长的文本输入,然而每则新闻的长度均不相等,所以在需要对文本进行截断和填充,预定一个长度,如果文本词数量大于该长度,则之后的词被截掉,如果文本本身词数量小于该长度,则使用一个特殊字符进行填充。与分类器链不同的是,在进行下个分类器训练时,我们没有使用前面分类器的预测结果,而是使用了前面分类器的LSTM单元的隐藏状态向量,因为我们认为这些状态向量已经编码了前面分类器的所有信息,但是这些信息主要是和前面的标签有关的,而与前面标签无关的信息可能没有被编码进这些状态向量,但是这些信息可能与后面标签有关,为了弥补缺失的信息,我们再次将原始词向量拼接到隐藏状态向量上输入到下一个分类器中。所以我们将8个分类器边进一张计算图中,具体网络结构如图3-5所示
图3-5 LSTM分类器链网络结构图
我们使用TF-IDF构建特征,训练了随机森林模型,其中寻优的主要参数有弱学习器的个数、划分时考虑的最大特征数、决策树最大深度、内部节点再划分所需最小样本数、叶子节点最少样本数等。
我们采用的评价指标为汉明损失,汉明损失的公式为
其中为样本个数,
为标签个数,
为第
样本第
个标签的预测值,
为第
样本第
个标签的真实值,
为异或运算符。
我们共训练了3种模型,分别是SVM、LSTM以及随机森林,它们在同一个测试集上的预测结果如表3-4所示
表3-4 模型预测结果
| 模型 | HammingLoss |
| SVM | 0.0243 |
| LSTM | 0.0216 |
| 随机森林 | 0.1095 |
汉明损失越低,说明模型的预测准确度越高,从表3-4中可以看出,随机森林的汉明损失最高,其次是SVM,最低的是LSTM,但是后两者之间相差不大。
对于随机森林,在生成每棵决策树时,在寻找最优分裂结点时,会综合考虑所有的标签,由于各个标签的分布不相同,会导致分裂结点选择的特征对于划分某些标签是有效的,但是对划分其他标签的效果可能并不好,最终导致决策树的预测效果一般。对于SVM,由于样本量较少并且特征维度很高,对于这样的数据集比较适合使用SVM,由于TF-IDF构造的特征特别稀疏,所以可以采用稀疏矩阵对数据进行存储,这会加快模型的训练速度,并且SVM需要寻优的参数只有两个,所以我们扩大两个参数的范围,从而更有可能寻找到最优的参数,所以SVM模型的表现较好,但是由于输入采用的是TD-IDF构造的特征,这会丢失掉文本的位置信息,从而一定程度上限制模型的效果。对于LSTM,输入使用的是预训练的词向量,从而可以捕捉到一些额外的信息,并且LSTM设计用于序列数据,可以很好的捕捉位置信息,同时采用多标签共同训练的方法,可以充分利用标签之间的关联信息,因此,LSTM会有不错的表现。但是样本量较少,模型训练不够充分;又由于模型参数较多,训练一次时间比较长,所以并没有进行系统性调参;使用的是预训练的词向量,我们分词得到的词有很多在预训练词向量的词表中是不存在的,最终使用零向量对这部分词进行替换,这些原因可能会限制LSTM的效果。
本文以债券新闻文本的多标签分类问题为研究任务,利用机器学习方法为金融领域事件新闻的分类问题提供思路。区别于多分类问题,多标签分类问题的每个样本可能有一个或多个标签,这种不确定性为分类增加了难度;再者标签与标签之间可能存在一定的关系,如何利用这些信息,提高预测效果也是一个比较困难的问题。为解决这些问题,本文采用了分类器链的思想,构建了基于SVM的分类器链以及基于LSTM的多标签分类器,同时也采用了可直接用于多标签分类的随机森林算法。通过比较各模型的预测结果,发现LSTM优于SVM,SVM优于随机森林。但各模型仍存在着很大的进步空间,对于SVM,可以考虑使用预训练的词向量来提供额外的信息;对于LSTM,可以考虑对数据进行增强,从而增加样本量,也可以从现有的文本中去直接训练词向量,从而解决词缺失的问题。
