金融市场中的NLP——情感分析


金融市场中的NLP——情感分析文章插图
自在ImageNet上推出AlexNet以来 , 计算机视觉的深度学习已成功应用于各种应用 。 相反 , NLP在深层神经网络应用方面一直落后 。 许多声称使用人工智能的应用程序通常使用某种基于规则的算法和传统的机器学习 , 而不是使用深层神经网络 。
2018年 , 在一些NLP任务中 , 一种名为BERT的最先进(STOA)模型的表现超过了人类的得分 。 在这里 , 我将几个模型应用于情绪分析任务 , 以了解它们在我所处的金融市场中有多大用处 。 代码在jupyter notebook中 ,
介绍NLP任务可以大致分为以下几类 。

  1. 文本分类——过滤垃圾邮件 , 对文档进行分类
  2. 词序——词翻译 , 词性标记 , 命名实体识别
  3. 文本意义——主题模型 , 搜索 , 问答
  4. seq2seq——机器翻译、文本摘要、问答
  5. 对话系统
不同的任务需要不同的方法 , 在大多数情况下是多种NLP技术的组合 。 在开发机器人时 , 后端逻辑通常是基于规则的搜索引擎和排名算法 , 以形成自然的通信 。
这是有充分理由的 。 语言有语法和词序 , 可以用基于规则的方法更好地处理 , 而机器学习方法可以更好地学习单词相似性 。 向量化技术如word2vec、bag of word帮助模型以数学方式表达文本 。 最著名的例子是:
King - Man + Woman = QueenParis - France + UK = London第一个例子描述了性别关系 , 第二个例子描述了首都的概念 。 然而 , 在这些方法中 , 由于在任何文本中同一个词总是由同一个向量表示 , 因此上下文不能被捕获 , 这在许多情况下是不正确的 。
循环神经网络(RNN)结构利用输入序列的先验信息 , 处理时间序列数据 , 在捕捉和记忆上下文方面表现良好 。 LSTM是一种典型的结构 , 它由输入门、输出门和遗忘门组成 , 克服了RNN的梯度问题 。 有许多基于LSTM的改进模型 , 例如双向LSTM , 不仅可以从前面的单词中捕捉上下文 , 而且可以从后面捕获上下文 。 这些方法对于某些特定的任务是有用的 , 但在实际应用中却不太适用 。
2017年 , 我们看到了一种新的方法来解决这个问题 。 BERT是Google在2018年推出的一个多编码器堆栈的掩码语言模型 , 在GLUE、SQuAD和SWAG基准测试中实现了STOA , 并有了很大的改进 。 有很多文章和博客解释了这种架构 , 比如Jay Alammar的文章:
【金融市场中的NLP——情感分析】我在金融行业工作 , 在过去的几年里 , 我很难看到我们在NLP上的机器学习模型在交易系统中的生产应用方面有足够的强劲表现 。 现在 , 基于BERT的模型正在变得成熟和易于使用 , 这要归功于Huggingface的实现和许多预训练的模型已经公开 。
我的目标是看看这个NLP的最新开发是否达到了在我的领域中使用的良好水平 。 在这篇文章中 , 我比较了不同的模型 , 这是一个相当简单的任务 , 即对金融文本的情绪分析 , 以此作为基线来判断是否值得在真正的解决方案中尝试另一个研发 。
此处比较的模型有:
  1. 基于规则的词典方法
  2. 基于Tfidf的传统机器学习方法
  3. 作为一种循环神经网络结构的LSTM
  4. BERT(和ALBERT)
输入数据在情绪分析任务中 , 我采用以下两种输入来表示行业中的不同语言 。
  1. 财经新闻标题——正式
  2. 来自Stocktwits的Tweets——非正式
我将为后者写另一篇文章 , 所以这里关注前者的数据 。 这是一个包含更正式的金融领域特定语言的文本示例 , 我使用了Malo等人的FinancialPhraseBank()包括4845篇由16人手写的标题文本 , 并提供同意等级 。 我使用了75%的同意等级和3448个文本作为训练数据 。


推荐阅读