GPT-4预测股票涨跌更更更准了!东京大学新框架LLMFactor提升显著 | ACL 2024

花一秒钟就看透事物本质的人,和花一辈子都看不清的人,注定是截然不同的命运。——唐·柯里昂

除了少数天纵奇才,大多数人都是通过知识和阅历的不断积累,才逐渐锻炼出观察和判断事物变化规律的能力。而如果说有一件事,可以牵动着我们去不断追踪、分析和判断,那无疑就是明天的彩票号码(划掉),股票涨跌了!尤其对许多曾经或者现在仍在股市征战四方的朋友来说。

那么不知道大家有没有想过,作为世界上最博学的存在,大模型是否能做到透过某一事件的变化,就能准确预测出相应股票涨跌的能力呢?或许今天这篇文章,会给你答案。

论文标题:
LLMFactor: Extracting Profitable Factors through Prompts for Explainable Stock Movement Prediction

论文链接:
https://arxiv.org/pdf/2406.10811.pdf

图片

金融市场分析

近年来,大模型(LLM)在处理文本数据,尤其是对文本数据的分析和理解方面取得了巨大成功,但金融市场的预测依赖于对时间序列数据的复杂分析,这要求模型不仅要理解历史数据,还要能够从中提取对未来有预测价值的信息。

现有方法,如基于关键词或情感分析的预测模型,虽然能够提供一定程度的市场洞察,但往往缺乏对股票价格变动的清晰解释和人类可读性。此外,有效市场假说(Efficient Market Hypothesis,EMH)虽然提出股票价格反映了所有可用信息,从而使得预测未来价格变动变得困难。但后续研究揭示了市场效率的局限性,如信息不对称和非理性行为等现象,这为通过识别市场低效性来寻求超额回报提供了机会。

图片

因此,研究者开始探索包括新闻报道和社交媒体在内的多种数据类型,以增强预测能力。同时,随着公众情绪对市场趋势影响的实证研究增多,研究者尝试从这些数据中提取情绪和关键词来预测市场动态。然而,这些方法在提供预测结果的同时,往往忽略了解释性,而这对于投资者和分析师来说是至关重要的。

本文提出了LLMFactor框架,旨在通过序列知识引导提示(Sequential Knowledge-Guided Prompting,SKGP)策略,从LLMs中提取与股票市场动态直接相关的因素,并提供清晰的解释,以增强预测的可信度和实用性。

LLMFactor

任务定义

考虑某股票的历史价格序列,其中表示时间窗口的大小。预测股票走势的任务被公式化为一个二元分类问题,其中股票价格序列被转换为一系列股票走势,在这个序列中,表示股票价格从到的上升,而表示下降。

本文的任务目标是对于目标股票,在给定目标预测日期,相关新闻和的情况下,预测其,即预测特定股票在未来某一时间点的价格走势。

第一阶段:匹配和获取新闻背景知识

匹配和获取新闻背景知识(Matching and Acquiring News Background Knowledge)的过程是SKGP的首要阶段。

这一阶段的核心在于将目标股票与目标预测日期的相关新闻进行匹配,并从中获取有助于理解新闻内容和预测股票价格走势的背景知识。

具体来说,研究者首先构建了一个包含公司、其股票代码和所属行业的元组列表,这些信息从纽约证券交易所(NYSE)和纳斯达克(NASDAQ)交易所收集而来。然后,通过匹配过程,确定与目标新闻相关的股票列表,即。

接下来,利用LLMs通过填空提示(fill-in-the-blank)技术来获取目标股票与匹配股票之间的关系。这种提示方法定义为。输入是一个关系模板,例如“请填空:和最可能处于 ___ 关系”,输出是关系类型,记为 。

这种获取新闻背景知识的方法显著提高了对新闻内容的理解,并且由于公司之间的关系在预测股票市场走势中起着关键作用,因此这种填空技术旨在通过限制响应格式来直接且明确地识别关系类型。例如,如果目标股票和匹配股票被识别为竞争对手,那么匹配股票的信息可能对目标股票产生负面影响。这一过程不仅增强了对新闻文本的理解,而且为后续的因素生成和股票价格走势预测提供了坚实的基础。

生成可能影响股票价格的因素

生成可能影响股票价格的因素(Generating Factors that May Affect Stock Prices)是SKGP的第二阶段。

在这一阶段,研究者指导LLMs分析目标新闻内容,识别出可能对股票价格产生影响的关键因素。这些因素与股票走势的关联度比关键词、情感、新闻摘要或整篇新闻文章更为紧密,因此提供了更高可能性的市场趋势预测。

为了生成可靠的因素,研究者使用特定的提示模板(FactorTemplate),要求LLMs从新闻中提取可能影响目标股票价格的前k个因素。LLMs在生成因素时,不仅考虑新闻中出现的词汇,而且综合考虑新闻内容及其对股票走势的潜在影响,并将内容中的重要元素进行概括。例如,如果新闻中提到“Nvidia股票在一月份的增长”,这表明Nvidia过去的股票表现良好,这种增长可能会对Nvidia未来的股价产生积极影响。

生成的因素不仅提供了对股票价格波动更即时和详细的见解,而且提高了股票价格趋势的可解释性以及LLMs预测背后的理由。这些因素随后被用于预测模型中,与历史股票价格数据和背景知识相结合,以提高预测的准确性和可解释性。通过这种方式,LLMFactor框架能够将从新闻文本中提取的深层次信息转化为对股票市场动态的清晰理解和预测。

预测股票价格走势

预测股票价格走势是LLMFactor框架的核心环节,它融合了新闻背景知识和可能影响股票价格的因素,以指导LLMs进行预测。这一过程始于将时间序列数据转换为文本格式,使LLMs能够理解并处理。具体来说,股票价格走势序列被转换成一个文本序列,其中上升和下降分别用“rose”和“fell”表示。

接着,研究者构建了一个时间模板(TimeTemplate),将过去的股价走势转换成具有特定结构的句子,例如“在,的股价”。此外,还构建了一个价格模板(PriceTemplate),它包括一个初始指令,要求基于所提供的信息判断股票价格的走向(上升或下降),并给出理由,以及一个结论性指令,用于预测特定日期的股价走势“在,的股价”。

通过这种方式,LLMFactor框架不仅能够预测股票价格的未来走势,还能够提供对这些预测背后逻辑的清晰解释,从而增强了预测的可解释性和透明度。

图片

实验

实验设置

实验使用了四个基准数据集,包括:

  • StockNet:包含87个美国股市股票,相关的推文和2014-01-01至2016-01-01期间的历史价格数据。

  • CMIN-US:包含110个美国股市股票,相关的推文和2018-01-01至2021-12-31期间的历史价格数据。

  • CMIN-CN:包含300个中国股市CSI300指数股票,相关的推文和同一时间段的历史价格数据。

  • EDT:包含54,080篇新闻文章,以及2020-03-01至2021-05-06期间的相关股票和价格信息。

本文使用了准确率(Accuracy, ACC)和马修斯相关系数(Matthews Correlation Coefficient, MCC)作为评估模型效果的指标。

同时,采用了:

  • 基于关键词提取的模型(如PromptRank,KeyBERT,YAKE,TextRank,TopicRank,SingleRank,TFIDF)。-

  • 基于情感分析的模型(如EDT,FinGPT,GPT-4-turbo,GPT-4,GPT-3.5-turbo, RoBERTa,FinBERT)。

  • 结合文本和时间序列数据的模型(如CMIN,StockNet)。

共同作为本文的基线

实验结果

LLMFactor 在所有评估方法中表现最佳,其性能优于基于关键词、情感分析和多模态数据输入的现有最先进方法(SOTA)。在四个数据集上,LLMFactor的MCC分别实现了2.9%,0.4%,11%,和4.8%的改进。

图片

对比基线模型,关键词模型在预测股价走势方面表现有限,这表明仅依靠关键词可能不足以提供对股价变动的深入洞察。而情感分析方法在不同模型间表现不一,其中一些基于LLM的模型(如GPT-4和GPT-4-turbo)在文本情感分析方面表现较好。结合文本和时间序列的模型(如CMIN, StockNet)整体性方面表现良好,但可能缺乏对文本细节的深入分析。

实验中使用了三种不同的LLM模型变体(LLMFactorGPT-4-turbo, LLMFactorGPT-4, LLMFactorGPT-3.5-turbo)来评估框架的性能。这些变体在不同数据集上的表现略有差异,但总体上都优于基线模型。

此外,通过消融研究,发现LLMFactor的因素层(factor layer)对整体性能的提升贡献最大,其次是关系层(relation layer)。价格层(price layer)虽然提供了基础的股价走势信息,但其对性能提升的贡献相对较小。

图片

总的来说,LLMFactor通过结合背景知识、从新闻中提取的因素以及历史股价数据,显著提高了预测的准确性和可解释性。尽管LLMFactor在所有数据集上都取得了良好的结果,但在不同市场和数据类型上的细微性能差异表明,模型对英语文本的处理可能更为熟练。

图片

结论和展望

股市就像是一个巨大的海洋,里面充满了各种各样的信息。有的像是水面上的波纹,一眼就能看出来,比如公司的新闻报道或者社交媒体上的热门话题。但是,真正影响船只方向的,可能是那些藏在水下的暗流,也就是那些不容易被发现,但影响力巨大的因素。

LLMFactor就像是一个熟练的潜水员,依托于LLM的强大基础能力,它能够深入到这些信息的海洋里,找到那些关键的暗流。通过SKGP方法,先了解一些背景知识,比如公司之间的关系,然后再从新闻报道中提取出可能影响股票价格的因素,从而更加准确地预测股票价格将会上涨还是下跌。

当然,正如文中提到,LLMFactor对不同语言之间存在一定的性能差异,而它在预测时,也会出现一些不确定性,这就需要未来对其鲁棒性改进的研究。此外,如果能更充分地应用上LLM的知识储备,尤其是金融zhuan,或许还能进一步提高LLMFactor对事件的理解和分析能力。

图片

图片

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

代码便利工具

【原创】PyCharm 安装MarkDown插件,并修改.md文件默认打开方式_pycharm如何修改markdown-CSDN博客 1.上面是填写README的工具。

DeepFaceLive----AI换脸简单使用

非常强大的软件,官方github https://github.com/iperov/DeepFaceLive 百度云链接: 链接:https://pan.baidu.com/s/1VHY-wxqJXSh5lCn1c4whZg 提取码:nhev 1下载解压软件 下载完成后双击.exe文件进行解压.完成后双击.bat文件打开软件 2 视频使用图片换…

JAVA+SSM+VUE《病人跟踪治疗信息管理系统》

1病人功能模块 病人登录进入病人跟踪治疗信息管理系统可以查看首页、个人中心、病例采集管理、预约管理、医生管理、上传核酸检测报告管理、上传行动轨迹管理、病人治疗状况管理等内容。 病例采集管理,在病例采集管理页面可以查看账号、姓名、住院号、入院时间、病…

2024鲲鹏昇腾创新大赛集训营Ascend C算子学习笔记

异构计算架构(CANN) 对标英伟达的CUDA CuDNN的核心软件层,向上支持多种AI框架,向下服务AI处理器,发挥承上启下的关键作用,是提升昇腾AI处理器计算效率的关键平台。主要包括有各种引擎、编译器、执行器、算…

[leetcode hot 150]第三题,无重复字符的最长子串

题目: 给定一个字符串 s ,请你找出其中不含有重复字符的 最长 子串的长度。 可以使用"滑动窗口"的方法来解决这个问题。基本思路如下: 使用两个指针(start和end)来定义一个窗口移动end指针来扩大窗口,直到遇到重复字符如果遇到重复字符,移动s…

Spring源码九:BeanFactoryPostProcessor

上一篇Spring源码八:容器扩展一,我们看到ApplicationContext容器通过refresh方法中的prepareBeanFactory方法对BeanFactory扩展的一些功能点,包括对SPEL语句的支持、添加属性编辑器的注册器扩展解决Bean属性只能定义基础变量的问题、以及一些…

每周题解:最大半连通子图

题目链接 最大半连通子图 题目描述 一个有向图 G ( V , E ) G\left(V,E\right) G(V,E) 称为半连通的 (Semi-Connected),如果满足: ∀ u , v ∈ V \forall u,v\in V ∀u,v∈V,满足 u → v u\to v u→v 或 v → u v\to u v→u&#xff0…

Go语言实现钉钉机器人接入Dify工作流

go语言实现实现钉钉机器人接入dify工作流,完成ai 流式问答 代码地址 有用的话点个star github地址 效果 配置使用 修改.env_template文件 为.env 设置.env文件内的环境变量 API_KEY: dify的api_keyAPI_URL: dify 的api接口CLIENT_ID : 钉钉机器人应用的idCLIENT…

基于Java的家政预约系统设计与实现

作者介绍:计算机专业研究生,现企业打工人,从事Java全栈开发 主要内容:技术学习笔记、Java实战项目、项目问题解决记录、AI、简历模板、简历指导、技术交流、论文交流(SCI论文两篇) 上点关注下点赞 生活越过…

Docker-compose 实现Prometheus+Grafana监控MySQL及Linux主机

. ├── Grafana │ ├── data │ └── docker-compose.yaml ├── Mysql │ ├── conf │ ├── data │ ├── docker-compose.yaml │ └── logs ├── Mysqld_exporter │ ├── conf │ └── docker-compose.yaml ├── node-exporter │…

RPA 第一课

RPA 是 Robotic Process Automation 的简称,意思是「机器人流程自动化」。 顾名思义,它是一种以机器人(软件)来替代人,实现重复工作自动化的工具。 首先要说一句,RPA 不是 ChatGPT 出来之后的产物&#x…

推荐三款常用接口测试工具!

接口测试是软件开发中至关重要的一环,通过对应用程序接口进行测试,可以验证其功能、性能和稳定性。随着互联网和移动应用的快速发展,接口测试变得越来越重要。为了提高测试效率和质量,开发人员和测试人员需要使用专业的接口测试工…

自然语言处理学习(2)基本知识 文本预处理+文本数据分析+文本增强

conda activate DL conda deactivate课程链接 一 一些包的安装 1 stanfordcorenlp 在anoconda prompt 里面:进入自己的conda环境,pip install stanfordcorenlp 进入方式 相关包下载,Jar包我没有下载下来,太慢了,这个…

提高Python爬虫的匿名性:代理ip的配置策略

在数字化时代的今天,网络数据采集已成为获取信息的重要手段,尤其在竞争激烈的商业环境中。Python作为一种强大的编程语言,广泛应用于开发各种数据爬虫来自动化地抓取网络信息。然而,随着网站安全意识的提高,越来越多的…

牛客小白月赛97

A.三角形 判断等边三角形&#xff0c;题不难&#xff0c;代码如下&#xff1a; #include <iostream>using namespace std;int a[110];int main() {int n;cin >> n;int x;int mx 0;for(int i 1; i < n; i){cin >> x;mx max(mx, x);a[x];}for(int i 1…

Java OnVif应用PTZ控制

研究OnVif在Java程序中应用&#xff0c;在此作记录&#xff0c;onvif-java-lib/release at master milg0/onvif-java-lib GitHub&#xff0c;在此连接中下载jar&#xff0c;并在项目中引用&#xff0c;该jar封装很好&#xff0c;可以方便快速完成功能 1.登录OnVif 2.PTZ控制…

【大数据】—美国交通事故分析(2016 年 2 月至 2020 年 12 月)

引言 在当今快速发展的数字时代&#xff0c;大数据已成为我们理解世界、做出决策的重要工具。特别是在交通安全领域&#xff0c;大数据分析能够揭示事故模式、识别风险因素&#xff0c;并帮助制定预防措施&#xff0c;从而挽救生命。本文将深入探讨2016年2月至2020年12月期间&…

反射(通俗易懂)

一、反射(Reflection) 反射就是:加载类&#xff0c;并允许以编程的方式解剖类中的各种成分(成员变量、方法、构造器等) 动态语言&#xff0c;是一类在运行时可以改变其结构的语言&#xff1a;例如新的函数、对象、甚至代码可以被引进&#xff0c;已有的函数可以被删除或是其他…

强化学习的数学原理:值迭代与策略迭代

概述 从课程地图上可以看出来&#xff0c;这是本门课程中第一次正式的介绍强化学习的算法&#xff0c;并且是一个 model-based 的算法&#xff0c;而在下一节课将会介绍第一个 model-free 的算法&#xff08;在 chapter 5&#xff09;。而这两节和之前所学的 BOE 是密切相关的&…

笔记-python爬虫概述

目录 常用第三方库 爬虫框架 动态页面渲染1. url请求分析2. selenium3. phantomjs4. splash5. spynner 爬虫防屏蔽策略1. 修改User-Agent2. 禁止cookies3. 设置请求时间间隔4. 代理IP池5. 使用Selenium6. 破解验证码常用第三方库 对于爬虫初学者&#xff0c;建议在了解爬虫原…