テンソルネットワークって何ですか?何の役に立つんですか?

物性分野で登場するテンソルネットワークというのは,何らかの物理的対象を多数のテンソルからなるテンソル積の縮約として表現したもののことです.代表的な例のひとつは,統計力学でいう分配関数を表すテンソルネットワークで,もうひとつは量子力学でいう多体波動関数を表すテンソルネットワークです.

例えば,学部の統計力学の講義で登場する正方格子上のイジングモデルの分配関数は,通常 \(\exp(-KS_iS_j)\) という形の多数の因子の積をスピン変数 \(S_i\) に関して和をとった形に表現されますが,これは簡単な変形によって,正方形ごとに1つ定義される4階テンソルの全てからなるテンソル積の縮約の形に書きなおすことができます.イジングモデル以外の有限離散自由度古典モデルも同様にテンソル積の縮約として表現できます.

量子力学的な波動関数もテンソルネットワークで表現できますが,この場合は,分配関数ではなく,適当な基底で波動関数を展開した係数をテンソル積の縮約で表現します.例えば,正方格子上の \(S=1/2\) ハイゼンベルクモデルでは,基底関数として,スピン演算子のz成分の固有関数をとることができます.つまり,1つの基底関数は,\(i\) 番目のスピンの\(z\) 成分の固有値を \(S_i\) として,\((S_1, S_2, \dots, S_N)\) で指定できます.波動関数の展開係数は,一般的には,\(C(S_1, S_2, \dots, S_N)\) と書けますが,これを,\(N\) 個のテンソル,\(T(S_1), T(S_2), \dots, T(S_N)\) のテンソル積の縮約として表現したものを TNS (tensor network state),あるいは PEPS (Projected Entangled Pair State)と呼んでいます.この場合は,各テンソルは\(S_i\)に対応した添字を持っていて,縮約はこれらの添字を除いた部分縮約であり,\(S_1, S_2, \dots, S_N\) という自由度(物理自由度)が残っている点が,最初のイジングモデルの例とは違っています.物理量の期待値を求めるには,ブラとケットに対応する2つの等価なテンソルネットワークを考えて,物理自由度に関して縮約をとる操作が必要になります.

これらは,単に表現の仕方にすぎず,これだけではとくに役に立つわけではありませんが,テンソルネットワークの形式で書けているものの縮約を効率よく計算する方法がいろいろと研究されています.その研究の成果は,論文だけでなく,一部はすでにソフトウェアパッケージの形で公開されているものもあります.

パッケージの多くは,種々のテンソルネットワークの計算のための便利な「部品」を提供してくれるAPI的なものです.たとえば,NCON, mptensor,TensorNetwork,ITensor,TeNPy,Uni10などがあります.NCON,mpotensorはプリミティブなテンソル積計算に特化しており,少数個のテンソルからなる部分ネットワークの縮約の順序の自動最適化などをサポートしています.NCONは,MATLABの関数の形式,mptensorは,C++ライブラリの形式でそれぞれ提供されます.とくにmptensorはMPI/OpenMP 並列をサポートしているところに特徴があります.TensorNetworkは,TensorFlowをベースとしておりGPGPUによる加速で実績があります.ITensor,TeNPyは,1次元量子系に特に適応していて,2次元系を1次元の問題にマップする機能や,MPS,MPOの形式の部分ネットワークに対するさまざまな操作を便利に行うための機能が充実しています.Uni10はC++で書かれていて対称性を意識したテンソルネットワーク計算のためのツールを提供するだけでなく,pythonとのインターフェースも用意されており,コンパイル済みのライブラリをpythonから利用することができるようになっています.

スタンドアロンアプリケーションの形式のものとしては,TeNeSがあります.TeNeSは上述のmptensorに基づいてより高次のテンソル計算を行うことで,原理的には任意の2次元量子系に対してその基底状態をTNSの形で計算します.上記のAPI的なライブラリのパッケージでも,多くの実行例がスタンドアロンプログラムの形で提供されているので,そちらを参考に自分のニーズに合ったプログラムを書くことも有力な選択肢でしょう.

また,ここでは,主に高効率な計算法としての側面からテンソルネットワーク関連のソフトウェアを紹介しましたが,テンソルネットワーク表現は単に計算の高効率化のために有用であるだけでなく,繰り込み固定点の特性や,トポロジカル量子相など同定が難しい量子相の特徴付けなどにおいても有用であることがわかっており,最近では概念的な側面からの研究も盛んに行われています.