2022/03/22
金融ソリューション部 第二技術室
量子コンピュータブームが続いています。ご存知の方も多いと思いますが、中国、欧州、米国が巨額の資金を投資し開発競争にしのぎを削っており、日本でも様々な取り組みが行われています。
三井情報でも調査・検証や情報発信に取り組んでおり、これまでに量子コンピュータとは何か(*1)、なぜ速いのか(*2)、その実現方法(*3)、などを解説したコラムの公開や、社員有志が量子コンピュータをテーマにしたオンライン勉強会(*4)を開催しています。興味をお持ちの方はぜひ覗いてみてください。
さて、量子コンピュータは、交通・物流、材料開発や創薬、金融、など幅広い分野で活用が期待されると言われていますが、具体的にどう使われるかイメージするのは難しいのではないでしょうか。今回はこの中でも特に金融に焦点を当て、量子コンピュータが金融のどんな部分に影響を与えると考えられているのか、簡単にご紹介したいと思います。
なお、数式や技術的詳細には踏み込まずに概観していきたいという意図から、厳密さや正確性に拘らない説明をしているところがありますのであしからず(*5)。
(*1)「量子コンピュータとは」(https://www.mki.co.jp/knowledge/column77.html)
(*2) 「量子コンピュータはなぜ速いのか?」(https://www.mki.co.jp/knowledge/column101.html)
(*3) 「量子コンピュータ(量子ビット)の実現方法は?」(https://www.mki.co.jp/knowledge/column121.html)
(*4) オンライン勉強会「でぶろく」:三井情報のR&D部メンバーが中心となり開催している勉強会です。量子コンピュータ、マシーンラーニングなどの新しい技術について初心者向けに解説します。開催予定、お申し込みはでぶろくTOPページ(https://dev-roku.connpass.com/)よりご確認ください。
(*5) 以降、脚注では、本文中で説明しない専門用語を用いた簡単な説明を記しますが、詳細は省略させていただきます。より深く調べるためのキーワードを挙げているようなものとご理解いただけると幸いです。
量子コンピュータってなんでも速く計算できて、今あるコンピュータなんていらなくなる、とお思いの方もいらっしゃるかもしれませんが、実はそうではありません。量子コンピュータには得意なこととそれほどでもないこと、つまり、従来型のコンピュータよりも速く計算できそうな問題とそうでない問題があると考えられており、量子コンピュータはその得意なことに利用し、他のことは引き続き従来型のコンピュータを利用する、という役割分担が想定されています。
では、量子コンピュータは一体どういった問題が得意だと考えられているのか、ここで例を挙げてみます。
下の表をご覧ください。聞いたことのない言葉が多いかもしれませんが、今は気にしなくても大丈夫です。これらの用語が出てきたら「あ、ここで量子コンピュータが使えるんだ」と思っていただければ、それで十分です。
量子コンピュータが得意だと 考えられている問題の例 |
組合せ最適化 |
素因数分解 |
連立一次方程式 |
モンテカルロシミュレーション |
ポートフォリオ最適化なんて、いきなりまたなじみのない言葉がでてきたな、と思われるかもしれませんが、ご安心ください。これから説明します。
また、最適化という言葉を見て「あれ、さっきの表で見たな」と思われた方、正解です。
ポートフォリオ、という言葉は金融でよく使われます。詳細は省きますが、ここでは株式や債券、オプションといった投資の対象となる金融商品の組合せのこと、とお考えください。
金融商品は、大きな利益をもたらすことがある半面、値上がりを期待して買ったものが値下がりしてしまうといったリスクもあります。そこで、全ての資金を一つの金融商品に投資するのではなく、複数の金融商品を組み合わせてリスクを抑える分散投資が行われます。
この「複数の金融商品を組み合わせる」が、つまり「ポートフォリオを構成して投資をする」、ということです。
では、ポートフォリオを構成する金融商品はどうやって選んだらよいでしょうか。
例えばリスクの低い商品(リターンの振れ幅が小さい商品)ばかりを組み合わせれば安全性は高くなりますが、利益が上がらなければ何のために投資をしているのか、ということになります。逆に、利益が大きくてもリスクの高い商品ばかり選んでしまうと、どの商品も期待に反した動きをして大きな損をする、ということもあり得ます。
ですから、リスクと利益のバランスをうまくとったポートフォリオを(もちろん、予算の範囲内で)構成する必要があり、それを「ポートフォリオ最適化」と呼んでいます。
ポートフォリオ最適化を数学的に定式化する方法はいくつかありますが、最も基本的かつ広く用いられているアプローチ(*6)に従うと組合せ最適化問題として表すことができます。
ここで「組合せ最適化」という用語が出てきましたね。
つまり、量子コンピュータの出番!、、、なのですが、量子コンピュータが使えるとどうして嬉しいのか、をご理解いただくために、まずは組合せ最適化問題について少しだけ説明します。
(*6) 現代ポートフォリオ理論における平均・分散アプローチと呼ばれるものです。利益を示す指標として収益率の平均を、リスクを示す指標として収益率の分散を用い、二次計画問題として定式化します。
たくさんある道順の中から最も歩く距離が短くなる道順を選ぶ、あるいは、色々な形や大きさの積み木をしまうときになるべく小さい箱ですむ入れ方を選ぶ、など、指定された条件の中で、与えられた選択対象の最適な順序や組合せを選ぶような問題を組合せ最適化問題と呼びます。
組合せ最適化問題は、選択肢のすべての組合せを列挙して比較すれば答え(最適解)が出せるので簡単そうに思われるかもしれませんが、選択肢が増えるとその組合せの数が膨大になります。
例えば、ここにn個の荷物があり、その中のいくつかを選んでどこかへ持って行くとします。
このとき、一つの荷物につき「持って行く・持って行かない」という2通りの選択肢があるので、荷物の数n個に対し、組合せの数は2nになります。荷物の数が3個なら組合せは8通りに過ぎませんが、20個で1,048,576通り、30個では1,073,741,824通りにもなります。
たった30個の荷物を選択するだけでも組合せの数が10億通りを超えてしまうのですから、市場で取引されている多数の金融商品の組合せを単純に列挙して考えることの大変さが想像いただけると思います。
そこで、膨大な組み合わせを単純に列挙しなくてもすむように様々な工夫が行われてきました。
典型的な工夫は最適解を求めるための高速なアルゴリズムの開発ですが、そのようなアルゴリズムを開発できない場合も多く、そうしたケースでは、高性能なコンピュータや長い計算時間が必要な手法を用いて最適解を計算するか、最適ではないかもしれないがそれなりに良い答え(近似解)を用いるかを選ぶこととなります。
また例え高速なアルゴリズムを用いたとしても、組合せの選択対象の数が大きくなるにつれ計算しなければならない量も大きくなるという点は変わりませんので、本当は10,000個を選択対象としたいのに、何らかの理由を付けて100個に減らす、というようなことも珍しくありません。
というわけで、金融の世界でやることの一つにポートフォリオ最適化というものがあり、それは組合せ最適化という問題に属するが、組合せ最適化にはたくさんの計算が必要なのだ、ということを、ごく大雑把にですが見てきました。
ここで量子コンピュータに話を戻しますと、組合せ最適化というのは、まさに量子コンピュータの得意なことのひとつでした。
細かな説明は割愛しますが、組み合わせ最適化問題には量子アニーリングなど(*7)の手法を用いることができ、実際に従来型のコンピュータより速く計算できるのか(*8)といった研究や実験も行われています。
さて、ポートフォリオ最適化では、問題を連立一次方程式として表すこともできます(*9)。
(組み合わせ最適化のときと同様)連立一次方程式なんて簡単じゃないか、と思うかもしれませんが、ポートフォリオ最適化では、変数と式がポートフォリオに入れる候補となる商品の数とだいたい同じくらい必要になります。つまり、選択対象の金融商品が10,000個あったら10,000個の変数を用いて作られる10,000本の式を組み合わせて解くことになります。ちょっと気が遠くなりますよね。従来型のコンピュータでも解くことはできますが、結構な計算の量が必要となります。
そういえば最初の表にあったな、とお気づきの方もいらっしゃると思いますが、連立一次方程式というのも量子コンピュータが得意とする問題です。
連立一次方程式を解くために量子コンピュータで用いるアルゴリズム(*10) は、理論的に従来型のコンピュータよりも速いことがわかっており、現実の問題を当てはめて存分に計算できるようなハードウェア(*11) の実現が待たれるところです。
ここまで、ポートフォリオ最適化という問題で量子コンピュータが活躍できそうだということを見てきました。
もし、現実の金融の世界で実際に扱われているような規模のポートフォリオ最適化を量子コンピュータで従来よりも高速に計算できるようになれば、低いリスクで高い利益を上げることが期待できます。量子コンピュータをうまく使いこなす者が投資の勝ち組になるのかもしれません。
(*7) 二次計画問題として定式化したものを、QUBO(Quadratic Unconstrained Binary Optimization、制約なし2値変数2次形式最適化)形式に変形することで、量子アニーリングやQAOA(Quantum Approximate Optimization Algorithm、量子近似最適化アルゴリズム)を用いて解くことができます。QUBOや量子アニーリングについては、当コラムの過去の記事「量子コンピュータはなぜ速いのか?(https://www.mki.co.jp/knowledge/column101.html)」で触れられています。QAOAは、量子アニーリング方式でやっている量子断熱計算を量子ゲート方式で実行するアルゴリズムです。
(*8) 量子アニーリングは従来型のコンピュータと比べて速く計算できることが理論的には証明されておらず、現実に近い問題設定など様々なケースに適用して速く計算できたかを検証する、といった取り組みが行われています。
(*9) 二次計画問題として定式化したものにラグランジュの未定乗数法を適用することで連立一次方程式として表すことができます。
(*10) HHLアルゴリズム(Hallow-Hassidim-Lloyd Algorithm)と呼ばれるものです。解を求めるための計より算量を大幅に減らせる半面、計算のための準備や解の読み出しにも計算量を要するので、効率的な使い方には注意と工夫が必要とされています。
(*11) 量子コンピュータ本体(QPU:従来型コンピュータのCPUに当たる)はもちろんですが、データ入出力や保存などを行うための周辺装置とのやりとりなども、計算全体の速度を考える上で重要です。
その1の次はその2じゃないのか、とのお叱りはごもっともですが、その1だけでかなりの長さになってしまいましたので、その2以降は次の機会に譲りたいと思います。
ここではまとめに代えて、その2、その3になるかもしれなかったテーマをリストアップだけさせていただきます。
●デリバティブの価格決定
オプションを代表とする、他の資産から派生して作られた金融商品をデリバティブと呼びますが、これの価格決めも計算が大変と評判の問題です。
(表にもあった)モンテカルロシミュレーションが活躍する問題なので、量子コンピュータによる高速化(*12)が研究されています。
●リスク計量
特に金融機関にとっては、様々な規制を守るため、ひいては金融機関自身を守るために、金融機関全体でどのくらいのリスクを抱えているのかを数値化して把握することは非常に重要です。
やはりモンテカルロシミュレーションが活躍するため、デリバティブの価格決定と同様に、量子コンピュータによる高速化が研究されています。
●暗号通信
量子コンピュータによって現在主流のRSA暗号が破られる(*13)、という話を聞いたことのある方は多いでしょう。今すぐの問題ではありませんが、いずれやってくる危険と考えられています。
量子鍵配送や耐量子計算機暗号といった対抗策が考えられており、ネットワークで情報をやり取りすることが多い金融でもそれらに対応していく必要があります。
●機械学習
画像認識、音声認識、自然言語処理、その他機械学習は様々な分野に応用されており、金融も例外ではありません。
機械学習を行うための計算の一部(*14)が量子コンピュータにより高速化できると考えられており、研究が進められています。
(*12) QAE(Quantum Amplification Estimation、量子振幅推定)を用いることで、モンテカルロ法を実行する際の計算量を減らすことができます。また、QAEで必要とされる計算量をさらに削減できるようなアルゴリズムの研究も行われています。
(*13) RSA暗号は、その安全性が巨大な数の素因数分解の困難さに基づいていますが、量子コンピュータではショアのアルゴリズムを用いることで素因数分解を高速に解くことができます。ただし、現在用いられているRSA暗号を破るような素因数分解を行えるような量子コンピュータの実現には、10年単位の時間がかかると考えられています。
(*14) 例えば、量子コンピュータ版のオートエンコーダ、逆誤差伝播のための量子アルゴリズム、などが研究されています。
金融において量子コンピュータにどのような活用方法が期待されているのか、そのごく一部をご紹介しました。
量子コンピュータブームが大きな盛り上がりを見せているとはいえ、社会実装にはまだ20~30年かかるとも言われています。それでも、メガバンクや大手証券会社などを中心に、量子コンピュータのプロジェクトに金融機関が参画する姿をよく目にします。それは、金融分野において量子コンピュータが大きな可能性を持っていると考えられていることの表れでもあります。三井情報ではその可能性をよりよい形で実現すべく、調査や検証を進めてまいります。
川瀬 和哉
金融ソリューション部 第二技術室
融資業務や営業活動を支援するシステムの開発に従事。