人工知能で株価を予測したい人へのヒント集(2):ノイズがノイズだとは限らない

前回に引き続き、機械学習を使って株価を予測したい人に役立つヒント集を執筆する。このシリーズは、「こうすると失敗する」といった例や「こういったアプローチで取り組むのは有効」 という例を示していくものである。今回は「ノイズの扱い」についてである。

前回:人工知能で株価を予測したい人へのヒント集(1):キリの良い数値という固定観念

テキストデータを利用するときのノイズ

株価や出来高、経済指標、財務データなど数値を使うのがマーケットを分析する上での基本であり、機械学習システムにおいても例外ではない。しかし、自然言語処理などを利用してテキストデータを扱って金融市場との関連性を見るのも重要なアプローチである。

例えばニュースやTwitterでのツイート、Yahoo Financeの記事に書かれるコメント、果ては5ちゃんねる(旧2ちゃんねる)まで、様々なテキストデータが選択肢に入る。

先駆的な研究としてはTwitterのツイートの感情分析とダウ平均株価との関連性を見つけたJohan Bollen et al. (2011)がある。これはこの分野の研究に大きな影響を与えた。こうした自然言語処理を用いた研究は数多あり、「未だ見つけられていないアルゴリズム」を探す上でもテキストは重要である。

参考:Bollen, Johan, Huina Mao, and Xiaojun Zeng. “Twitter mood predicts the stock market.” Journal of computational science 2.1 (2011): 1-8.

この論文から随分長い時間が経ち、単純な感情分析だけで株価を予測できるほど甘い世界ではなくなったが、それでも感情データを事前学習させ、そのモデルを使って別の分析に役立てるといったアプローチは今でも有効である。

テキストデータを扱う上でノイズの処理は重要である。同じ英単語でも全角や半角が異なっていたり、日本語でも表記ゆれがあったりすれば表記を統一しなければならないし、単純にHTMLタグなども除去しなければならない。

こうしたデータクレンジングが機械学習においては非常に重要であり、そして煩雑な仕事でもある。米国などではパープルカラー労働者に任せようとする動きもあるが、誰がやるにしても人間が地道に進めていくものである。

関連記事:超高学歴社会米国の影で進むAI分野におけるパープルカラー労働者

ノイズがノイズでなくなるとき

ノイズとして扱われるものにスパムもある。同じ内容のツイートを複数のアカウントから連投するといった内容や、意味の無い文字列の連投(「荒らし」など)など、うまく処理しないと適切に分析ができないことが多い。

基本的にはこうしたスパムは何らかのアルゴリズムを用いて除去しなければならないが、場合によっては特定の銘柄の値動きを予測する上で役立つこともある。

例えば意図的に買いを煽りたい時などに、特定の銘柄に関する記述を意図的に多く増やすといった行為がある。風説の流布とまではいかなくても、特定銘柄の株価の情報をひたすら連投するといった記述は多く見られ、そこには何らかの意図が介在しているケースは多い。

例えば、ビットコイン価格が上昇してくると、5ちゃんねるで普段はビットコインが話題にならないような板にビットコイン関連のスレや書き込みが不自然に増えてくるといった傾向は過去にも見られた。

当然、カモに買わせたいのであるが、こうした不自然な例はいくらでも見つかる。これらは基本的にはノイズとして処理するが、場合によってはノイズがノイズでなくなるときがある。

仕手筋との攻防

但し、こうした仕手筋によるSNSや掲示板でも書き込みも日々変化する。ノイズの分析を行っている機械学習研究者も少なくないと思われる。逆に言えば、意図的に敵対的サンプルを流す事も可能だろう。

敵対的サンプル(adversarial examples)は、主に画像認識分野におけるニューラルネットワークで課題になっているものだが、人間には分からないノイズを持つデータを既存の画像に被せることで、機械学習システムを騙す効果をもたらすものだ。自動運転の分野でも悪意を持って標識に敵対的サンプルを被せ、自動運転システムを騙すといった懸念はある。

それと同じで「意図的に仕手筋が動いているように見せる」ことも可能である。これもノイズがノイズでなくなる例だが、ノイズを分析することがうまくいっても、将来においてもそれがうまくいくとも限らないことには注意である。

自然言語処理を学習したい人へ

自然言語処理は発展途上であり、かつ、難しい分野なので、とっつきにくいところがある。数式レベルで理解したい人には『言語処理のための機械学習入門(コロナ社)』や『深層学習による自然言語処理(講談社)』あたりが有名な入門書である。

しかし、エンジニア向けには1からPythonで実装していく『ゼロから作るDeep Learning② ―自然言語処理編(オライリー・ジャパン)』が有名である。これはディープラーニングについて扱った『ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装(オライリー・ジャパン)』の続編であり、初学者には最適である。

斎藤康毅(2018)『ゼロから作るDeep Learning② ―自然言語処理編』オライリー・ジャパン

前回:人工知能で株価を予測したい人へのヒント集(1):キリの良い数値という固定観念

次回:人工知能で株価を予測したい人へのヒント集(3):時系列データ解析という名のテクニカル分析

       

この記事の著者 HAL について

金融・マーケティング分野の機械学習システム開発や導入支援が専門。SlofiAでは主に海外情勢に関する記事、金融工学や機械学習に関する記事を担当。

HAL の記事一覧 SlofiAのtwitterアカウント@slofia_finance