技術は記憶の彼方へと

覚えたつもりですぐに忘れるエンジニアの備忘録

Deep Learning Stock Volatility with Google Domestic Trendsを翻訳してみた

LSTMの学習中、参考文献として紹介されていたこの論文ですが、私には翻訳されたデータを見つけることができませんでした。
ないなら作ればいいじゃないってことで翻訳してみようと思います。

目次

以下本文


Deep Learning Stock Volatility with Google Domestic Trends


Abstract

Googleは、「S&P500」のVolatility(標準偏差)をモデル化する為にLong Short-Term neural network(LSTM)を適用し、株価の国内動向を一般的な雰囲気やマクロ経済的要因の指標として組み込みました。開催されたテストセットにおいて、GoogleのLSTMモデルの平均絶対パーセント誤差は24.2%であり、優秀な線形回帰のRight/Lasso(リッジ回帰・ラッソ回帰)や自己回帰のGARCHは少なくとも31%であり、これを上回っているといえます。この評価は最適な観測及び正規化スキームに基づいており、国内の傾向とトレーニングセットの毎日の変動性との間の相互情報を最大化しています。調査によると、Deep Learningニューラルネットワークモデルを介して、資源の挙動をより適切に予測できるということが強く示されています。

Introduction

非常に不安定な金融時系列の予測において、例えば中間程度の頻度で株式が上下している場合、強いノイズの存在が非常に課題となってきます。ただし、ノイズが多い(つまりは株価変動が大きい)状態をまともな精度でモデル化することは可能です。典型的な設定においては、市場の外部に市場情報と変数を含んだ入力機構が存在しています。特徴選択や、観測の頻度、正規化の手法やモデルの構造によって予測の精度は決まります。

人工ニューラルネットワークは優れた非線形関数近似器であるため、時系列のモデル化において考慮すべき入力の非線形依存は自然なアプローチです。機械学習を使用して金融時系列を予測することは確かに新しいことではなく、RNN(再起型ニューラルネットワーク)はこの作業に適しているといえるでしょう。例えば、この初期の作業(1990年)では回帰型ニューラルネットワークを用いていくつか最初に予測を行う代わりに、株価の変動予測モデルを伝え、ダウ・ジョーンズ工業平均の一般的傾向の方向予測を組み込みました。

ただし、モデルが複雑になればなるほど、モデルの効果が必ずしも向上しないといった場合があります。 過学習は高度にパラメータ化された教師あり機械学習を過去数十年間にわたり悩ませる最大の問題の一つです。さらに、自由度が増すと、モデルが正しかったとしてもトレーニング用プロセスがシステムの高次元の機能空間における局所的な最小値に閉じ込められてしまう可能性があります。幸いなことに、最近のニューラルネットワークの進歩は、それらがどのようにして動作するのかについて多くの識見を与え、予測力を活用することによって過学習という化け物を系統的に回避しています。具体的には、新しい正規化手法(ドロップアウト等)と、超越関数(多項式方程式を満たさない解析関数であり、加算・乗算・冪根といった代数演算を有限回用いて表せない関数)ではなく区分線形活性化関数を使用する等、多くの隠れ層を持つニューラルネットを簡単にトレーニングできるようにする、より高速なトレーニング手法——すなわち、「Deep Learning」があります。さらには、新しい視覚化手法が実証されており、ユーザは人工ニューラルネットワークがどのように動作するのかについて、より多くの洞察を得ることができます。これらの進歩によって、Long Short-Term Memory(LSTM)のような新しいアーキテクチャを効率的にトレーニングすることが可能になりました。この特定のタイプのRNNは、人工的な手書き文字の生成や言語等の予測、音声認識などのタスクにおいて顕著な結果を示しています。

この作業では、Googleの国内トレンドと市場データを組み込んだLSTMを使用して、「S&P500」の標準偏差を予測しようとします。データセクションでは、これらの国内トレンド等の入力機能を紹介しており、様々な観測や正規化スキームの予測力を調査します。次の方法のセクションでは、この作業の結果を再現できるようにLSTMモデルと共に他のベンチマークモデルを指定します。そして最後に、モデルのパフォーマンスをベンチマークと比較し、他の周波数におけるアプリケーションや過学習、エラー統計などの問題について説明していきます。

Data Sources

この作業では、日々の公開されている毎日のデータに基づいて「S&P500」市場ファンドを高値・低値・開始値終値・調整終値を調査します。日次リターンrtは調整された終値の対数差として評価され、毎日の標準偏差σtは高値・低値・始値終値等に等しくなります。
f:id:Cloudvelse:20191118143102p:plain
f:id:Cloudvelse:20191118143217p:plain
2004年から、Googleマクロ経済学の様々な側面に関連する毎日の検索量を収集しています。このデータベースはGoogleの国内トレンドdtとして一般公開されています。最近の調査では、Googleの検索傾向と株式市場の相関関係が示されています。この作業で、この傾向データは様々なマクロ経済的要因に対する公共の関心の表現として使用します。2004年1月1日のGoogle検索全体の相対的な割合でスケーリングした「破産」の例をここに示しましょう。2008年にマークされた最大値は、2007年~2008年の金融危機に対応します。
f:id:Cloudvelse:20191120105314p:plain *1
この調査では、下に記す表に略語とともに25の国内トレンドを含んでいます。
f:id:Cloudvelse:20191120141721p:plain
このデータと観測された「S&P500」リターンを組み合わせて、Volatility、25次元の入力xλ、tを作成します。ここでのλとtは、それぞれ入力次元とと日毎の時間で実行されます。
f:id:Cloudvelse:20191121133127p:plain
データセット全体をトレーニングセット(70%)とテストセット(30%)に分割します。トレーニングセットは2004年10月19日~2012年4月9日の範囲で、テストセットは2012年4月12日~2015年7月24日の範囲とします。さらに、これら25の時系列はすべてその単位根帰無仮説は、拡張ディッキーフラー検定でp値が0.05未満です。
 異なる観測、及び正規化スキームを使用して時系列を前処理すると入力と出力との間の因果関係のパターンが異なる場合があります。異なるスキームが選択された場合、入力時系列と出力時系列の両方を日時データから返還する必要があります。この研究ではΔtを観測間隔とし、
f:id:Cloudvelse:20191121135459p:plain
ボラタリティが出力として研究されますが、リターン予測は同様のモデルでも実行できることに注意してください。毎日以外の異なる頻度で出力を観察することを選ぶ場合もあるため、次の期間の出力yΔtをσΔt+1またはrΔt+1と示します。
f:id:Cloudvelse:20191121141440p:plain
正規化は、任意の時系列Aに対してK日間のsliding look-back windowを使用してZスコアを計算することで実行できます。
f:id:Cloudvelse:20191121141840p:plain
ここで、k=∞は時系列Aの線形変換に対応し、平均と無限に大きいsliding window内の標準偏差はトレーニングセット全体で評価できます。
 ΔtとKの各組合せは、その一意の予測力を備えた観測と正規化スキームから決定する必要があります。これらのスキームを(Δt,k)と表記します。原則として、各スキームに学習モデルを適用し、検証セットで予測の精度を評価して最適なスキームを選択することができます。もしくは、情報メトリックを設定し、このメトリックを最大化する最適なスキームを選択することもできます。この作業では、各(Δt,k)の相互情報を使用します。入力変数間の条件付き独立を仮定した際に、相互情報はxλの個々の成分の合計に分解できます。
f:id:Cloudvelse:20191121143829p:plain
同じ配色を利用した例では、トレーニングセットの(a)y=r+1と(b)y=σ+1の両方で評価されます。相互情報の意味ではリターンの予測力は、ボラタリティの予測力よりもかなり小さいといえます。この観察結果は、リターンについて行った同様の未発表の研究と一致しており、リターンが分~日までのタイムスケールで非常にノイズが多くなるといった事実が見られます。ノイズ自体の予測はできませんが、ノイズの大きさは扱いやすいのかもしれません。Δtが増加するにつれて暗くなるので、おそらく相互情報は、Δtが∞に近づくと最大値を見つけるでしょう。これは、すべてのノイズが本質的に平均化され、確定的なドリフトが残されたタイムスケールです。一方で、正規化を行うと非定常性を減らすか、ノイズ対信号比を増やすことができます。これら2つの要因間の競合によって、k=30、t=6に近い相互情報の局所的な最大値が得られます。
f:id:Cloudvelse:20191122115439p:plain *2
最後に、 f:id:Cloudvelse:20191122120748p:plain で最適なスキームを決定します。最大の予測力は、長期的に見た観察感覚で達成できています。ただし、合計サンプリングの数によっても制限されます。十分なデータサンプル(1000を超える)を認めるためには、f:id:Cloudvelse:20191126102643p:plain を使います。
異なる特定の問題を置き換えるために、異なるメトリックスとスキームスペースを使用できることに注意する必要があります。ただ、この作業において使用されるスキーム選択の方法は幅広く適用できるはずです。
f:id:Cloudvelse:20191125141320p:plain *3
上図はk=∞、Δt=1日及びΔt=3日の個々の入力コンポーネントの最も高い相互情報をリストしています。Volatilityのlag-1自動相互情報は、両方の観測時間間隔で最も強い予測力を持ちます。これは、自己回帰時系列モデルが日々のタイムスケールで役立つ可能性があるといった観察結果とも一致しています。Volatilityそのものに続き、Returnには2番目に強い相互情報があります。残りのコンポーネントGoogle国内トレンドである、Comput(コンピュータと電子機器)・CrCard(クレジットカード)・Invest(金融と投資)・Bnkrpt(破産)、これらすべてが同様のレベルの予測力を持っていることがわかります。論文の後半では、残りの分析のために値が固定されている為、Δtとkの表記を削除します。

Methods

揮発性のRNNモデルでは1つのLSTMブロックで構成される単一のLSTM隠れ層が、他の隠れ層なしで使用されます。このニューラルネットワークの構造を下図に示します。これには動的な「ゲーティング」メカニズムがあります。中央を通るのはセル状態Iiで、これは市場の感度の情報フローとして解釈されます。Iiは過去の時間情報を記憶しており、さらに重要なことは式12で忘れる事を学習することです。
f:id:Cloudvelse:20191126105122p:plain *4
f:id:Cloudvelse:20191126120323p:plain
ここで、fiは現在に渡される過去の情報の割合であり、~Iiは現在の時刻に流入する情報を測定し、ciはこの現在の情報がどれほど重要であるかの重みです。これら3つの量はすべて、入力xλ、iと前回のボラタリティ推定σiの関数です。
f:id:Cloudvelse:20191126132422p:plain
次のボラタリティ値σi+1の予測を行うために、線形活性化関数が使用されます。
f:id:Cloudvelse:20191126133802p:plain
ここで、oiはxλ、iの関数でもあり、σ^は出力を生成します。
f:id:Cloudvelse:20191126141045p:plain
Ii及びσi+1は、連続予測のために次のタイムステップに渡されます。時系列予測における基本的なメモリの質問に答えましょう。ただし、自己回帰移動平均モデル(ARMA(p,q))は、自己相関関数及び部分自己相関関数を評価し、p及びqの最大ラグを設定することにより答えが出ます。
 ここでのすべての係数は、Python深層学習ライブラリKerasを用いたトレーニングを通じて学習されます。具体的には、LSTMbの最大遅延を設定して、以下で説明するベンチマーク線形モデルと一致する10の連続する観測値を含めます。このモデルは、32個の例をバッチで使用し、客観的損失関数として平均絶対パーセント誤差(MAPE)を使用して、「アダム法」で学習します。トレーニングデータの20%が検証セットを作成するために保持され、エポックごとのエラーレポートで使用されます。トレーニングプロセス中にトレーニングセットのMAPEが20%に達すると、バッチサイズと検証の割合を調整するとテストセットのMAPEが2%未満に変化することがわかりました。これは約600エポック後に達成できます。さらに、データポイントはトレーニング中にシャッフルされ、ドロップアウトは機能内には実装されておらず、すべての初期重みはREF*5 で与えらえた正規化された初期化と同様に小さな正の定数項に設定されます。

LSTMモデルのパフォーマンスを評価するために、観察されたデータの30%がテストセットとして使用されます。さらに、ベンチマークモデルとして2つの線形回帰モデル(リッジ回帰・ラッソ回帰)と1つの自己回帰モデル(GARCH)を開発しました。
f:id:Cloudvelse:20191129100035p:plain
GARCHモデルは最尤推定器によって簡単に訓練されますが、線形モデルは係数aλ..jのLpノルムによって正則化されるため、ラッソ回帰(p=1)とリッジ回帰(p=2)の2つの線形回帰ベンチマークが得られます。より具体的には、対数スケールで等間隔に10-2から10-6正則化パラメータCのグリッドを設定し、次の目的関数を最小化することにより、それらすべてをトレーニングセットの最初の80%でトレーニングします。
f:id:Cloudvelse:20191129101237p:plain
線形係数は、トレーニングセットの後半の20%を検証部分として使用して決定されます。線形リッジ回帰モデルでは、ボラタリティ、リターン、破産、投資、および雇用の係数は大幅に0ではないことを示しています。これは相互情報量メトリックによって評価される各コンポーネントの予測力と一致しています。

Results

下図では、予測されたボラタリティとテストセットの観測値をプロットしています。サブプロットはベンチマークモデルと比較して、LSTMモデルの2種類のエラーメトリックを示しています。MAPEはニューラルネットワークのトレーニングで損失関数として使用できます。したがって、LSTMのMAPEは他のどのベンチマークモデルよりも大幅に低くなっています(相対的に31%以上だといえる)。二条平均平方根誤差(RMSE)に関して、LSTMは他のベンチマークモデルよりも優れています。
f:id:Cloudvelse:20191129114005p:plain *6

LSTMモデルは、トレーニングセットのMAPEがテストセットで評価されたMAPE(24.2%)とほぼ同じ値(20%)に収束するという意味で、大幅な過剰適合を回避しているようです。入力ベクトルの次元を減らすことにより、オーバーフィットをさらに調査しました。完全な入力xλでLSTMをLSTM0と示しましょう。LSTMrを、Volatility、Retrn、Comput、CrCard、Invest、Bnkrpt等、図3にリストされている入力ベクトルのサブセットのみを持つものとします。
f:id:Cloudvelse:20191129121545p:plain *7
上の表は縮小入力モデルLSTMrのテストセットMAPEが、元のモデルLSTM0から増加することを示しています。

Discussion

低い信号対雑音レベルは、中間タイムスケールで株式市場をモデル化しようとするすべての試みに大きな課題をもたらします。観測間隔を長くしたり短くしたりすると、決定的なパターン(図2を参照)、または、自己相関が強くなります。それでもこのタイムスケールを選択して調査を開始し、この作業で提示された結果を一般公開されているデータで再現できるようにします。

頻度が高くなると、Googleの国内トレンドによって表されるマクロ経済要因と公共の関心は、予測タスクであまり役に立たなくなります。おそらく、ニューラルネットワークの入力の代わりとして市場のミクロ構造を使用することができるでしょう。例えば、オーダーブックの最初の数レベルの価格をbid/askします。入力フィーチャーセット、観測間隔、および正規化スキームは、特定の問題に最適ないくつかの客観的なメトリック(例えば、相互情報等)を最大化することで決定します。さらに、ニュース分析と到着ダイナミクスは、その非線形性とニューラルネットワーク非線形性の表現の容易さを考えると特に興味深い可能性があります。

同様の頻度での研究では、異なる入力・異なる産業または金融商品の株、およびLSTM層の異なる構造にモデルのバリエーションを適用できます。この予備調査では、隠された情報の流れの視覚化と予測の信頼区間の2つの重要な改善点があります。この作業では、情報フローIiを隠れた市場状態として認識します。市場の量から直接観測することは出来ないため、相互検証することは困難です。Iiと他の市場観測値との直接的な関係をさらに調査すると、財務時系列モデリングに大きな影響を与える可能性があります。さらに、予測エラーに関する統計は、予測の信頼区間の決定に役立ちます。この知識を得るためのもっとも直接的なアプローチは、テストセットの予測誤差の分布と自己相関を評価することです。この作業では、この誤差は平均がゼロ(<10-5 )であり、標準偏差が2.89×10-3である(図5、および表2を参照)だけであることがわかります。テストセットの誤差系列の自己相関関数および部分自己相関関数を調査しました。±2の標準偏差帯域に関して、どのラグも重要ではありませんでした。これは予想通りで、予測エラー自体に記憶がないことを示しています。ただしこの残差は、残差が正規分布しているという帰無仮説に対してp値<<1%で1サンプルのコルモゴロフ-スミルノフ検定に失敗します。予測誤差をより深く理解することは取り組むべき重要なタスクであると感じています。

Conclusion

この作業では、Googleの国内動向を環境変数とみなします。市場情報とともに、「S&P500」の日々のボラタリティ変化の原動力となっています。適切な相互情報量を構築することにより、ボラタリティ予測のための最適な観測と正規化スキームを見つけます。このスキームでは、1つの単一のLSTMで構成され、データセット全体の70%でトレーニングされるニューラルネットワークモデルを開発します。このモデルでは、テストデータの残り30%で24.2%のMAPEが得られ、他の線形および自己回帰ベンチマークよりも少なくとも31%優れています。この研究では、強いノイズの存在下でのディープラーニングの金融時系列の可能性を示しています。この研究で示された方法は、相関または決定論的ドリフトのいずれかがノイズを上回る、全く異なるタイムスケールの他の財務量に直接適用できます。


本文ここまで

最後に

私自身、英語の読解力がそこまで高いわけではなく、Google翻訳に頼りっぱなしだったこともあり少し日本語がおかしい部分もあるかと思いますがそのあたりは多少脳内補完していただければ幸いです。
多少日本語がガバガバな部分があったとしてもある程度はこの論文を読んだことになる気がします。
なぜか変数の上付け文字や下付け文字が反映されてないのが気になります、原因がわかりません...
論文のPDFファイルはダウンロードできるページのリンクを貼っておきますので興味があれば原本もどうぞ。

[1512.04916] Deep Learning Stock Volatility with Google Domestic Trends

*1:図1.国内トレンドとしての「破産」に関する相対的なGoogle検索ボリューム。データは、時系列の開始時(2004年1月1日)の値でスケーリングされています。金融危機の際に最大が現れ、シアンの丸で強調されていることがわかります。

*2:図2.異なる観測、および正規化スキームの相互情報 a:入力ベクトルとリターン間の相互情報 b:入力ベクトルとボラタリティ間の相互情報 カラースキームとコンターラインは、整数グリッド上の離散データの補間です。個々の入力ディメンション間の条件付き独立性を仮定。

*3:図3.様々な入力コンポーネントの個別の相互情報。正規化ウィンドウサイズk=∞、観測間隔Δt=1日(寒色表示)および3日(暖色表示)が使用されています。このプロットには25のすべての入力メディションの中で最も強い相互情報を持つ上位6つのコンポーネントのみが示されています。

*4:図4.LSTMの構造。各時間ステップiで、このレイヤーは入力ベクトルxλ、i、ボラタリティ推定値σiと、最後のステップから渡された情報フローIi-1を取り込みます。ゲートはシグモイド関数(sig)または双曲線正接(tanh)のいずれかによって制御されますが、スカラーの乗算と加算は「×」及び「+」演算子で示されます。線形メモリ更新式(式12)は、セル状態フローとともに強調表示されます。次のタイムスタンプとIiのボラタリティ予測σi+1は次のエポックに渡されます。

*5:X.GlorotとY.Bengio、ディープフィードフォードニューラルネットワークのトレーニングの難易度の理解、第13回人工知能と統計に関する国際会議 (2010年)

*6:図5.LSTMモデルによって作成されたボラタリティ予測とベンチマークとの比較。2012年4月12日から2015年7月24日までのテストセットでのボラタリティ予測(赤)は、同じ時間範囲内でΔt=3日間のタイムスケールで観測されたボラタリティでひょうじされています(緑)。より具体的には、このσ3(予測と観測の両方)は式6の3日間のタイムスケールで集計された式2による推定された収益の1日あたりの二次変動である。サブプロットは2つの異なるエラーメトリック、二条平均平方根エラー(シアン)および平均絶対パーセントエラー(紫)のLSTMモデルと他のベンチマークモデルとの比較を示しています。

*7:テストセットで評価されたエラーメトリック。LSTM0は元のLSTMモデルであり、LSTMrは縮小入力次元のLSTMモデルです。比較のために、GARCHモデル、すなわち式18もリストされています。