メインコンテンツへスキップ

【月刊組合せ論 Natori】Netflix 問題とグラフの剛性【2025 年 10 月号】

·
箱星
著者
箱星
のんびり暮らしたい。
目次

月刊組合せ論 Natori は面白そうな組合せ論のトピックを紹介していく企画です。今回は Netflix 問題の話をします。

ちなみに私は Netflix 未加入です。

Netflix 問題
#

Netflix のユーザー数を mm 人、映画数を nn 本とします。人 ii は映画 jjaija_{ij} 点の評価をつけたとします。評価を m×nm\times n の行列として表すことができます。

しかし現実にはすべてのユーザーがすべての映画を見るとは限りません。例えば

(9580?50??708090?75?) \begin{pmatrix} 95 & 80 & ? & 50 \\ ? & ? & 70 & 80 \\ 90 & ? & 75 & ? \end{pmatrix}

のように、一部データが欠損した行列となります。

多くのサイトでは「おすすめ」機能があります。あるユーザーがまだ見ていない映画の中から、高く評価しそうな映画を選び出したいですが、そのためには行列を補完する必要があります。もちろん補完方法は無限にあるわけですが、どのように補完するのがよいでしょうか。

この問題は Netflix 問題と呼ばれています。以下が起源のようです。

この問題へのアプローチはいろいろなものがありますが、行列をなるべく低ランクにするというアプローチをとります。ランクが高いとバラバラな評価をしているということになるので、自然な要請だと思います。

グラフの剛性
#

この記事のもう 1 つの主題はグラフの剛性です。

グラフとは頂点と辺の組で、2 つの頂点がつながっているかつながっていないかだけを気にすることが普通です。ですがここでは、2 つの頂点を硬い棒でつなぐことを考えてみます。

例えば平面上に三角形があるとき、硬い棒でつながっているので形を変えることはできません。できるのは回転や平行移動のみです。

一方で四角形の場合は変形することができます。このように三角形は剛、四角形は柔、と考えられます。

では四角形に対角線を一本加えるとどうでしょうか。長さを保つ配置は 2 種類ありますが、連続変形することはできません。

グラフ GGdd 次元空間 Rd\mathbb{R}^d に実現したもの pp を考えます。これは GGnn 頂点のとき、空間内に nn 個の点 p1,,pnp_1,\ldots,p_n を配置して、(i,j)(i,j) 間に辺があるときに pi,pjp_i,p_j 間に硬い棒を置いたものです。組 (G,p)(G,p)フレームワークと呼びます。

2 つのフレームワーク (G,p),(G,q)(G,p), (G,q)合同であるとは、平行移動・回転・反転の組合せで移りあうことを言います。(G,p)(G,p)であるとは、(G,p)(G,p) と辺の長さが等しいフレームワーク (G,q)(G,q) が常に (G,p)(G,p) と合同であることをいいます。これは大域的に剛と呼ばれることもあります。局所的に剛という概念もあり、(G,q)(G,q) の存在できる範囲を pp の近傍に限ったものです。

剛性の判定は難しいことが知られています。そこで、無限小剛性を考えます。pi=pi(t)p_i=p_i(t) を時間変化する変数とみなします。距離 pipj\|p_i-p_j\| が不変であることから、2 乗を時間微分すると

ddtpipj2=(pipj)T(p˙ip˙j)=0 \frac{d}{dt}\|p_i-p_j\|^2=(p_i-p_j)^T(\dot{p}_i-\dot{p}_j)=0

となります。これを p˙i\dot{p}_i が未知数の方程式とみます。

例えば GG が三角形で p1T=(0,0),p2T=(1,0),p3T=(1,2)p_1^T=(0,0), p_2^T=(1,0),p_3^T=(1,2) とすると、方程式は

{(p1Tp2T)(p˙1p˙2)=0(p2Tp3T)(p˙2p˙3)=0(p1Tp3T)(p˙1p˙3)=0 \begin{cases} (p_1^T-p_2^T)(\dot{p}_1-\dot{p}_2) &= 0 \\ (p_2^T-p_3^T)(\dot{p}_2-\dot{p}_3) &= 0 \\ (p_1^T-p_3^T)(\dot{p}_1-\dot{p}_3) &= 0 \end{cases}

となり、行列の形で書くと

(101000000202120012)(p˙1p˙2p˙3)=0 \begin{pmatrix} -1 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & -2 & 0 & 2 \\ -1 & -2 & 0 & 0 & 1 & 2 \end{pmatrix} \begin{pmatrix} \dot{p}_1 \\ \dot{p}_2 \\ \dot{p}_3 \\ \end{pmatrix}=0

となります。一方、GG が四角形で辺が {1,2},{2,3},{3,4},{4,1}\{1,2\}, \{2,3\}, \{3,4\}, \{4,1\} であり、p1T=(0,0),p2T=(1,2),p3T=(3,5),p4T=(4,1)p_1^T=(0,0), p_2^T=(1,2), p_3^T=(3,5), p_4^T=(4,1) のとき

(12120000002323000000141441000041)(p˙1p˙2p˙3p˙4)=0 \begin{pmatrix} -1 & -2 & 1 & 2 & 0 & 0 & 0 & 0 \\ 0 & 0 & -2 & -3 & 2 & 3 & 0 & 0 \\ 0 & 0 & 0 & 0 & -1 & 4 & 1 & -4 \\ -4 & -1 & 0 & 0 & 0 & 0 & 4 & 1 \end{pmatrix} \begin{pmatrix} \dot{p}_1 \\ \dot{p}_2 \\ \dot{p}_3 \\ \dot{p}_4 \end{pmatrix}=0

となります。係数行列を AA とおいて、その階数を調べます。以降 nd+1n\ge d+1 と仮定します。Rd\mathbb{R}^d において回転運動の自由度が (d2)\binom{d}{2}、平行移動の自由度が dd なので、Ax=0Ax=0 の解空間の次元は (d2)+d=(d+12)\binom{d}{2}+d=\binom{d+1}{2} 以上です。よって階数は

rankAdn(d+12) \operatorname{rank}A\le dn-\binom{d+1}{2}

をみたします。フレームワーク (G,p)(G,p)無限小剛とは、上の不等式で等号が成り立つことをいいます。1 つ目の例は無限小剛ですが、2 つ目はそうではありません。

剛性や無限小剛性は GG だけでなく pp にも依存して決まりますが、実際には pp をいい感じにランダムにとるとよい場合があります。

定理 (Asimow-Roth). 頂点数 nd+1n\ge d+1 の一般的なフレームワーク (G,p)(G,p) に対して、剛であるための必要十分条件は無限小剛であることである。

行列の低ランク補完
#

話を行列の低ランク補完に戻します。一部が欠損した行列 AA を階数 dd 以下にする方法が一意的かどうかという問題に、グラフの剛性のテクニックが使えます。

まず、行列 AA は半正定値と仮定します。特に対称行列です。線形代数の結果より、半正定値行列はグラム行列です。AA の階数を dd とおくと、p1,,pnRdp_1,\ldots,p_n\in \mathbb{R}^d を用いて aij=piTpja_{ij}=p_i^Tp_j と表せます。

行列の各成分を変形させます。もし成分 aija_{ij} の値が確定しているとき、時間微分すると 0 です。つまり

ddtpiTpj=piTp˙j+pjTp˙i=0 \frac{d}{dt}p_i^Tp_j=p_i^T\dot{p}_j+p_j^T\dot{p}_i=0

という方程式が得られます。先ほどと似ていますね。

例として 3 次半正定値行列 AA(3,3)(3,3) 成分以外がわかっているとき、(3,3)(3,3) 成分をうまく決めることで階数を 2 以下にできるかという問題を考えます。方程式は 321=83^2-1=8 本得られますが、対称性を考慮すると実質 5 本です。

(2p1T00p2Tp1T0p3T0p1T02p2T00p3Tp2T)(p˙1p˙2p˙3)=0 \begin{pmatrix} 2p_1^T & 0 & 0 \\ p_2^T & p_1^T & 0 \\ p_3^T & 0 & p_1^T \\ 0 & 2p_2^T & 0 \\ 0 & p_3^T & p_2^T \end{pmatrix} \begin{pmatrix} \dot{p}_1 \\ \dot{p}_2 \\ \dot{p}_3 \end{pmatrix}=0

となります。pp を一般的にとれば係数行列は階数 5 となります。実際、補完は一意的です。

(1,3),(3,1)(1,3),(3,1) 成分以外がわかっている場合も階数 5 です。この場合補完方法は 2 通りありますが、局所的には一意的です。

一方、(2,2),(3,3)(2,2),(3,3) 成分以外がわかっている場合、階数は 4 です。補完も一意的ではありません。

半正定値の場合を書きましたが、一般の場合には Kalai, Nevo, Novik の二部剛性というものが関係するそうです。

マトロイドのはなし
#

係数行列が出てきましたが、行についての独立性を考えるとマトロイドが得られます。剛性から得られるマトロイドと、対称行列補完から得られるマトロイドは同値だそうです。

おわりに
#

9 月はマトロイド強化月間にしていたのでマトロイドの記事を書こうとしましたが、他の記事の締切と重なってしまいあまり勉強が進みませんでした。

書けなかった内容がたくさんあるので、ぜひ参考文献を眺めてみてください。

今後も月刊組合せ論 Natori では組合せ論の面白いトピックを取り上げる予定なので、応援よろしくお願いします!

参考文献
#

  • Joshua Brakensiek, Manik Dhar, Jiyang Gao, Sivakanth Gopi, Matt Larson. Rigidity matroids and linear algebraic matroids with applications to matrix completion and tensor codes. arXiv:2405.00778.
  • James Cruickshank, Bill Jackson, Tibor Jordán, Shin-ichi Tanigawa. Rigidity of Graphs and Frameworks A Matroid Theoretic Approach. arXiv:2508.11636.
  • S. Dzhenzher, T. Garaev, O. Nikitenko, A. Petukhov, A. Skopenkov, A. Voropaev. Low rank matrix completion and realization of graphs results and problems. arXiv:2501.13935.
  • Singer, Amit; Cucuringu, Mihai. Uniqueness of low-rank matrix completion by rigidity theory. SIAM J. Matrix Anal. Appl. 31, No. 4, 1621-1641 (2010).
  • Marie Thibeau, Matrix Completion and Graph Rigidity: Exploiting Surprising Similarities, Master Thesis.