FinLex An effective use of word embeddings for financial lexicon generation

news2024/9/21 8:01:40

FinLex: An effective use of word embeddings for financial lexicon generation 论文阅读

文章目录

    • FinLex: An effective use of word embeddings for financial lexicon generation 论文阅读
  • Abstract
  • Methodology
    • 具体词表例子
    • LM 词列表与 FinLex 词列表
  • 词列表在分类任务中的表现
    • 结果
  • 未来工作方向

Abstract

这篇文章主要是介绍了一个新方法,其效果与目前最好的LM词表相比显示出相当的性能

FinLex主要解决的问题是:

  1. 现有文献中的方法是依赖专家来创建这些词语集合。但这引入了一定程度的主观性和缺乏稳健性。
  2. 随着概念数量的增加,并随着时间的不同而有不同的表示——可能是由于语言的发展、经济变化(例如,诉讼的主题规则可能会改变),以及不同主题甚至同一主题的专业知识分布的变化,对如何构建词语集合的学科性和可重复性的需求应运而生。

FinLex的主要贡献是:

  1. 首先,该方法用可重复的算法取代了人类的主观选择。
  2. 其次,它可以由未来的建模者改进,因此更容易开发和适应。
  3. 第三,它并没有排除领域专家的作用——它只是给他们提供了一个更优的基础,以供他们用来细化结果。
  4. 最后,专家的作用也更加客观,因为专家强加观点的地方变得透明。这使得整个词语集合生成的过程以前所未有的方式变得透明。

Methodology

该方法(标记为 FinLex)如下。它接受一对词 (w1, w2) 作为输入。这些词可以是同义词或反义词。程序如下:

  1. 嵌入模型选择:从预训练的词嵌入模型中检索一大组词嵌入。词嵌入是固定维度 D(通常是 300)的数值向量,代表每个词,因此,每个词可以想象成 D 维空间中的一个点。生成嵌入的独特词的集合被称为“词汇表”,词汇表的大小记为 V。因此,词嵌入的集合可以用一个大小为 V×D 的矩阵表示。可以把这想象成把 V 个词投影到 D 维空间。在这个向量空间中,与相同概念和上下文相关的词会更接近彼此。
    • 标准的数据源包括 Facebook 的 FastText,斯坦福大学的全局向量(GloVe),以及谷歌的 word2vec。每种方法都有稍微不同的方式从大型文本语料库生成词嵌入(例如,BOW,SkipGram,GloVe 等)。我们使用 FastText 作为嵌入的来源(基于 Mikolov 等人的工作),这些嵌入通常是大小为 300 的向量,但我们已使用 FastText 内置的降维功能将其减少到大小为 100,以提高计算效率。我们注意到这是一个初步的方法,可以尝试嵌入尺寸 D 及生成嵌入的来源和技术的各种变体。较新的 Transformer 模型如 BERT 使用更大的嵌入尺寸(D = {768,1024}),但使用这些模型时,相同的词可能会因周围上下文的不同而产生不同的嵌入。我们将上下文嵌入与词袋(BoW)模型的结合留待后续研究。
  2. 选取相似词:对于 w 1 w_1 w1 w 2 w_2 w2,在嵌入空间中找到使用余弦相似性最相似的 K 个词,记为 w S ( w i ) w_S(w_i) wS(wi),i = 1,2。对于本文中的例子,我们将 K 设置为 1000。这是一个较大的相似词数量,代表了词汇表可能的最大规模。此外,在将最相似的词集与英语词典相交之后,许多词会被筛除,因此我们最终得到的词集通常会小于 1000。
  3. 过滤标准词:然后我们将词转换为小写形式,并将该集合与一个标准英语词列表(记为集合 w E w_E wE)进行交集操作。在我们的案例中,我们简单地使用了哈佛查询中的词,但也可以使用任何词列表,例如麻省理工学院的词列表。因此,我们有了新的集合 S ( w i ) = w S ( w i ) ∩ w E S(w_i) = w_S(w_i) \cap w_E S(wi)=wS(wi)wE, i = 1,2。这样可以确保得到一个与概念词 w i w_i wi 相关的干净的词列表。
  4. 合并:这里我们有两种情况,取决于这对词是同义词还是反义词。使用一对词是一个新思路,它提供了更广泛的概念包容性并在词汇表生成中提高了准确性。
    1. 同义词:如果 w 1 w_1 w1 w 2 w_2 w2 是同义词,我们将这两个集合合并为一个单一的词集合,即 S ( w 1 ) ∪ S ( w 2 ) S(w_1) \cup S(w_2) S(w1)S(w2)。如果有两个概念上相关的词,比如欺诈和疏忽,这样做可以让概念的涵盖范围更广。我们注意到,如果我们想要基于单个词的词列表,就像文献中的先前应用那样,我们会设置 w 1 = w 2 w_1 = w_2 w1=w2
    2. 反义词:如果 w 1 , w 2 w_1, w_2 w1,w2 是反义词,那么输出将是两个词集合 S ( w i ) S(w_i) S(wi),i = 1,2,每个集合都是独立地使用余弦相似性生成的。如果一个词同时出现在 S ( w 1 ) S(w_1) S(w1) S ( w 2 ) S(w_2) S(w2) 中,那么我们只保留在其与 w 1 w_1 w1 w 2 w_2 w2 更近的那个列表中,并从另一个列表中删除它。这确保了一个词不能同时属于两个对立的概念。在使用词嵌入时这一点尤为重要,因为有可能意义相反的词也会在嵌入空间中邻近出现,因为它们与概念词有关,即使它们的意义是对立的。例如,如果反义词是“战争”和“和平”,“冲突”这个词可能会同时出现在两个列表中,如果它更靠近“战争”(正如应该的那样),那么它将从基于“和平”的列表中移除。这是一个简单的制衡机制,有助于筛选出误分类的词。

此过程会在 w 1 , w 2 w_1, w_2 w1,w2 为同义词时创建一个单一的词列表,而在它们为反义词时创建两个词列表。我们不会移除停用词,也不会对词进行词干提取,因此同一词的多种形式可能会出现,这与 LM 词列表的情况一样。请注意,此过程可以很容易地扩展到使用多个词来表示一个概念的情况,即反义词对中每个概念都有多个词描述。

具体词表例子

下图为 FinLex 生成的负面和正面词列表。

在这里插入图片描述

这些词与概念词的关系相当紧密。显然有些词是不合适的,例如在负面词列表中:中立、因果、真相、暗示、确定、正常。在正面词列表中也有一些不正确的词,如被动、压力、自私、犹豫。这些词可以通过少量的人工努力手动筛选掉。

然而,在本文的研究中,为了展示保持过程完全自动化的潜力,我们没有包括人工干预

下表则列出了词表与标准词表的交集,并显示了前50个被排除的与positive最相近的词和前50个保留下来的词。

在这里插入图片描述

能看出被排除的top50中有大量的拼写错误的词(虽然我没看出positive与positive有什么区别,服了)。拼写错误的词之所以出现是因为词嵌入的语料库基于Wiki文本,后者也包含了许多拼写错误的词,但它们却出现在概念词的上下文中。

LM 词列表与 FinLex 词列表

本文还检查了LM 词列表与 FinLex 词列表之间的重叠部分。

在这里插入图片描述

我们可以看到,交集词的小集合都表达了不确定性。有趣的是,大量存在于 LM 词汇表中而不在 FinLex 中的词,反之亦然。这两个列表都非常清楚地包含了我们认为与不确定性概念相关的词。

那么为什么会有如此小的重叠呢?

  • 可能是机制不同。人工策划可能是基于心理检索或是通过使用词库的方式,这是一种直接的方法。机器策划的方法利用了词嵌入中的文本上下文,因此是一种间接的方法,即不一起出现但在相似上下文中出现的词倾向于具有相似的词嵌入。这表明,人类和机器共同策划词汇表可能是有用的。无论如何,人类进一步策划机器生成的词汇表可能有助于移除不属于词列表的词。

词列表在分类任务中的表现

本文考虑了各种数据集来评估词列表作为分类分析特征的表现。对于数据集中的每个文档,我们计算文档中属于给定词列表的词的比例,并将这个比例作为一列(数值特征)添加到数据集中。例如,对于 LM 的负面词,我们创建一个单独的列。同样,对于 LM 和 FinLex 的每一个词列表也是如此。

评估所用的数据集如下:

  1. Financial Phrase Bank (FPB)数据集包含带有三种标签(离散的 y 变量)类别的金融新闻标题:负面、中性和正面。情感得分基于多名标注者的手动标注。有4846条新闻标题,情感水平为:负面13%,中性59%,正面28%。
  2. 还有一个基于上面的 FPB 数据集的子集,包含2264条所有标注者一致同意的新闻标题(负面占13%,中性占61%,正面占25%)。
  3. 灾难推文数据集 (https://www.kaggle.com/vstepanenko/disaster-tweets)该数据集包含11,370条推文,其中19%与灾难相关,其余的不相关。因此,该数据集的标签也是不平衡的。该数据集支持二元分类练习,在这里我们拟合机器学习模型以预测一条推文是否与灾难相关。
  4. Reddit 新闻频道的 Reddit 新闻数据集(https://www.kaggle.com/aaron7sun/stocknews) 该数据集包含每天排名前25(基于 Reddit 排名)的新闻标题,并附有一个二元标签,指示道琼斯工业平均指数调整后的收盘值是否上涨或保持不变。该数据集包含1989天的数据。对于每一天,我们将所有25条新闻标题合并成一个文档来配合标签。然后使用该数据集来拟合用于二元分类的机器学习模型。

比较的模型如下:

  1. 首先,我们使用了每篇文本文档的词频-逆文档频率(TF-IDF)表示来进行分类。这种标准方法使用文章中的所有词(不仅仅是词列表计数的数值得分),并且是一个有用的baseline。
    • 如果我们有一个包含 N 篇文本的文章数据集,并且所有文章中有一个包含 V 个独特词的词汇表,那么可以在一个维度为 V×N 的词-文档矩阵中列出每篇文章中的词(术语)频率计数。对于该数据集的每一行,即该行词在所有列文档中的词频(TF)计数,我们将矩阵中的值除以包含该词的文档数量,即乘以逆文档频率(IDF)。
  2. Loughran-McDonald 的负面、正面、不确定性和诉讼倾向词列表来计算每篇文档中出现在每个列表中的词的比例。这将每篇文档转换为包含4个数值列的数据。
  3. 为了与 LM 特征集进行比较,我们使用了由 FinLex 算法生成的相同的四个特征(负面、正面、不确定性和诉讼倾向词列表)。我们在这些4个变量上拟合了机器学习模型。
  4. 我们使用之前的 FinLex 数据集,并通过添加基于欺诈和疏忽、安全、风险、确定性、不确定性、公平和不公平的新词汇表的附加列来增强它。我们称这个变量集为 FinLex+ 模型。

所有四种文本表示方式随后被拟合到一组机器学习模型的集成中。我们使用了一个名为 AutoGluon 的自动机器学习(AutoML)包来进行分类(Erickson 等人)。AutoGluon 是一个开源的 AutoML 框架,只需一行 Python 代码即可在未处理的表格数据集(数值加上文本)上训练机器学习模型。与主要关注模型/超参数选择的现有 AutoML 框架不同,AutoGluon Tabular 通过集成多个模型并在多层中堆叠它们来取得成功。所有实验中都使用了相同的模型集成。这些模型包括前馈神经网络、k-近邻算法、随机森林、额外树、LightGBM、XGBoost 和 CatBoost。这种方法支持对超参数选择的不可知性。

AutoGluon 是一种先进的方法,用于构建最佳的机器学习模型,然后将它们集成在一起以获得更好的模型。我们在这里提供一些简要的细节。代表文本的数值变量(X 自变量)和标签(Y 因变量)被用来训练上面提到的每一种机器学习模型(可以把它想象成拟合多个独立的非线性回归模型)。来自每个模型的预测值被加到 X 变量中,然后模型被重新拟合到扩展的自变量集。接着,来自每个模型的预测值被加权以创建一个组合预测,其中模型的权重由一个寻找最优模型权重的神经网络确定。整个方法被称为“堆叠集成”,这是一种准确且有效地汇集个体 ML 模型群体智慧的方式。

为什么在拟合4个数据集的机器学习模型时使用 AutoGluon 集成方法?

  • 通过在数据集上集成并加权不同的机器学习分类器,我们可以为每个数据集找到最佳模型。有可能在 FinLex 数据集上 XGBoost 表现更好,而在 LM 数据集上随机森林表现更好。如果我们只将4个数据集拟合到 XGBoost,我们会发现 FinLex 的表现优于 LM。通过 AutoGluon 进行集成,我们确保每个数据集能够自动找到其最佳预测模型,这使得不同词汇表之间的比较更加公平。

结果

报告了五个指标(参见表的行):

  1. 准确率,即正确预测的百分比;
  2. Matthews 相关系数(MCC),其范围从 -1 到 +1,其中高于 0 的分数表明分类能力;
  3. 精确度,即模型正确预测的特定类别的数量,这侧重于假阳性的多少;
  4. 召回率,即模型正确预测的每个类别的案例数量,这侧重于假阴性的多少;
  5. 最后,F1 分数,精确度和召回率的调和平均数。

在这里插入图片描述

上表显示了不同词汇表在四个数据集上的分类性能。我们可以看到,

  1. TF-IDF 的结果是最好的,因为它基于全文本,而不仅仅是基于词的得分。
  2. 基于未经进一步人工策划的 FinLex 的分类器的性能略逊于 LM。因此,算法策划的金融词汇表在这类分类任务上的表现并不如 LM,但差距不大,这表明这种方法可能是为其他应用开发更多词列表的一个良好起点。
  3. 在最后一个数据集(Reddit)上,FinLex 的表现优于其他方法。
  4. 我们增加了经过算法策划但未进一步人工策划的新列表(欺诈、疏忽、风险性和安全性),并将这一特征集称为 FinLex+。这一特征集包含了算法创建的额外词列表,这些列表可能包含区分正面情绪和负面情绪的词,因此我们在分类准确率上看到的提升是合理的,这也表明这些新词列表是一个额外的贡献。

未来工作方向

  • 这项工作可以扩展到除了新闻分类之外的其他金融应用和数据集。例子包括信用评分、分析师报告评分、使用新的风险和安全评分进行市场风险评分,以及通过增强 LM 的诉讼倾向词列表与 FinLex 的欺诈和疏忽列表来预测诉讼。
  • 使用该词汇表算法在其他数据集上也能发挥作用。尽管新闻文章较短,可能更适合本研究中的数值评分,但使用较长的金融文件(如监管文件、法律卷宗和分析师收益电话会议记录)来比较 LM 与 FinLex 也许会更有趣。
    用该词汇表算法在其他数据集上也能发挥作用。尽管新闻文章较短,可能更适合本研究中的数值评分,但使用较长的金融文件(如监管文件、法律卷宗和分析师收益电话会议记录)来比较 LM 与 FinLex 也许会更有趣。
  • 随着这些任务标记数据集的可用性越来越广泛,使用本文中的算法开发新的词列表将缩短其工业应用的时间。其他值得进一步研究的课题包括使用在金融相关数据集上训练的词嵌入,以及将我们的算法应用于生成其他行业的词列表。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2139734.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网络安全学习(二)Netdiscover

Netdiscover是一款网络扫描工具(kali中有这个工具),它可以扫描本地网络主机,它借助ARP协议实施主机发现,长这个样子。 点击打开,进入命令行。 首先查看本机的IP地址,命令为ifconfig&#xff0c…

TAG:BladeLLM 的纯异步推理架构

作者:张子鹏 PAI引擎团队 随着 GQA/MLA/MoE 等模型结构不断发展,大语言模型的推理逐步解除了显存限制,逐渐向着高并发、高吞吐的方向发展。推理引擎的运行时开销也变得不可忽视。主流 LLM 推理框架的运行时开销大致来自: Python …

【MySQL学习】基础指令全解:构建你的数据库技能

📃个人主页:island1314 🔥个人专栏:MySQL学习 ⛺️ 欢迎关注:👍点赞 👂🏽留言 😍收藏 💞 💞 💞 引言 下面的操作都是在windows 的…

AT89C51 Intel HEX手工结构分析 反汇编工具

在不查询格式情况下分析确定 Intel HEX 格式 Hex文件内容 :0300000002090BE7 :0C090B00787FE4F6D8FD7581080208F63C :01091700419E :1008F60078087C007D007BFF7A0979177E007F01EE :050906001208D080FE84 :10080000E709F608DFFA8046E709F208DFFA803EDA :1008100088828C83E709F0…

C++基础面试题 | C++中的构造函数可以是虚函数吗? C++中的析构函数一定要是虚函数吗?

文章目录 问题一:在C中,构造函数不能是虚函数。问题二:析构函数不一定需要声明为虚函数,但在多态环境下,建议一定将其声明为虚函数。示例虚函数总结 问题一:在C中,构造函数不能是虚函数。 这是…

PMP--一模--解题--81-90

文章目录 4.整合管理81、 [单选] 一位先前不活跃的干系人参与程度突然增加,这种意外的参与导致了一些变更请求。项目经理应该做什么? 4.整合管理82、 [单选] 公司的新产品系列将在两个月内发布,95%的项目任务均已完成。但是,管理层…

二分算法——优选算法

个人主页:敲上瘾-CSDN博客 个人专栏:游戏、数据结构、c语言基础、c学习、算法 本章我们来学习的是二分查找算法,二分算法的应用非常广泛,不仅限于数组查找,还可以用于解决各种搜索问题、查找极值问题等。在数据结构和算…

无人机飞手培训机构组建及市场分析

飞手培训机构是专门为培养无人机飞行员(飞手)而设立的教育机构。这些机构通过提供专业的培训课程,帮助学员掌握无人机飞行技术、了解相关法规、提升实战能力,并最终获得相关证书,以便在航拍摄影、农业植保、物流配送、…

MS SQL Server 实战 排查多列之间的值是否重复

目录 需求 范例运行环境 数据样本设计 功能实现 上传EXCEL文件到数据库 SQL语句 小结 需求 在日常的应用中,排查列重复记录是经常遇到的一个问题,但某些需求下,需要我们排查一组列之间是否有重复值的情况。比如我们有一组题库数据&…

django实现开发、测试、生产环境配置区分

文章目录 一、为什么要区分开发 (dev)、测试 (test) 和生产 (prod) 环境二、django项目如何通过配置实现环境配置的区分1、针对不同的环境创建不同的设置文件settings.py2、在设置文件中根据需要进行配置区分3、根据不同的环境运行使用不同的设置文件 任何实际的软件项目中都要…

使用Python打造全自动wx好友添加器:批量操作,高效省时的社交神器

在现代的数字营销和社交扩展中,自动化操作可以显著提高效率。尤其是wx这种广泛使用的即时通讯工具,很多用户有批量添加好友的需求,但手动操作费时费力。本教程将详细介绍如何使用 Python 开发一个自动化工具,帮助你批量添加wx好友…

宏任务和微任务+超全面试真题(持续更新ing

概念 微任务和宏任务是在异步编程中经常使用的概念,用于管理任务的执行顺序和优先级。 宏任务:setTimeout, setInterval,I/O 操作和 UI 渲染等。微任务: Promise 回调、async/await等 微任务通常比宏任务具有更高的优先级。 执…

C#基础(11)函数重载

前言 前面我们已经完成了ref和out补充知识点的学习,以及函数参数相关的学习,今天便再次为函数补充一个知识点:函数重载。 函数重载是指在同一个作用域中,可以有多个同名函数,但参数列表不同。它的发展可以追溯到早期…

【Chrome】开发一个Chrome扩展以及常见问题的解决方案

前言 本文介绍开发chrome扩展很重要的几种操作,如:操作网页dom、发送请求、渲染弹层、不同沙盒环境的通信方式、扩展与网页的通信方式、遇到iframe时的操作等。最终会提供一个简单的案例,其中涵盖了上述操作。 还有一些本人相关文章&#x…

HashMap 详解

哈希表 哈希表又叫散列表,或者映射、字典都是指哈希表,哈希表是通过关键码映射到数组的某个位置来访问的数据结构,实现这个映射的函数就是哈希函数,哈希表结合了数组和链表的优点,查找和插入操作的时间复杂度都是O(1)。…

MySQL篇(高级字符串函数/正则表达式)(持续更新迭代)

目录 讲点一:高级字符串函数 一、简介 二、常见字符串函数 1. CONCAT() 2. SUBSTRING() 3. LENGTH() 4. REPLACE() 5. TRIM() 6. UPPER() 7. LOWER() 8. LEFT() 9. RIGHT() 10. INSTR() 11. LENTH(str) 讲点二:正则表达式 一、简介 二、…

AIGC实战——多模态模型Flamingo

AIGC实战——多模态模型Flamingo 0. 前言1. Flamingo 架构2. 视觉编码器3. Perceiver 重采样器4. 语言模型5. FIamingo 应用小结系列链接 0. 前言 我们已经学习了文本生成图像模型 DALL.E 2,在本节中,我们将探索另一种多模态模型 Flamingo,它…

学习使用在windows系统上安装nodejs以及环境配置图文教程整理

学习使用在windows系统上安装nodejs以及环境配置图文教程整理 Node.js 介绍Node.js 安装1、Node.js下载2、Node.js安装3、Node.js测试4、Node.js安装目录5、Node.js环境变量配置6、配置镜像站,提升速度7、检查镜像站配置8、测试环境变量是否生效9、安装cnpm Node.js…

jwt报错,位置:找不到符号 parseClaimsJws(java.lang.String)

报错显示如图 报错信息为: E:\idea\project\tlias\src\main\java\org\itheima\tlias\utils\JwtUtils.java:36:17 java: 找不到符号 符号: 方法 parseClaimsJws(java.lang.String) 位置: 接口 io.jsonwebtoken.JwtParserBuilder 解决办法 项目使用的是最新…

p12docker 进入容器的命令和拷贝的命令

进入当前正在运行的容器 第一种方式是执行docker exec -it 8d57ffda7a29 /bin/bash这个时候可以根据docker容器的id进入到指定id的容器当中***(这个是比较常用的)*** 老师的笔记 第二种方式是docker attach 8d57ffda7a29 这里还是直接引用老师的笔记吧 从容器内部拷贝文…