解读:基于GCN的股票预测模型

2023-05-16

前言:自ICLR2017首次提出图卷积神经网络(GCN)的概念,该模型在节点分类、边预测等任务上表现出了出色的性能。在传统因子选股模型中,常常将股票视为独立的个体,但事实上股票之间存在错综复杂的关系,使用GCN能将股票间的关系作为增量信息纳入预测模型,具有一定的提升价值和启发意义。

对于股票间关系的影响,学者进行了众多研究,在之前的文章中提及的REST模型就对于股票关系图进行了建模,取得模型性能的提升效果,但并没有涉及图卷积神经网络这一模型。考虑到GCN在各种任务上的出色表现令人瞩目,本文选取了两篇文献,分别构建不同股票关系网络应用GCN进行预测。



第一部分:GCN概述

图(Graph)一般表示为:  ,其中V是顶点的集合,E是边的集合。在本文的模型中均将股票作为顶点,而将股票间的关系用边来表示,边的权重则代表关系的强弱。

图卷积神经网络(GCN)

关于图神经网络的基本概念和应用,Google团队在distill上发布了两篇文章[1]:“A Gentle Introduction to Graph Neural Networks”,“Understanding Convolutions on Graphs”提供了有趣的的交互页面和非常详细的讲解。

GCN由图信号理论和谱域图卷积发展而来,是GNN的常用变体之一,研究者受到CNN的启发,成功在图数据上重新定义卷积的概念。GCN的基本思想是对样本间关系进行显式或隐式建图,将图结构和节点特征作为输入,可以通过集合信息和非线性变换捕获图中节点复杂的相互作用,去创造新的特征。

f17610b9ebb422e59daef9d5385449b5.png

图1 GCN

GCN神经网络层间的传播方式是:

其中:

  •   是单位阵,  是邻接矩阵

  •    是  的度矩阵,  

  •   是每一层的特征,在输入层则是节点的特征矩阵  

  •   是非线性激活函数

GCN的方法为半监督分类,即使只有很少的节点有标签也能训练,尤为特殊的是,即使不训练,完全使用随机初始化的参数W,GCN提取出来的特征也非常优秀,这与其他常用的神经网络模型有非常显著的差别。

图结构数据主要涉及的问题分为三个层面,分别对应图,边和节点。GCN一经问世,便在图问题上获得了广泛的应用,对于节点问题可以进行节点分类、群集,识别最具影响力的节点;对于边问题可以预测缺失的连接;对于图问题可以对图形进行分类等。在推荐系统,虚假用户检测等问题上已经证明了其优秀的性能。在本文的主要场景下,节点即股票的状态是我们关注的重点,通过边来传递股票状态的变化,预测特定股票的涨跌。


第二部分:股票市场中的图

为什么股票市场可以使用图来表示

股票联动现象:股票联动是市场的自由规律。在股票市场中,相关性高的股票常常有齐涨齐跌的现象。这种齐涨齐跌的现象就叫做股票联动。

股票之间由于公司间的多种联系,诸如同行业,供应链上下游,支付网络,业务伙伴关系和股权联系等,存在交叉影响(cross interaction),也一定程度上解释了股票联动现象。

超前滞后理论(lead-lag theory):大量的实证结果证实了股价存在明显的超前滞后特点,即有些股票价格领先或落后于其他股票。行业信息扩散假说可以解释这一现象:新信息总是率先表现在行业龙头企业,之后再扩散到同行业的其他公司。

考虑到股票市场以上的特点,股票间的复杂关系应该被纳入研究者的考虑范围之中,而图结构能够很好地表示实体之间的关系,因此使用图来表示股票市场,并在此基础上进行进一步的分析。

模型中用到的图

对于股票之间的关系图,有很多不同的角度可以考虑。有些学者选择通过模型学习股票关系,有些利用金融先验知识形成关系图;股票之间关系的种类也各有不同,在本文所选的两篇文献中,作者使用的关系图也各不相同。

GCNET:影响网络

图2 构建影响网络的步骤

该模型采用股票历史数据建立影响网络,先在二次判别分析(QDA)的基础上训练出四个预测模型,得到预测值后对于每一对股票计算影响分数:          仅在影响分数为正的两节点间连接边。之后按照影响分数作为权重排序,按照从小到大的顺序移除边,直到图不再连通,这样保留了强联系,也避免了噪声的干扰。最后将权重归一化,即得到了最终的影响网络。

Multi-GCGRU   

该模型构建图的方法主要基于先验金融知识,共提取了如下三种关系图,分别对应持股关系,超前滞后效应和时事新闻影响。 

  • 持股关系图  (Share-holding graph)

一家公司的业绩表现不仅会影响自身财报,也会影响其股东公司的利益从而影响其股价。基于企业之间的持股关系,将持股比例作为边的权重构建持股关系图。但是由于持股关系并不普遍,图较为稀疏,一定程度上影响了表达的有效性。

  • 行业关系图  (Industry graph)

市场中的超前滞后效应与公司规模有关,大公司的股票收益往往领先于同行业小公司。模型主要聚焦于行业内部的影响,行业间无连接,行业内公司间的边权重设置为  ,  表示公司规模

  • 时事话题图  (Topicality graph)

由于新闻会影响某一话题的相关股票,同一话题的股票之间具有一定的相关性,因此从网络获取股票的话题信息构建时事话题图。同一股票可能有多种话题标签,利用共有标签数量可以在一定程度上衡量股票间的联系  ,其中  表示共有话题数,  表示股票  的话题数。


第三部分:GCN模型

现有模型及缺点简述

很多学者通过实验证明了考虑相关股票的数据有助于预测股价变化趋势,但是目前这方面的研究还不是很充分,如何建模这种关系并用于提升模型预测能力还是一个有挑战性的问题。目前的很多方法仅仅采用了图分析的技术,通用性和灵活性差,预测效果有限。

尽管有些研究也用到了相关股票的数据去训练预测模型,但大多都有以下几点缺点:

  1. 难以将关联信息灵活直观地表现在模型中。

  2. 过分依赖专家经验作为先验知识。

  3. 模型架构基于特定任务,仅包含固定股票集合,不便扩展。

针对这几点问题,使用GCN网络可解释性强、更加灵活,能够更有效地聚合有用的信息,为了更好地适应股价预测问题,以下两个模型分别对基础网络进行了一些改进。

两个模型基本架构

GCNET

3a763e05ef2dacc0ab3f1b1748af8f14.png

图3 GCNET搭建

GCNET将原问题转化为图的标签预测问题,基于相关股票的历史价格数据和程度建模,用半监督算法生成预测模型。给一部分节点使用PLD方法(plausible label discovery)做出可靠的预测作为初始标签,再用GCN处理来重新定义标签并预测未标签的股票。

模型中所使用的PLD方法的基本思路是,采用目标时间点前的历史数据对多个基础分类器训练,选择表现最好的分类器的预测结果作为初始标签。

将预测日前4天的真实股票数据图与预测当天使用PLD方法部分标签的图作为输入,预测完整的标签:          模型基础架构为三层,前两层为选择激活函数为ReLU的基本GCN传播层,最后一层使用Softmax函数来处理分类输出。使用交叉熵损失进行训练。

Multi-GCGRU

e11dae40b3c59ec8dd314d2063407f2d.png

图4 Multi-GCGRU架构

该模型在基础GCN传播层的基础上调整,将预定义的几类图结构合并放入模型中,提出了多图卷积层:         其中  是三个邻接矩阵对应的拉普拉斯矩阵。

这里不仅可以使用之前定义的三类关系图,也可以方便地合并更多的关系图,易于扩展。即使没有预定义的图,也可以通过动态图卷积层从历史数据中进行学习。

由此按天计算出Multi-GCN部分的输出结果,再将其拼接后放入GRU(Gated Reccurent Unit)中,GRU作为RNN的变体之一,可以很好地处理时间序列问题。GRU层的公式为:           其中  表示sigmoid激活函数。

模型表现与价值

两模型均采用Accuracy,MCC为主要评价指标,公式如下:         模型普遍获得了比基准模型更好的结果,从模型建立的角度来看,也为未来利用股票关系提升股价预测问题提供了新的思路指导。

GCNET

作者选择了纳斯达克股票交易所的93只股票,用2011-2020年的股票每日数据,与其他常见模型对比如下:

120e70b42ec536c4414850b0c73ff26d.png

图5 GCNET在纳斯达克数据集上的表现

在纳斯达克前20的股票上预测结果对比如图:

e39c8b0e2ff8863694ec775bc6de8f8d.png

图6 GCNET模型预测结果对比图

        GCNET比其他基准模型表现更好,特别是在MCC指标评价下,表明预测增长和下降类别的成功率更高。基于图的方法可以充分利用图结构推测标签,即使初始标签设置有误,也可以被模型修正。

9ce04418a0009f698c50a60e119abbf0.png

图7 标签节点比例与准确率

        模型中的初始标签选择大致占总股票数的30%最佳,过低则信息不足,过高则噪音过大,预测能力受限。

Multi-GCGRU

        作者选择的数据为沪深300和沪深500,时间从2015年6月到2019年12月,与其他模型对比如下:

00eaa521c5fbe4663a2591e35958ee73.png

图8 Multi-GCGRU表现

        Multi-GCGRU表现更优,同时分别使用不同的图构建模型,经过对比实验发现,时事话题图的影响最强,持股关系图效果最差,可能由于我国股市散户较多、对于新闻信息更加敏感。

9a45d1181de78d0fe310bfb771b0d9b2.png

图9 不同时长Multi-GCGRU表现

        在历史数据长度的选择上,参数选择为7天在沪深300和沪深500上预测的准确率均最佳。


第四部分:总结

市场中股票相互关联的特点使其适合使用图结构进行建模。图神经网络则为研究者提供了分析股票关系的新方法,基于图的模型还有很多,诸如图注意力网络(GAT),GraphSAGE等,这里仅对于GCN在预测股票变化趋势的应用选取文献进行了简要概述。

两篇文献基于GCN做了不同的改进,GCNET主要使用历史数据构建影响网络,将原问题化为半监督的标签预测问题;Multi-GCGRU则设计了三种关系网络,并用GRU分析时序信息。虽然目前的准确率还有一定的提升空间,但是为进一步的研究提供了有效的思路,模型易于拓展的特性也让其具备了进一步提升的可能。

市场有风险,投资需谨慎。以上陈述仅作为对于历史事件的回顾,不代表对未来的观点,同时不作为任何投资建议。


参考文献

[1] A Gentle Introduction to Graph Neural Networks (distill.pub)

[2] Ye J, Zhao J, Ye K, et al. Multi-graph convolutional network for relationship-driven stock movement prediction[C]//2020 25th International Conference on Pattern Recognition (ICPR). IEEE, 2021: 6702-6709.

[3] Alireza Jafari & Saman Haratizadeh, 2022. "GCNET: graph-based prediction of stock price movement using graph convolutional network,"The Journal of Financial Data Science Oct 2022, 4 (4) 152-166; DOI: 10.3905/jfds.2022.1.104

[4] Chen Q, Robert C Y. Graph-Based Learning for Stock Movement Prediction with Textual and Relational Data[J]. The Journal of Financial Data Science, 2022, 4(4): 152-166.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

解读:基于GCN的股票预测模型 的相关文章

  • Ubuntu查看linux系统版本号

    查看ubuntu版本 输入命令 cat proc version 显示如下 Linux version 5 0 0 13 generic buildd 64 lcy01 amd64 020 linux内核版本号 gcc version 8
  • Linux C Socket简介和实现

    1 网络中进程之间如何通信 xff1f 本地的进程间通信 xff08 IPC xff09 有很多种方式 xff0c 但可以总结为下面4类 xff1a 消息传递 xff08 管道 FIFO 消息队列 xff09 同步 xff08 互斥量 条件
  • C++ STL视频教程,初学者必备视频资料

    STL视频教程 初学者必备视频资料 我一个朋友做的 我转发到这里和大家分享 STL语音视频教程 下载地址 xff1a url 61 http www ctdisk com file 3388918 STL语音视频教程 7z url
  • QMessageBox简单用法(QT5.12)

    span class token comment for starf study span span class token macro property span class token directive hash span span
  • TOF相机 Realsense L515 与 Ipad pro Lidar Camera 对比

    最近好奇都是TOF 相机 L5151 和 Ipad pro 上带的深度相机模块有啥不一样 网上很少有相关的中文资料来介绍 原理上的差异 简单搜索了一下 在此小小总结 Apple Lidar Camera 苹果采用的激光是 VCSEL Ver
  • Arduino 读取GPS 数据发送解析并发布ROS topic(一)

    概述 通过Arduino收集GPS数据 xff0c 连接至电脑端 xff0c 在电脑端通过python对数据进行整理 xff0c 并通过发布 TOPIC xff0c 本部分主要记录如何通过Arduino读取GPS数据 接线方式 GPS 的
  • STM32 复位电路设计

    在此之前我是个只会抄写原理图的工程师 xff0c 每当遇到一个问题时 xff0c 确需要解决很久 xff0c 最根本的原因在于不明白其中的原理 xff0c 这次补充一下单片机复位电路设计 1 为什么要设计复位电路 xff1f 在做一件事情之

随机推荐

  • STM32核心板设计——电源设计

    1 STM32 数据手册电源部分研读 RTC电源管脚为V BAT 电源范围为1 8 3 6V xff0c 主要用于RTC时钟的供电 xff0c RTC在大部分场合用于保存一些重要的参数 xff0c 比如在电脑主板上用于保存boss的信息 x
  • stm32的复位电路问题

    现在比较流行的复位方式是这样的 xff1a 但我们都知道对于结构紧凑型硬件来说 xff0c 多一个电阻都是没必要的 在没有手动复位需求的场合 xff0c 能不能删掉按键与R24 xff0c 仅保留104电容 xff1f 通过阅读stm32
  • 外设驱动库开发笔记21:BME680环境传感器驱动

    环境传感器是一类我们很常用的传感器 它可以方便我们获取压力 温度 湿度以及空气质量等数据 在这一篇中 xff0c 我们将分析 BME680 环境传感器的功能 xff0c 并设计和实现 BME680 环境传感器的驱动 1 功能概述 BME68
  • 外设驱动库开发笔记45:MS4515DO压力传感器驱动

    很多时候我们需要检测流量和压力这些参数 xff0c 比如我们要检测大气压 xff0c 或者通过测量差压来获得输送流体的流量等 xff0c 都需要用到压力传感器 这一篇我们就来讨论MS4515DO压力传感器的数据获取 1 功能概述 MS451
  • 一个好看的CSS样式表格

    一个好看的CSS样式表格 自动换整行颜色的CSS样式表格 xff08 需要用到JS xff09 自动换整行颜色的CSS样式表格源代码 自动换整行颜色的CSS样式表格 xff08 需要用到JS xff09 这个CSS表格会自动切换每一行的颜色
  • docker删除镜像

    docker要删除镜像 xff0c 先要删除依赖它的容器 1 删除容器 docker ps 查看正在运行的容器 docker ps a 查看所有容器 docker rm container id 删除容器 2 删除镜像 docker ima
  • FreeRTOS如何结束和重新启动调度程序

    大多数主机或桌面系统 xff08 比如Linux xff0c Mac或Windows xff09 都有一个正常的用例 xff0c 你可以在早上启动操作系统 xff0c 然后在晚上关闭它 xff0c 然后你就离开机器 嵌入式系统是不同的 xf
  • [显存被占满,程序无法运行问题]ResourceExhaustedError (see above for traceback): OOM when allocating tensor

    最近在实验室的服务器上跑tensorflow程序 xff0c 一直都没有报错 xff0c 但是今天却突然报错 xff0c 而且出错提示显示的内容从未见到过 xff0c 错误提示如下 xff1a 错误提示资源耗尽 xff0c 无法分配tens
  • 解读神经网络十大误解,再也不会弄错它的工作原理(转载自机器之心)

    神经网络是机器学习算法中最流行和最强大的一类 在计量金融中 xff0c 神经网络常被用于时间序列预测 构建专用指标 算法交易 证券分类和信用风险建模 它们也被用于构建随机过程模型和价格衍生品 尽管神经网络有这些用处 xff0c 但它们却往往
  • 树莓派 Raspberry Pi VNC屏幕无法显示、软键盘、摄像头实时图传、固定IP等环境配置

    目录 1 VNC屏幕无法显示 2 树莓派软键盘安装 3 摄像头实时图传配置 xff0c 可用于图像监控系统 4 安装VIM与固定IP 1 VNC屏幕无法显示 在树莓派终端 xff0c 输入 sudo raspi config 选择接口配置
  • 在Jetson上配置RealSense相机驱动

    1 下载源码 https github com IntelRealSense librealsense span class token builtin class name cd span librealsense scripts set
  • aruco marker使用笔记

    在英伟达Jetson Xaiver开发板上配置 SDK环境 opencv 4 1 1 CUDA 10 2 1 git clone https github com pal robotics aruco ros 2 复制到catkin ws
  • catkin_make命令

    catkin make是在catkin工作区中构建代码的便捷工具 catkin make遵循catkin工作区的标准布局 xff0c 如REP 128中所述 用法 假设您的catkin工作区位于 catkin ws中 xff0c 则应始终在
  • docker容器中运行界面程序

    Docker比较常用的场景是 运行无界面的后台服务 或者 运行Web服务 不过有时出于个人的喜好或特定的需求 xff0c 我们会希望在Docker中运行带图形界面的应用程序 将容器中的图形界面展示到外部的一般性思路 xff1a 目前Unix
  • linux录屏

    Linux下好用的录屏软件是kazam录屏后视频处理软件kdenlive根据剪辑好的视频撰写解说词 xff0c 使用讯飞配音app将解说词文字转换为语音mp3将语音与视频通过kdenlive软件合成在一起 xff0c 完美的演示视频诞生了
  • 【python】conda和pip安装库之间的区别

    conda 首先 xff0c conda是一个通用的包管理器 xff0c 意思是什么语言的包都可以用其进行管理 xff0c 自然也就包括Python了 在安装Anaconda或者Miniconda时 xff0c 会对conda进行一同安装
  • OpenHarmony-Overview_zh

    OpenHarmony开源项目 项目介绍 OpenHarmony是开放原子开源基金会 xff08 OpenAtom Foundation xff09 旗下开源项目 xff0c 定位是一款面向全场景的开源分布式操作系统 OpenHarmony
  • 【python量化】用时间卷积神经网络(TCN)进行股价预测

    写在前面 下面这篇文章首先主要简单介绍了目前较为先进的时间序列预测方法 时间卷积神经网络 xff08 TCN xff09 的基本原理 xff0c 然后基于TCN的开源代码 xff0c 手把手教你如何通过时间卷积神经网络来进行股价预测 xff
  • 【python量化】将Transformer模型用于股票价格预测

    写在前面 下面的这篇文章主要教大家如何搭建一个基于Transformer的简单预测模型 xff0c 并将其用于股票价格预测当中 原代码在文末进行获取 1 Transformer模型 Transformer 是 Google 的团队在 201
  • 解读:基于GCN的股票预测模型

    前言 xff1a 自ICLR2017首次提出图卷积神经网络 xff08 GCN xff09 的概念 xff0c 该模型在节点分类 边预测等任务上表现出了出色的性能 在传统因子选股模型中 xff0c 常常将股票视为独立的个体 xff0c 但事