其中,RNN单元我们使用GRU来尽可能地保留每一个时间步的语义信息,并且对这些语义信息进行加权处理,即时间步分布式的全连接层,每一个单元的输出是一个全局注意的语义向量,组合成feature map。结合任务的需求,即语序关系对判别影响不大且极大特征(如罪名等)与判罚的强关联性,所以我们使用Max Pooling来对获取到的特征矩阵进行全局池化,得到单个向量。最后利用全连接层与不同的激活函数作为分类器。
事实上,我们也尝试了利用现在较为火爆的Attention+ RNN、以及将GRU换成LSTM或改成双向等等。实验表明效果均不如上述的方法。这一方面是由于Attention机制仍然在长文档的特征提取中丢失了很多语义信息,另一方面则表明在数据量不太大(本赛题的约15W的数据量)的情况下,参数的增多对效果会产生负面影响。
Structured模型:
本方案中Structured模型用于提取关键句义信息。在预处理时,按照“。?!”分割成句子,每个文本截断前100个句子。每个句子截断前100个词。同时过滤掉空白文本。因此,该模型能够捕获到上述两个模型在原始数据层丢失的语义信息,但作为交换的是训练时间较长(约13小时)。
该模型出自论文TACL 2017 “Learning Structured Text Representations”,在Yelp数据集上取得了准确度68.6的成绩。我们使用了该模型用于比赛中罚金预测的任务。该模型通过句子中词向量,先得到句子的向量表示;再通过文档中句子的向量表示,得到文档的向量表示;最终用该向量表示来做罚金类别预测。该模型在比赛初期,单模型线上效果的Micro-Averaged F1值为0.54。在最终提交的最佳结果中,该模型结果的两次平均,作为Structured模型对罚金的预测,再与其他模型融合。
该模型首先建立对句子表示的模型,如下图。对于句子T=[u0,u1,..., un],其中ui是句子中第i个词的向量表示,输入到双向LSTM网络中,对于每个的输出hi向量分成两部分ei和di,即hi=[ei, di],这两部分分别用来表示语义信息和结构注意力信息。然后通过结构注意力机制,获得每个词的新的向量表示[r0, r1,..., rn]。