当前位置: 首页 > news >正文

HATS:分层图注意力神经网络用于股票预测

HATS:分层图注意力神经网络用于股票预测

原创 QuantML QuantML 2024年08月09日 19:08 上海

Content

本文提出了一种名为HATS(Hierarchical Graph Attention Network)的分层图注意力网络,用于预测股市动向。HATS通过选择性地聚合不同类型关系的信息,并将其加入到每个公司的表示中,从而提高了预测的准确性。实验结果显示,HATS在个股价格预测市场指数运动预测任务上的性能均优于现有方法,特别是在使用相关关系数据时,其性能提升显著。

图片

1. 引言 (Introduction)

股市是市场经济的关键指标,每天有数十亿股股票在全球范围内交易,其预测对于金融行业至关重要,但同时也极具挑战性。尽管存在争议,但许多研究表明股市在一定程度上是可以预测的,这促使了学术界和工业界的研究者们投入大量精力去探索预测方法。

报告接着介绍了两种主要的股市分析方法:基本面分析和技术分析。基本面分析师通过深入研究公司的财务状况和盈利能力来评估其证券的内在价值,而技术分析师则专注于分析股票价格的时间序列数据,寻找可盈利的模式,这两种方法都对股市预测有着重要的影响。

现有方法在处理股市预测时存在局限,尤其是在利用关系数据方面。作者指出,利用图结构数据和关系数据的潜力尚未被充分挖掘,并提出了HATS模型,这是一个创新的层次化图注意力网络,旨在通过更智能地聚合不同类型关系的信息来提高股市预测的准确性

2. 预备知识 (Preliminaries)

本章详述了图论的基本概念,包括图的顶点(节点)、边(边缘)和邻接矩阵等,这些是理解和应用图神经网络(GNN)的基础。节点特征(属性)以特征矩阵形式存在,可以在时空图上随时间变化,通过特征矩阵的变化来定义。此外,图神经网络通过学习图上的节点表示来进行模式识别,其中谱方法如图卷积网络(GCN)利用傅里叶域中的局部模式来提取信息。

该章节还深入探讨了图神经网络的两大类方法:基于谱的方法和非谱方法。谱方法如GCN使用卷积神经网络来捕获图数据中的局部模式,而非谱方法则直接在图上定义卷积操作,利用空间上接近的邻居节点信息。此外,还讨论了注意力机制在图神经网络中的应用,这种机制可以为不同邻居节点的信息分配不同的权重,以选择性地聚合特征,这对于后续的节点分类和图分类任务至关重要。

3. 方法论 (Methodology)

  • 总体框架:HATS框架包括以下模块:

    • 特征提取模块:该模块负责从历史股价数据中提取特征,使用LSTM和GRU网络作为特征提取的工具。这些网络能够学习并捕捉股价随时间变化的模式,为模型提供每个公司基于历史数据的状态表示。

    • 关系建模模块:这是HATS模型的核心,它利用图神经网络来处理公司之间的关系数据。该模块通过设计一种分层的注意力机制,能够在不同层次上评估和选择性地聚合来自邻居节点的信息,从而更新每个节点的表示。

    • 任务特定模块:在节点表示经过关系建模模块更新之后,这些表示将被送入特定于任务的模块。该模块负责将更新后的节点特征用于执行具体的预测任务,例如个股价格预测或市场指数预测。

  • 分层注意力网络:该网络通过两个主要的注意力层——状态注意力层和关系注意力层——来工作。状态注意力层负责在相同类型的关系中为邻居节点分配不同的权重,以便选择对未来趋势预测最重要的信息。接着,关系注意力层进一步对不同关系类型的聚合信息进行加权,确保模型能够识别并优先考虑对预测最为关键的关系类型。通过这种分层的注意力机制,HATS模型能够动态地从复杂的关系网络中提取出对股票价格预测最有价值的信息,同时忽略那些可能带来噪声的无关信息。这一过程不仅增强了模型对市场变动的敏感度,还提高了预测的准确性和鲁棒性。

图片

  • 个股预测层:作者介绍了如何使用更新后的节点表示来进行股票价格运动的分类预测。该章节提出了一个简单的线性变换层,用于将HATS模型的输出映射到三个可能的股价运动类别:上涨、中性、下跌。此外,还讨论了如何使用交叉熵损失函数来训练模型,并根据预测值和实际股价运动之间的差异进行优化。个股预测层的设计允许模型基于每个公司的时间序列数据和通过关系数据获得的增强信息,来预测其未来的股价走势。

  • 图池化用于指数预测:作者详细描述了如何使用图池化技术来聚合市场指数中各个公司节点的表示,以形成对整个市场指数的预测。章节介绍了市场指数的构成,即基于特定标准选择的多只股票的集合,并说明了如何通过平均池化方法来整合这些公司的历史价格模式和特征。此外,章节还讨论了如何将通过图池化得到的指数特征与直接从历史价格数据中提取的特征相结合,以生成市场指数的最终表示。最后,章节提出了使用简单的线性变换和交叉熵损失函数来训练模型,并对市场指数的未来运动进行预测。这一方法允许HATS模型不仅预测个股价格,还能够预测整个市场指数的走势,为投资者提供了一种新的市场分析工具。

4. 数据 (Data)

  • 价格相关数据:数据集涵盖了2013年2月8日至2019年6月17日期间的交易信息,包括了S&P 500指数公司的股价变动。股价数据被用来展示市场的整体趋势和波动性,以及在不同市场条件下模型的预测性能。研究者将数据分为不同的时间段,以评估模型在不同市场波动性下的表现。此外,研究者使用历史价格变化率作为输入特征,以预测公司股价的未来变动。

图片

  • 公司关系数据:关系数据从Wikidata收集,Wikidata是一个包含丰富实体关系信息的知识库。研究者利用Wikidata中的元路径技术,将原本的异构图转换为只包含公司节点的同构图,以便于分析公司间的关系。通过这种方法,研究者能够识别和利用75种不同类型的关系,包括直接关系和通过元路径建立的间接关系。这些关系数据被用来构建公司之间的关系网络,进而分析它们对股价预测的影响。研究者还讨论了如何选择和利用这些关系数据,以及它们如何被集成到模型中以提高预测的准确性。

5. 实验 (Experiments)

       一般设置:

  • 实验设计:

    • 数据被划分为训练集、评估集和测试集,每阶段分别包含250天、50天和100天的数据。

    • 模型使用50天的历史价格变化率作为输入特征,这些特征通过特征提取模块处理,采用LSTM和GRU网络。

    • 所有模型采用Adam优化器,并在一定范围内调整超参数,如学习率、权重衰减和dropout比例。

    • 实验实施了早期停止策略,基于评估集上的F1分数,以防止模型过拟合。

      评估:

    • 使用了多个指标来评估模型性能,包括准确率、F1分数、回报率和夏普比率。

    • 准确率和F1分数是分类任务中常用的指标,用于衡量模型预测的精确性和综合性能。

    • 回报率计算了基于模型预测结果构建的投资组合的日收益率。

    • 夏普比率衡量了投资回报与风险的比值,使用13周美国国债收益率作为无风险利率的代理。

      方法:

    • 实验中包括了多种基线模型,以评估HATS模型与现有方法的性能差异。

    • 基线模型包括基本的多层感知器(MLP)、卷积神经网络(CNN)和长短期记忆网络(LSTM)。

    • 还包括了图卷积网络(GCN)及其变体,如仅使用表现最好的20种关系类型的GCN-TOP20,以及时序图卷积网络(TGC)。

    • 所有使用关系建模模块的模型在个股预测任务中采用LSTM,在市场指数预测任务中采用GRU作为特征提取模块。

  • 关系数据的影响:作者探讨了使用不同类型关系数据对股票市场预测性能的影响。实验旨在评估各种关系信息对模型预测能力的具体贡献,并识别出哪些类型的关系数据对预测最为有用。实验首先对个股预测任务中使用的基本图卷积网络(GCN)模型进行了测试,该模型不区分关系类型,而是将所有关系同等对待。通过改变输入到GCN的邻接矩阵,即关系类型,研究者能够观察到不同关系对模型性能的具体影响。研究者列出了在第四阶段测试集上表现最好和最差的10种关系类型,并报告了它们的F1分数。分析发现,并非所有关系数据都能提升预测性能,某些关系数据的使用甚至会导致性能显著下降。最佳关系类型的性能比最差关系类型高出6%,这表明在股市预测中,选择合适的关系数据至关重要。此外,实验还发现,通常密集连接的网络携带大量噪声,这可能会向目标节点的表示中添加不相关信息。例如,与国家和股票交易所相关的地理和法律形式关系就构成了密集网络,这些关系在预测中的作用不大。

  • 个股预测:

        分类准确性:

图片

    • 实验中,将股票价格运动方向的预测任务定义为三类:上升、中性、下降。

    • 使用了准确率和F1分数作为评估分类性能的主要指标,其中F1分数是衡量模型精确性和召回率的平衡指标。

    • 基线模型包括MLP、CNN和LSTM,这些模型没有使用关系建模模块。

    • 包含关系建模模块的模型包括GCN、GCN-TOP20和TGC,这些模型利用了公司间的关系数据来增强预测。

    • 实验结果显示,HATS模型在F1分数上超越了所有基线模型,包括LSTM,证明了其在个股预测任务中的优越性。

    • 特别地,GCN-TOP20模型虽然在某些情况下表现良好,但HATS模型在整体上提供了更稳定和准确的预测。

        盈利能力测试:

图片

图片

    • 基于模型的预测结果,构建了一个中性和化的投资组合,并根据预测值选择了15家公司进行多头和空头操作。

    • 使用了日回报率和夏普比率来衡量投资组合的盈利能力,其中夏普比率考虑了投资回报与风险之间的关系。

    • HATS模型在日回报率上表现优异,提供了较高的平均日回报率,显示出良好的盈利潜力。

    • 在夏普比率方面,HATS模型同样展现出了其稳定性和风险调整后的回报能力。

  • 指数预测:研究者应用HATS模型对市场指数的走势进行预测,选取了S&P 500指数中的431家公司数据,构建了五个代表不同行业领域的市场指数。通过图池化方法聚合公司节点特征,HATS在F1分数和准确率上均优于MLP、CNN、LSTM、GCN和TGC等基线模型,验证了其在市场指数预测任务中的有效性。尽管其他模型在市场指数预测上并未显著超越LSTM,但HATS模型的卓越性能突出了关系数据在股市预测中的价值

图片

  • 案例分析:研究者计算并可视化了每种关系类型的注意力分数,揭示了模型在预测过程中赋予不同关系的重要性。通过比较平均注意力分数最高和最低的20种和10种关系,发现模型倾向于重视如母子公司关系这样的支配-从属关系,以及代表产业依赖的其他关系,而地理特征类关系则得到了较低的注意力分数。其次,研究者通过T-SNE算法将HATS模型得到的公司节点表示映射到二维空间,进行了可视化。这些表示根据股票的当日运动(上升、中性、下降)以及公司的行业进行了颜色编码。可视化结果显示,具有上升标签的公司节点与具有下降标签的公司节点在二维空间中存在明显分离,而中性运动的公司节点则较为分散。此外,同一行业的公司节点形成了聚集的簇,表明HATS模型能够学习到反映公司特征和行业属性的有意义的表示。

图片

图片

6. 结论 (Conclusion)

本文总结了HATS模型在股市预测方面的研究成果,强调了模型通过选择性地聚合不同类型关系数据来学习有用的节点表示,并在个股价格预测和市场指数运动预测任务上均展现出优越性能。实验结果证明了适当使用关系数据的重要性,并且表明HATS模型在自动选择最相关信息方面超越了现有模型。

相关文章:

HATS:分层图注意力神经网络用于股票预测

HATS:分层图注意力神经网络用于股票预测 原创 QuantML QuantML 2024年08月09日 19:08 上海 Content 本文提出了一种名为HATS(Hierarchical Graph Attention Network)的分层图注意力网络,用于预测股市动向。HATS通过选择性地聚合…...

【日常记录-MySQL】MySQL设置root用户密码

Author:赵志乾 Date:2024-08-09 Declaration:All Right Reserved!!! 1. 简介 MySQL8.0.30安装后启动,发现root用户尚未设置密码。以下是两种设置root用户密码的方式。 2. 示例 2.1 mysqladmin…...

高级Web安全技术(第二篇)

我们继续第二篇,继续深入了解web的安全 一、概述 在Web应用的开发与部署中,安全问题不仅是技术挑战,更是对系统整体架构的考验。本篇文章将继续深入探讨高级Web安全技术,重点关注API安全的最佳实践、OAuth的安全实施以及安全编码…...

前端实现文件下载常用几种方式

项目中前端下载一般分为两种情况: 后端直接提供一个文件地址,通过浏览器打开就可以下载。需要发送请求,后端返回二进制流数据,前端解析流数据,生成URL实现下载。 前端对应的实质是a标签和Blob文件下载,这…...

Isaac Lab 安装 (ubuntu22.04环境)

Windows下的安装见这篇博客: Isaac Lab 安装与初体验 (windows环境)-CSDN博客 ubuntu22.04下的安装与windows下十分类似,还是参考官方的,Installation using Isaac Sim Binaries Installation using Isaac Sim Bina…...

todoList清单(HTML+CSS+JavaScript)

🌏个人博客主页: 前言: 前段时间学习了JavaScript,然后写了一个todoList小项目,现在和大家分享一下我的清单以及如何实现的,希望对大家有所帮助 🔥🔥🔥文章专题&#xff…...

LVS集群实现四层负载均衡详解(以nat,dr模式为例)

目录 一、LVS集群的介绍 1、LVS 相关术语: 2、lvs四层负载均衡工作原理 3、相关名词概念 4、lvs集群的类型 二、lvs的nat模式 1、介绍: 2、数据逻辑: 3、nat实验部署 环境搭建: 1、lvs中要去打开内核路由功能&#xff0c…...

七夕表白网页效果实现与解析

七夕是中国传统的情人节,是一个充满浪漫与爱的节日。在这个特别的日子里,用代码来表达心意也是一种独特且有趣的方式。本篇文章将带你一步步实现一个简单但充满心意的七夕表白网页。通过使用HTML、CSS和少量的JavaScript,我们将创建一个包含跳…...

人工智能算法工程师(高级)课程11-自然语言处理之NLP的语言模型-seq2seq模型,seq+注意力与代码详解

大家好,我是微学AI,今天给大家介绍一下人工智能算法工程师(高级)课程11-自然语言处理之NLP的语言模型-seq2seq模型,seq+注意力,word2vec与代码详解。本课程面向高级人工智能算法工程师,深入讲解自然语言处理(NLP)中的关键语言模型技术,包括seq2seq模型及其增强版加入注意力…...

从PyTorch官方的一篇教程说开去(6.2 - 张量 tensor 矩阵运算等)

您的进步和反馈是我写作最大的动力,小伙伴来个三连呗!共勉~ 话不多说,书接上文,需要温习的小伙伴请移步 - 从PyTorch官方的一篇教程说开去(6.1 - 张量 tensor 基本操作)-CSDN博客 借图镇楼 - 1 - 矩阵乘…...

【网络层】直连路由、静态路由、动态路由

文章目录 路由表直连路由直连路由 技术背景直连路由 实战训练 静态路由静态路由 技术背景静态路由 概述静态路由 配置命令静态路由 实战训练 动态路由动态路由 技术背景路由协议概述路由协议分类 路由表 路由表的形成,路由的来源: 路由来源备注直连路由…...

tkinter用法总结

Tkinter 是 Python 标准库中的一个模块,用于创建图形用户界面 (GUI)。它是 Python 中最常用的 GUI 库之一,因为它集成在 Python 的标准发行版中,无需额外安装即可使用。 一、基本用法 1. 简单示例 import tkinter as tk# 创建主窗口 root …...

iOS基础-Block

系列文章目录 文章目录 系列文章目录一、Block是什么二、Block的使用场景1. 异步操作和完成处理器2. 动画3. 集合操作4. 定时器5. 自定义控件的事件处理6.错误处理 三、Block的底层实现1.结构分析2.Block的类型3.Block的copy4.变量捕捉 四、Block的使用细节1.auto变量的生命周期…...

本地图片瀑布流浏览器asonry Image Viewer

本地图片瀑布流浏览器asonry Image Viewer 前言效果图部分源码领取完整源码下期更新 前言 一款采用 HTML 的瀑布流本地图片浏览器「Masonry Image Viewer」只需要把你的图片文件夹拖到下载的 index 网页文件里面就可以实现瀑布流效果。项目免费开源,据介绍采用了HT…...

macos重装系统 启动U盘制作方法 - createinstallmedia 命令使用方法总结

macos重装系统比windows要稍微复杂一些,不过还好,macos系统安装app这个Apple官方提供的系统软件里面默认就内置了一个可用为我们制作启动盘的工具 createinstallmedia 我们下载的apple安装镜像要门是 dmg/pkg/iso 的压缩档案格式的,要么是 x…...

八问八答搞懂Transformer内部运作原理

最近这一两周看到不少互联网公司都已经开始秋招提前批了。 不同以往的是,当前职场环境已不再是那个双向奔赴时代了。求职者在变多,HC 在变少,岗位要求还更高了。 最近,我们又陆续整理了很多大厂的面试题,帮助一些球友…...

MySQL增删改查(基础)

1、. 新增(Create) 语法: INSERT [INTO] table_name[(column [, column] ...)] VALUES (value_list) [, (value_list)] ... 例子: -- 创建一张学生表 DROP TABLE IF EXISTS student; CREATE TABLE student (id INT,sn INT com…...

Cairo库移植到安卓记录

前言 接Android Studio引入ndk编译的so库的故事,这个东西搞了两周以后,由于自己不熟悉Java和安卓开发,踩了不少坑,其中一周时间都是花在怎么用Android Studio上的。。。AS下的新版本Koala,结果网上资料全是旧版本&…...

Redis 哈希类型的常用命令总结

1. hset 设置哈希表中字段的值。 hset key field value示例: hset user:1000 name "Alice"2. hget 获取哈希表中字段的值。 hget key field示例: hget user:1000 name3. hgetall 获取哈希表中所有的字段和值。 hgetall key示例&#x…...

【物联网设备端开发】ESP开发工具:QEMU如何模拟以太网口接入网络

以太网口支持 ESP-IDF中添加了对Opencores以太网MAC的支持。 运行以太网示例时,启用CONFIG_EXAMPLE_CONNECT_ETHERNET和 CONFIG_EXAMPLE_USE_OPENETH.。运行自定义应用程序时,启用CONFIG_ETH_USE_OPENETH 并初始化以太网驱动程序,如示例 /c…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...

JavaScript基础-API 和 Web API

在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...

高防服务器价格高原因分析

高防服务器的价格较高,主要是由于其特殊的防御机制、硬件配置、运营维护等多方面的综合成本。以下从技术、资源和服务三个维度详细解析高防服务器昂贵的原因: 一、硬件与技术投入 大带宽需求 DDoS攻击通过占用大量带宽资源瘫痪目标服务器,因此…...

一些实用的chrome扩展0x01

简介 浏览器扩展程序有助于自动化任务、查找隐藏的漏洞、隐藏自身痕迹。以下列出了一些必备扩展程序,无论是测试应用程序、搜寻漏洞还是收集情报,它们都能提升工作流程。 FoxyProxy 代理管理工具,此扩展简化了使用代理(如 Burp…...

Linux安全加固:从攻防视角构建系统免疫

Linux安全加固:从攻防视角构建系统免疫 构建坚不可摧的数字堡垒 引言:攻防对抗的新纪元 在日益复杂的网络威胁环境中,Linux系统安全已从被动防御转向主动免疫。2023年全球网络安全报告显示,高级持续性威胁(APT)攻击同比增长65%,平均入侵停留时间缩短至48小时。本章将从…...

Appium下载安装配置保姆教程(图文详解)

目录 一、Appium软件介绍 1.特点 2.工作原理 3.应用场景 二、环境准备 安装 Node.js 安装 Appium 安装 JDK 安装 Android SDK 安装Python及依赖包 三、安装教程 1.Node.js安装 1.1.下载Node 1.2.安装程序 1.3.配置npm仓储和缓存 1.4. 配置环境 1.5.测试Node.j…...

Win系统权限提升篇UAC绕过DLL劫持未引号路径可控服务全检项目

应用场景: 1、常规某个机器被钓鱼后门攻击后,我们需要做更高权限操作或权限维持等。 2、内网域中某个机器被钓鱼后门攻击后,我们需要对后续内网域做安全测试。 #Win10&11-BypassUAC自动提权-MSF&UACME 为了远程执行目标的exe或者b…...

算法刷题-回溯

今天给大家分享的还是一道关于dfs回溯的问题,对于这类问题大家还是要多刷和总结,总体难度还是偏大。 对于回溯问题有几个关键点: 1.首先对于这类回溯可以节点可以随机选择的问题,要做mian函数中循环调用dfs(i&#x…...

window 显示驱动开发-如何查询视频处理功能(三)

​D3DDDICAPS_GETPROCAMPRANGE请求类型 UMD 返回指向 DXVADDI_VALUERANGE 结构的指针,该结构包含特定视频流上特定 ProcAmp 控件属性允许的值范围。 Direct3D 运行时在D3DDDIARG_GETCAPS的 pInfo 成员指向的变量中为特定视频流的 ProcAmp 控件属性指定DXVADDI_QUER…...