量化投资与机器学习微信公众号,是业内垂直于量化投资、对冲基金、Fintech、人工智能、大数据领域的主流自媒体公众号拥有来自公募、私募、券商、期货、银行、保险、高校等行业30W+关注者,曾荣获AMMA优秀品牌力、优秀洞察力大奖,连续4年被腾讯云+社区评选为“年度最佳作者”。
作者:Boyu Zhang、 Hongyang (Bruce) Yang、Tianyu Zhou、Ali Babar、Xiao-Yang Liu
来自:Enhancing Financial Sentiment Analysis via Retrieval Augmented Large Language Models

在之前的推文中我们分享了GPT模型与传统文本分析模型之间表现的对比,本文我们来看下如何系统全面的使用GPT进行金融情绪分析。
金融情绪分析是提取、量化和研究金融文本、新闻文章和社交媒体内容中的情感状态和主观信息的重要工具。它的重要性在于它有可能预测市场走势,并为投资者的行为提供有价值的见解。鉴于市场反应经常受到新闻情绪的影响,这些情绪可能是积极的、消极的,也可能是中性的,金融情绪分析在帮助交易员和金融机构做出明智决策方面发挥着关键作用。它通过对市场情流的理解,帮助管理风险和识别潜在的投资机会。
近年来,许多研究转向使用自然语言处理模型来提高金融情绪分析的准确性和效率。传统的NLP模型受模型参数和训练语料库规模的限制,往往缺乏全面理解复杂金融新闻的能力,从而限制了金融情绪分析的有效性。这些限制有时会导致金融情绪分析任务的结果欠佳。相比之下,大型语言模型(LLM)的出现引领了NLP领域的新时代。这些模型在庞大而多样的语料库上接受过预先训练,在各种NLP任务中的表现逐渐优于许多其他模型,因为它们能够从广泛的训练中进行概括,甚至从以前看不见的财务数据中获得有意义的见解。
然而,直接将LLM应用于金融情绪分析存在两个显著的挑战:
  • 首先,LLM预训练中使用的目标函数与预测金融情绪的目标之间的差异可能导致LLM无法像预期的那样一致地输出用于金融情绪分析的标签。
  • 其次,金融情绪分析的典型主体,如新闻快讯和推文,其特点是简洁,往往缺乏足够的背景信息。信息的稀缺性不仅干扰了人类专家的判断,也对LLM的判断提出了重大挑战。
为了应对上述挑战,在我们的研究中,我们提出了一个检索增强的大型语言模型金融情绪分析框架。该框架由两个关键组件组成:
  • 指令微调LLM,它使用一组有限的指令遵循示例来改进LLM,这些示例专门用于金融情绪分析,使LLM的预测与用户意图保持一致,并显着提高其预测准确性。
  • 检索增强组件,它为新闻简报或推文中的简短陈述引入了额外的上下文。它使用搜索引擎和经过验证的财务来源从外部来源收集相关背景信息。然后将这个丰富的上下文传递给指令调优的LLM进行预测,从而产生更准确和细致的结果。
通过测试以上方法在准确性和F1分数方面的性能提高了15%至48%,明显优于传统的情感分析模型和著名的通用LLM。
框架概览
如下图所示,由指令调优LLM和RAG模块两个模块组成。在第一个模块中,我们应用指令调优来微调开源预训练的LLM,如LLaMA和ChatGLM,使其在提供金融新闻或推文时的行为与预测金融情绪标签保持一致。这个过程包括构建一个特定于金融情绪分析任务的指令遵循数据集,并使用它来微调预训练的LLM。
RAG模块在框架中起着至关重要的作用,它从与输入查询相关的外部源检索相关的背景信息。
这些外部来源包括彭博和路透等经过验证的新闻平台,高盛和花旗等机构的研究出版物,以及Twitter和Reddit等社交媒体平台。我们采用多源查询和基于相似性的检索方法从这些信息中定位最相关的信息来源。
随后,将检索到的上下文与原始查询结合起来构造最终查询。然后调用指令调优的LLM来基于这个增强查询生成情感预测。这样,将缺失的背景知识提供给LLM,使其能够做出更准确的预测。
指令调优LLM
指令调优被证明是一种非常有效的方法,可以使LLM的行为与用户指令保持一致。在金融情绪分析领域应用指令调整通常有三个步骤。
1、首先,我们构建了一个指令跟随数据集,由成对的指令和它们相应的情绪标签组成。该数据集是指导LLM有效理解用户指令的基础。格式化金融情绪指令跟踪数据集:通过手动标记创建金融情绪指令跟踪数据集需要专业金融专业人员的专业知识,这可能是昂贵的。另一种方法是以较低的成本将现有的有监督的金融情绪分析数据集转换为指令遵循数据集。这些数据集通常被格式化为文本分类任务,其中输入是金融新闻或标题,输出是表示积极、消极和中性情绪的整型标签。接下来,我们创建了10条描述金融情绪分析任务的人工编写指令,并将随机选择的一条指令与输入和输出结合起来,以“人类:[指令]+[输入],助手:[输出]”的格式,从原始数据集中制定每个样本。该过程如下图所示。
2、接下来,涉及对构建的数据集上的LLM进行微调。通过这个微调过程,模型学会在提供预测情绪标签的指令时准确地产生预期的反应。
3、最后一步是将LLM生成的输出映射回预定义的情感类。这一步进一步将预测与预定义的情感类对齐,并允许模型的性能是可测量的。由于指令微调LLM是一个自回归生成模型,即使我们使用一个遵循指令的数据集,用于引导其输出理想的情绪标签,它还是有可能的生成自由风格的文本。因此,我们需要映射模型的输出返回到指定的三种情绪。为了正确的评估。我们的做法是这样的: 如果模型的输出包含“正”、“负”或“中性”,我们把它映射到对应的标签;否则,我们把它看作是一种“中性”情绪。
RAG模块
RAG是一种将外部知识注入法学模型以提高响应生成准确性的有效方法。RAG模块的实现涉及几个步骤。
1、首先,我们建立外部知识来源,这些外部知识来源极有可能包含相关的金融背景信息。
当基于查询检索相关的金融上下文时,我们的目标是访问真实的、相关的、有洞察力的和全面的数据,而不是随机的互联网搜索。为了实现这一目标,我们首先确定以下信息来源:
  • 新闻来源:媒体如彭博社、雅虎财经、路透社、CNBC和Market Screener提供的信息本质上是一致的,对金融解释至关重要。这些来源往往对其作者和记者有严格的内部指导方针,以确保可靠和经过验证的内容。此外,由于它们的业务性质,这些媒体经常对各种金融新闻提供最早的报道。
  • 研究出版平台:集中式和众包式的研究出版平台提供了丰富的金融见解。知名机构如高盛和花旗分别为其机构客户提供独家研究服务Marquee和Velocity。鉴于它们的直接适用性,这些研究提供了大量高度一致的、系统的和经过验证的见解。
  • 出版商平台:如Seeking Alpha,是独立贡献者提供各种见解的资源库。它们涵盖了广泛的金融信息,包括大量的价格走势分析、收益电话和会议记录,以及与各种规模的公司有关的投资研究。所有这些源都提供了检索api,使我们能够访问和检索信息。
2、接下来,我们执行一个两步知识检索过程,包括多源知识查询和基于相似度的检索。这些步骤使我们能够收集与输入查询相关的上下文。两步知识检索:我们通过两步过程检索给定查询的上下文财务信息。
  • 多源知识查询:财经新闻标题或推文通常很短,通常包括不相关的内容,如股票行情。为了解决这个问题,我们的第一步涉及到使用正则表达式预处理文本并删除不相关的代码或符号。随后,我们利用各种知识来源的检索api来提取相关信息。如果新闻项包含时间信息,我们在特定的时间范围内执行搜索。搜索返回来自已识别的财务来源的相关上下文片段的列表。对于每个上下文片段,我们收集原始标题、编辑要点、文章主体段落、帖子和转发作为完整的上下文。这种查询策略使我们能够捕获与金融新闻相关的广泛信息。
  • 基于相似度的检索:即使在初始检索之后,获得的内容仍然可能包含相当数量的不相关信息,这可能会影响情绪预测的准确性。为了解决这个问题,我们提出了一种基于相似度的高级检索算法。该算法旨在从第一步获得的结果中进一步过滤和提取最相关的内容。具体来说,我们使用改进的重叠系数作为相似性度量来检索和经验选择与输入查询相似度高于0.8的上下文。
3、最后,我们将原始输入查询与检索的上下文结合起来,为指令调优的LLM创建输入数据,LLM生成最终结果。
测试
我们的训练数据是Twitter财经新闻数据集和FiQA数据集中的10501个样本。基准模型有BloombergGPT,ChatGPT,LLaMA-7B, ChatGLM2-6B和 FinBERT。我们微调的模型是基于LLaMA-7B。测试数据集有FPB和Twitter财经新闻数据集。
首先对比了指令调优LLM与基准的表现,如下表所示,指令调优的LLaMA7B模型的性能优于其他模型,达到了最高水平准确性和F1分数。从这些结果表明,指令调优方法明显可行显著提高了模型的财务性能情绪分析。
下表展示了加入RAG模块后模型效果的提升。首先,我们的指令调优LLaMA-7B模型(没有上下文始终超过FinBERT和LLaMA-7B的准确性和F1分数。其次,在我们的模型中引入RAG后准确度从0.86提高到0.88,并且有了改进F1得分为0.811 ~ 0.842。这证明了上下文的包含增强了LLM的能力理解提示,从而提高性能。
继续阅读
阅读原文