テン゜ル分解ずその応甚。 Yandexでの講矩

Data Festでの以前の講矩は、新しい皮類の怜玢を構築するために必芁なアルゎリズムに専念したした 。 今日のレポヌトも、ある意味で、異なるアルゎリズムに関するものであり、むしろそれらの倚くの基瀎ずなる数孊に関するものです。 科孊博士であり、Skoltechの蚈算手法グルヌプの責任者であるIvan Oseledetsは、行列分解に぀いお聎衆に語りたした。





カットの䞋-デコヌドずほずんどのスラむド。






線圢代数を扱う小さな-比范的機械孊習-のコミュニティがありたす。 線圢代数があり、その䞭に倚重線圢代数、テン゜ル分解を扱う人々がいたす。 私は圌らに関係しおいたす。 そこではかなり倚くの興味深い結果が埗られたしたが、コミュニティが自分自身を組織化しお倖に出るこずはできないため、これらの結果の䞀郚は䞍明です。 ずころで、これは線圢代数にも圓おはたりたす。 NIPS、ICMLなどの䞻芁な䌚議の蚘事を芋るず、線圢代数の些现な事実に関連する倚くの蚘事を芋るこずができたす。 これは起こりたすが、それでも起こりたす。



テン゜ル展開に぀いお説明したすが、最初にマトリックス展開に぀いお説明する必芁がありたす。







行列。 ただの2次元テヌブル。 行列分解は、ブヌル玠数の積の圢匏での行列の衚珟です。 実際、それらはどこでも䜿甚され、誰もが携垯電話を持ち、座っおいる間、線圢システムを解決し、デヌタを送信し、行列を分解したす。 確かに、これらのマトリックスは非垞に小さく、4x4、8x8です。 しかし、実際にはこれらの行列は非垞に重芁です。



LU分解、ガりス分解、QR分解があるず蚀わざるを埗たせんが、䞻に特異分解に぀いおお話したす。これは、䜕らかの理由で、たずえば、私たちの倧孊の線圢代数コヌスでは、忘れられがちです。 圌らは、ゞョヌダン圢匏のような蚈算科孊の芳点からそのようなナンセンスを読みたす。そしお、それはどこでも䜿われたせん。 特異分解は通垞、最終的にどこかにあり、オプションなどです。これは間違っおいたす。 Golubずvan Lounの 「Matrix Calculations」ずいう本を取り䞊げるず、LU-ずQR-のどちらでもなく、特異分解で始たりたす。 積の圢匏のマトリックスのこの衚珟は、ナニタリ、察角、ナニタリです。



マトリックス分解に぀いお、良いこずは、それらに぀いお倚くが本圓に知られおいるこずです。 基本的な分解には、効果的なアルゎリズムがあり、安定しおいたす。MATLABで呌び出すこずができる゜フトりェアがありたす。Pythonでは、Fortranで蚘述されおいたす。 これをカりント可胜な単䞀の操䜜ず正しく芋なすず、正確な結果が埗られるこずが確実になりたす。募配降䞋を行う必芁はありたせん。 実際、これは操䜜の1぀のクォンタムです。 問題をマトリックス展開の蚈算に枛らした堎合、実際にそれを解決したした。 これは、たずえば、さたざたなスペクトル法の基瀎ずなりたす。 たずえば、EMアルゎリズムがある堎合、反埩アルゎリズムであり、収束が遅くなりたす。 そしお、スペクトルメ゜ッドを取埗できた堎合、あなたは玠晎らしく、ワンステップの゜リュヌションが埗られたす。



盎接同じ特異分解は問題を解決したせんが、䞀般的な問題を解決するための䞀皮のビルディングブロックです。 携垯電話に戻りたす。 この䟋は、明らかな理由で私を悩たせたす。私たちは本圓にそれを必芁ずする通信䌚瀟ず協力しおいたす。







特異分解ずは䜕かを芋お、それをむンデックス圢匏で曞くず、次の匏が埗られたす。 これは叀兞的な叀いアむデアに぀ながりたす-倧孊の最初のコヌスに戻るず、倉数の分離に぀ながりたす。 xをtから分解し、ここでIをjから分離し、1぀の離散むンデックスを別のむンデックスから分離したす。぀たり、1぀の倉数からの関数の積の圢で2぀の倉数から関数を衚したす。 この圢匏の関数がほずんどないこずは明らかですが、そのような関数の合蚈を曞くず、かなり広いクラスになりたす。



実際、特異分解の䞻な甚途は、このような䜎ランクの近䌌の構築です。 これはランクrの行列であり、圓然、ランクが行列の合蚈サむズよりも倧幅に小さい堎合に関心がありたす。



ここですべおが順調です。 ランクを修正し、最適な近䌌倀を芋぀けるタスクを蚭定するず、特異分解の解が䞎えられたす。 実際、はるかに倚くのこずが知られおおり、特異分解の助けを借りた堎合よりも速く行うこずができたす。行列のすべおの芁玠を蚈算するこずなく、などです。倧きな矎しい理論がありたす-䜎ランク行列の理論は、発展し続けおおり、ただ閉じられおいたせん。







ただし、閉じられおいたせんが、3぀以䞊のむンデックスを䜜成したす。



このトピックに察する私の最初の関心は玔粋に理論的なものでした。 䞀郚のアプリケヌションでは、マトリックスを䜿甚しお䜕かを実行し、分解し、衚珟するこずができたす。これたでのずころ、どのアプリケヌションでも問題ありたせん。 最埌に蚀いたす。



そしお、Ai、jの代わりにAi、jkを蚘述し、倉数を分離しようずするずどうなりたすか。 したがっお、テン゜ル展開の問題は完党に自然な方法で発生したす。 テン゜ルがありたす-テン゜ルずは、倚次元配列、単玔な2次元テヌブルを意味したす-これらの倚次元配列を圧瞮しお、倧たかに蚀っお、䜎パラメヌタヌ衚珟を構築し、通垞は矎しい蚀葉で蚀うず、次元の呪いを克服したいず思いたす。 実際、この甚語-それは、い぀ものように、1961幎のベルマンの䜜品で、たったく異なるタスクずたったく異なる関係で登堎したした。 しかし、珟圚、dのnは非垞に悪いずいう意味で䜿甚されおいたす。 dを増やしたい堎合、指数関数的な成長などがありたす。



最も䞀般的な意味での因数分解アプリケヌションで発生する特定のクラスのテン゜ルを遞択し、そこからテン゜ルをすばやく回埩できるような䜎パラメヌタヌ衚珟を構築しようずしおいたす。 たた、パラメヌタヌはほずんどありたせん。 原則ずしお、ニュヌラルネットワヌクは、ある意味でテン゜ルを近䌌する問題を解決するずいうこずができたす。なぜなら、それらは、どこか別のパラメヌタ空間からマッピングを構築しようずしおいるからです。







因数分解の問題、぀たり単玔なオブゞェクトの積の圢匏での衚珟に、テン゜ルを持぀行列ず行列の積がある堎合、テン゜ルの決定はより耇雑なタスクです。 しかし、䜎ランク近䌌の䞍完党な特異分解のむンデックスレコヌドを芋るず、圓然、同様の匏が埗られたす。 圌女がいる。 1぀の離散倉数の関数の積であるオブゞェクトでテン゜ルを近䌌し、関数t1に関数t2を掛けようずしおいたす。 アむデアは完党に自然です。 甚語が1぀しかない堎合は、䜕も近づけたせん。 そしお、あなたがかなり少数のパラメヌタヌを取るこずを蚱可する堎合、テン゜ルの非垞に興味深いクラスが発生したす。これは、メ゜ッドの倚くの問題で明瀺的たたは暗黙的に䜿甚されたす。 ほがこの圢匏は、量子化孊で波動関数を衚すために䜿甚されおいるず蚀えたす。 反察称性もあり、補品の代わりに決定芁因が珟れたす-しかし、科孊の巚倧な分野党䜓は、実際、そのような分離可胜な近䌌に基づいおいたす。



したがっお、もちろん、プロパティを調べたり、ここで䜕が起こっおいるかを理解したりするこずは興味深いこずです。







この゚ンティティ-1぀の倉数の関数の積の合蚈ずしおの衚珟-は暙準分解ず呌ばれたす。 最初に提案されたのは1927幎です。 それから、数孊から遠く離れお䜿甚されたした。 統蚈孊、ケモメトリックス、Psychomatrixなどの雑誌で、人々がデヌタキュヌブを受け取った䜜品がありたした。 兆候がありたす-䜕かが起こりたした。 したがっお、圌らは倚芁玠モデルを構築したした。 これらの芁因のマトリックスは、いく぀かの芁因ずしお解釈できたす。 これらのうち、いく぀かの結論を導き出すこずができたす。



パラメヌタヌの数を数えるず、dnrパラメヌタヌが取埗されたす。 rが小さい堎合、すべおが正垞です。 しかし、私が解決しようずしおいる問題は、原則ずしお、たずえそのような近䌌が存圚するこずがわかっおいおも、それを蚈算するこずは困難な䜜業であるこずです。 ランクを蚈算するタスクのように、䞀般的な堎合はNP耇雑であるず蚀うこずさえできたす。 マトリックスの堎合、これはそうではありたせん。 行列のランクを蚈算できたす-たずえば、ガりス䟋倖を䜿甚するず、これは倚項匏の挔算数で実行できたす。 ここではすべおが間違っおいたす。



サむズが9x9x9のテン゜ルの䟋がありたすが、その最小項数の正確な倀はただ䞍明です。 それは23以䞋、21以䞊であるこずが知られおいたす。スヌパヌコンピュヌタヌ、単玔な倚項匏これは、倚項方皋匏系の可解性の問題です。 しかし、そのようなタスクは非垞に難しい堎合がありたす。 そしお、テン゜ルは実際的に重芁です。 このテン゜ルのランクは、行列乗算アルゎリズムの耇雑床むンデックスに関連しおいたす。 Strassenの察数は7からのバむナリです。 したがっお、実際には、指数を蚈算するタスクは、䞀郚のテン゜ルの暙準ランクを蚈算するこずになりたす。



倚くのアプリケヌションでは、特定のテン゜ルのこの衚珟はうたく機胜したす。 しかし、䞀般的に、このタスクは悪いです。



最近、非垞に尊敬されおいる人々の仕事が珟れたした。そこで圌らはこの考えをディヌプニュヌラルネットワヌクで分離倉数ず結び付け、いく぀かの結果を蚌明しようずしおいたす。 実際、それらを解読するず、それらはテン゜ル分解に関する非垞に興味深い代数的結果です。 結果をテン゜ル展開の蚀語に翻蚳するず、暙準的なテン゜ル展開が別のテン゜ル展開よりも優れおいるこずがわかりたす。 どちらが良いかはただ瀺しおいたせんが、暙準的なものです。 この意味でCanonicalは悪いです。 この結論は、暙準的なアヌキテクチャが浅く、浅いが、深く、より広範でなければならないなどの事実によっお正圓化されたす。



したがっお、これにスムヌズに移行しおみたしょう。 正芏分解の堎合、最適化アルゎリズムはゆっくり収束したす。぀たり、沌地などがありたす。この匏を芋るず、線圢代数に粟通しおいるすべおの人が、䜿甚できるアルゎリズムをすぐに理解できたす。 募配降䞋法を䜿甚できたす-1぀を陀くすべおの因子を修正し、線圢最小二乗問題を取埗したす。 しかし、この方法は非垞に遅くなりたす。



このようなモデルには1぀の優れた特性がありたす。それでも解決策が芋぀かった堎合、それは些现なこずたで唯䞀のものです。 たずえば、s、s-1を挿入できる堎合、行列分解の問題はありたせん。 正芏分解が蚈算される堎合、それが唯䞀のものであり、それは良いこずです。 しかし、残念ながら、蚈算が難しい堎合がありたす。







Tuckerの別の分解がありたす。 それはある皮の心理枬定でした。 アむデアはここにある皮の接着芁玠を導入するこずです-そのため、それぞれの芁玠の間には぀ながりがありたせん。 すべおが良奜で、この分解は安定し、垞に最良の近䌌が存圚したす。 しかし、たずえばd = 10の堎合、それを䜿甚しようずするず、栌玍する必芁がある補助的な2次元配列が存圚し、匱䜓化された圢匏ではあるが、次元の呪いが残りたす。



はい。たずえば、3次元から4次元の問題の堎合、タッカヌ分解は非垞に効果的です。 それが適甚される䜜品はかなり倚数ありたす。 それにもかかわらず、私たちの究極の目暙はそれではありたせん。







デフォルトでは指数関数的な数のパラメヌタヌはないが、すべおを蚈算できる堎所を取埗したい。 最初のアむデアは非垞に単玔でした。すべおがマトリックスに適しおいる堎合、テン゜ル、倚次元配列からマトリックスをスカルプトしたしょう。 どうやっおやるの 簡単です。 d個のむンデックスがありたす。それらをグルヌプに分け、マトリックスを䜜成し、分解をカりントしたしょう。



壊れたす。 むンデックスの䞀郚を小文字のむンデックスずしお宣蚀し、他の郚分を列むンデックスずしお宣蚀したす。 どういうわけか再配眮。 MATLABおよびPythonでは、これはすべおreshapeおよびtransposeコマンドによっお行われたす。䜎ランクの近䌌を考慮したす。 もう1぀の質問は、その方法です。



圓然、発生する小さな配列を再垰的に䜜成しようずするこずができたす。 単玔な方法でそれらを䜜成するず、次の耇雑さが生じるこずがわかりたす 。r log d 。 もはや指数関数的ではありたせんが、rは倧幅に増加したす。



これを慎重に行うず、1぀のフレヌズを蚀いたすが、むンデックスが1぀远加されたす。 新しいむンデックスず芋なされる必芁がありたす。 9次元の配列があり、むンデックスを5 + 4に分割し、分解し、远加のむンデックスを1぀、6次元ず5次元のテン゜ルを1぀取埗し、それらを分解し続けるずしたす。 この圢匏では、指数関数的な耇雑さは発生せず、たさにそのような数のパラメヌタヌを持぀衚珟が埗られたす。 そしお、誰かが私たちに、道路で埗られたすべおの行列が䜎いランクを持っおいるず蚀ったずしたら このような再垰構造が刀明したした。 それは非垞に厄介で、プログラムするのは嫌です、私はそれをするのが面倒でした。







ある時点で、この構造の最も単玔な圢匏を遞択できるこずに気付きたしたが、これは非垞に匷力です。 これがテン゜ルトレむン、テン゜ルトレむンになりたした。 私たちはこれを提案したした、名前は固たりたした。 それから、もちろん、私たちはこれを思い぀いた最初の人ではないこずがわかりたした。 固䜓物理孊では、行列積状態ずしお知られおいたした。 しかし、良いこずは少なくずも2回発芋しなければならないこずをすべおの報告で繰り返したす。さもなければ、それが良いかどうかはあたり明確ではありたせん。 少なくずも、このパフォヌマンスは少なくずも2回、さらには2.5回、たたは3回も開かれたした。



ここにアむデアがありたす。私はこの6、7幎の間、分解ず研究に取り組んでおり、最埌たで研究されたずは蚀えたせん。



テン゜ルは、1぀のむンデックスのみに䟝存するオブゞェクトの積ずしお衚されたす。 実際、倉数の分離に぀いお話しおいたすが、1぀の小さな䟋倖がありたす。これらの小さなものは行列です。 これらの行列を乗算しお、ポむントテン゜ルの倀を取埗したす。 最初の芁玠は行、次にマトリックス、マトリックス、列です-数倀を取埗したす。 たた、これらの行列はパラメヌタヌに䟝存し、3次元テン゜ルずしお保存できたす。 マトリックスのコレクションがあり、最初にステッチのコレクションがありたす。 私たちは、ここかられロラむン、ここから5番目のマトリックス、ここから3番目のマトリックスが必芁であるず単玔に乗算したす。 明らかに、芁玠の蚈算にはdr 2の操䜜が必芁です。 むンデックス圢匏でも。 コンパクトな倖芳。



ほずんど䜕も倉わらないように芋えたすが、実際には、このような衚珟は特異分解のすべおの特性を保持したす。 蚈算、盎亀化、および最適な近䌌を芋぀けるこずができたす。 これは、すべおのテン゜ルのセットの䜎パラメヌタ倚様䜓ですが、幞運であり、解決策がそれにある堎合は、簡単に芋぀けるこずができたす。







いく぀かのプロパティがありたす。 珟圚、耇数のランクがありたす。 マトリックス、列、たたは行には1぀のランクしかありたせんが、マトリックスのランクは同じであるため、幞運です。 テン゜ルには倚くのランクがありたす。 先頭の数字rは暙準ランクです。 ここにランクd-1がありたす。 dごずに独自のランクがあり、倚くのランクがありたす。 それにもかかわらず、これらの耇雑さを決定するすべおのランクず、そのような衚珟を栌玍するためのメモリは、少なくずも理論的には、いく぀かのマトリックスのランク、いわゆるスむヌプずしお蚈算できたす。 倚次元配列を取埗し、それを行列に倉換し、ランクを考慮したす-そのようなランクには分解がありたす。



なぜこれがフォヌマットず呌ばれるのですか オブゞェクトがこの圢匏で保存されおいる堎合、加算、乗算、ノルムの蚈算の代数挔算は、圢匏を離れるこずなく盎接実行できたす。 この堎合、ずにかく䜕かが起こりたす。 たずえば、2぀のテン゜ルを合蚈するず、結果のランクはランクの合蚈を超えなくなりたす。 反埩プロセスでこれを䜕床も実行するず、dの䟝存性がrで線圢および2次である堎合でも、ランクは非垞に倧きくなりたす。 ランク100〜200で安党に䜜業できたす。 クラスタヌの物理孊者はランク4000〜5000で䜜業できたすが、十分に倧きな密床のマトリックスを保存する必芁があるため、䜿甚できなくなりたした。



しかし、ランクを䞋げるこずができる非垞にシンプルで矎しい代数アルゎリズムがありたす。 フラベニりスのノルムには蚱容できる粟床があり、粟床を䞎える最小ランクを芋぀けたいず思いたす。 しかし、私は同時にランクを䞋げおいたす。 䞞め。 浮動小数点数を䜿甚する堎合、100桁すべおを保存するわけではありたせん。 16桁だけ残したす。 これらの行列のサむズなど、蚱容できる粟床を䞎えるパラメヌタヌを芋぀けたす。 これを行う信頌性の高い堅牢なアルゎリズムがありたす-MATLABたたはPythonで20〜30行かかりたす。



もう1぀矎しいこずがありたす。 物理孊者は圌女を確実に知りたせんでした。 私はこの結果を誇りに思いたす、それは私の圓時のチヌフである゚フゲニヌ・゚フゲニ゚ノィッチ・タルティシュニコフず私のものです。 䞎えられたテン゜ルがそのような構造を持っおいるこずがわかっおいる堎合、dnr 2芁玠から確実に埩元できたす。 ぀たり、すべおの芁玠を蚈算せずに、少数の芁玠を調べお、基底を䜿甚せずにテン゜ル党䜓を埩元できたす。 これは興味深い事実であり、行列の堎合、知られおいるほど知られおいたせん。 ランクrの行列d = 2がありたす。 r列ずr行で埩元できたす。



このような倚様性がある堎合、ランクを制限しお機胜を最小化できたす。 暙準的な状況芁玠にはアクセスできたせんが、最小限に抑えたい特定の機胜がありたす。 このため、瀺された制限で最適化する方法に぀いお、たったく別の研究ラむンが発生したす。 これは凞集合ではありたせんが、別個の研究を必芁ずする倚くの興味深いトポロゞヌ特性を持っおいたす。



最近、䞻に偏埮分方皋匏から生じる問題に぀いお、ランクが必芁な粟床に応じお察数的に振る舞うずいう掚定を最終的に蚌明するこずができたす。 そのような衚珟が準最適である問題のクラス党䜓がありたす。







TTランクのカりント方法を芋おいきたしょう。 マトリックスを取埗し、最初のk個のむンデックスを行むンデックス、最埌のdkを列むンデックスず芋なしたす。 , . .



. , . . — d-1 , . , 10-6, .



d . — . , . 1010, 100100. , 1000010000, .







dnr 3 . , - .



. - 100 , 10 , .



. .







. , . . , , . . , .



r, r r , . , , , .



, , . , , . — , 5, 5 5 , .



, . , .



, , , . - . , . , , . . : , .



. , -, . , . , , . . , .



, , .



— , . , d-. d- , . . 2 d 2222. , . . , , , .



— , - , — , - .



. . , . , , , . — .



: ttpy Python TT-Toolbox MATLAB. , , , , . , , .



. , , , . , , - , . - . , : . 10 -6 10 -8 . — , — . — , . , , , . , , , - . 芋おみたしょう。



, - , . TensorFlow . , — , . - , . , , .



, . . 2 60 . . , n 3 , n = 2 d , 220, . 2222, 60- . .



, : 2 d, 60, , 50. , .



, . , , , , . .







, . TensorNet, , NIPS . , . , , .



. . , .



, . , , . , . , , : , .







. : , , , , . , , . , . , — , . , . , , . -, . 1500 — 10 5 . MATLAB . .







. 12 , 12- , 30 12 . .







Exponential Machines, x1, x2, , 2 d . 2222 : . 動䜜したす。 , , .



. , , . , - — , . RecSys. Polara. , , . : . : , « », SVD « ». « » . . : « — » « — — » , . - . , , , - : , , , . , .







, — . . , deep learning. , arithmetic circuit. , .



, GitHub , . , .



All Articles