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

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

例えば,学部の統計力学の講義で登場する正方格子上のイジングモデルの分配関数は,通常 \(\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)\) のテンソル積の縮約として表現したものを PEPS (Projected Entangled Pair State)と呼んでいます.この場合は,縮約をとったあとも,\(S_1, S_2, \dots, S_N\) という自由度(物理自由度)が残っている点が,最初のイジングモデルの例とは違っています.物理量の期待値を求めるには,ブラとケットに対応する2つの等価なテンソルネットワークを考えて,物理自由度に関して縮約をとる操作が必要になります.

これらは,単に表現の仕方にすぎず,これだけでは,とくに役に立つわけではありませんが,テンソルネットワークの形式で書けているものの縮約を効率よく計算する方法がいろいろと研究されています.その研究の成果は,論文だけでなく,一部はすでにソフトウェアパッケージの形で公開されているものもあります.(iTensor, uni10, mptensor など.)また,テンソルネットワークとしての表現は高効率な計算法として有用であるだけでなく,原理的に無限に高精度化が可能な繰り込み群の構成や,トポロジカル量子相など同定が難しい量子相の特徴付けなどにおいても有用であることがわかっており,概念的な側面からの重要性も持っています.