Relation-Aware Transformer for Portfolio Policy Learning阅读笔记

ABSTRACT

要解决的问题:如何表示投资组合中资产的非平稳价格序列。

现有方法的问题:未能捕捉到资产价格序列的复杂序列模式和多个资产之间的价格相关性。

文章贡献:提出关系感知transformer模型来处理。RAT在结构上进行了创新,以获取投资组合选择的顺序模式和资产相关性。基于提取的序列特征,RAT能够通过新的杠杆操作就每项资产做出盈利的投资组合决策。

Introduction

投资组合选择(PS)的目标:通过在一组资产(如股票和加密货币)中动态分配财富来实现财富的长期回报最大化。

以往的机器学习方法很难表示资产的非平稳价格序列,因为它们通常包含显著的噪声和振荡,大多数方法严重依赖手工制作的特征例如移动平均线和随机技术指标,但他们表达能力有限。

transformer直接应用于PS的问题:

  1. Transformer基于逐点值来计算自关注层中查询和关键字之间的相似性,这使得能够捕获局部上下文信息,并且容易被局部噪声点所混淆
  2. Transformer主要是为单词级序列翻译而设计的,因此它无法捕捉在投资组合决策中有用的资产相关性

Problem Formulation

投资组合选择是一个马尔科夫决策过程,我们的目的是找到合适的$\pi(s)$函数,使得当前状态给定时,我们能得到一个行动a使得奖励函数$R(s,a)$的值最大

这里定义变量如下:

n个交易时期

m种资产

d种价格,通常d为4,考虑它的开闭高低价格

$p_t^i\in R^d$表示资产i在时期t的价格

$P_t\in R^{m\times d}$表示所有资产在时期t的价格

$\mathcal{P}_t=\{P_{t-k},P_{t-k+1,…,P_{t-1}}\}\in R^{k\times m\times d}$表示关于时期t的前k时期的价格序列

Relation-Aware Transformer

General Architecture

encoder用于捕获线性特征,decoder用于决策

pChkDaV.png

Encoder

增加一个sequential attention layer来捕获序列模式,增加一个relation attention layer来捕获资产相关性

Decoder

在encoder的基础上增加了一个decision-making layer,考虑所有捕获到的特征,此时的价格状态和上一期做出的决策并做出决策,其他部分与初始transformer一样

Sequential attention layer

标准自注意会被局部噪声点混淆,导致潜在的优化问题

Multi-head Attention

普通的多头注意力机制:设有h个头,则$\mathcal{Q}_{t,i}^h = \mathcal{P}_{t,i}W_h^Q,\mathcal{K}_{t,i}^h = \mathcal{P}_{t,i}W_h^K,\mathcal{V}_{t,i}^h = \mathcal{P}_{t,i}W_h^V,\space (W_h^Q,W_h^K,W_h^V\in R^{d\times d_f})$

Context Attention

上下文注意力机制:考虑对于时期t的$\mathcal{P}_t\in R^{k\times m\times d}$为了不失一般性,考虑对于任意时刻$\iota \in{1,2,……,k}$,令$\mathcal{P}_\iota^l=\{\mathcal{P}_{\iota-l},…,\mathcal{P}_{\iota-1}\}\in R^{l\times m\times d},l$为context的长度,我们使用padding当$\iota<l$时,于是对于资产i,我们令$\hat{\mathcal{K_{\iota,i}^h}}=\hat{\mathcal{V_{\iota,i}^h}}=\mathcal{P_{\iota,i}^l\hat{W_h^Q}}\in R^{l\times d_f},\hat{\mathcal{Q_{\iota,i}^h}}=P_{\iota-1,i}\hat{W_h^Q}\in R^{1\times d_f}$,于是我们通过计算得到$\mathcal{Q}_{iota,i}^h=softmax(\frac{ \hat{\mathcal{Q_{\iota,i}^h}} $\hat{\mathcal{K_{\iota,i}^h}}}{\sqrt{d_f}})\hat{\mathcal{V_{\iota,i}^h}}$,将得到的k个结果合并为$\mathcal{Q}_{t,i}^h\in R^{k\times d_f}$,$\mathcal{K}_{t,i}^h\in R^{k\times d_f}$可以用同样的方式计算得出,只需要将参数换为$\hat{W_h^K}$,可以发现,当$l=1$时,上下文注意力机制等于多头注意力机制

Relation attention layer

将序列注意力层得到的结果按h个头和k个时期拆开得到$\mathcal{O}_t^{h,j}\in R^{m\times d_f}$,进行计算$\mathcal{Z}_t^{h,j}=softmax(\frac{ \mathcal{O}_t^{h,j} {\mathcal{O}_t^{h,j}}^T }{\sqrt{d_f}})\mathcal{O}_t^{h,j}$,将计算出的结果拼接,令$\mathcal{Z}_t^h=Concat\{\mathcal{Z}_t^{h,1},…,\mathcal{Z}_t^{h,j}\}\in R^{k\times m\times d_f},\mathcal{Z}_t=Concat\{\mathcal{Z}_t^1,…,\mathcal{Z}_t^h\}\in R^{k\times m\times Hd_f}$

Decion-making layer

直接使用softmax层进行预测会导致对于资产的选择强制为正数,这在资产将减值时将造成重大损失,因此RAT引入了抛空,设计了三个softmax全连接层决策层,一个输出初始投资选择向量$\hat{a_t}$,一个输出抛空向量$\hat{a_t^s}$,一个输出再投资向量$\hat{a_t^r}$,最终结果为$a_t=\hat{a_t}+\hat{a_t^s}+\hat{a_t^r}$,则$a_t$范围由原来的(0,1)变为(-1,2),负数比例代表当资产降价时,投资者能够获利,资产增值时,投资者出现损失,同时,由于在现实中,交易成本也会对投资选择策略造成影响,因此,决策制定层同样考虑了$a_{t-1}$的影响

Learning with Reinforcement Learning

算自己按比例赚了多少即可

复现测试

但凡有点用,也不至于一点用没有。

  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2023 J-sycamore