家族アーカイブに対する顔認識は、この中の顔が形を変えていくことを思い出すまでは、解決済みの問題に思える。生まれたばかりの赤ちゃんと、その子が成長した10歳の姿は、人間の目に違って見えるだけではない。認識モデルが出力する数値ベクトル、顔の特徴ベクトルも、単一の類似度しきい値ではその道のりの両端を押さえられないほど大きくずれる。アーカイブ全体に対して一回のグローバルなクラスタリングを、生まれたばかりの子と10歳の子を同じ人物として捉えられるほど緩いしきい値で実行すると、今度は別人まで捉えてしまうようになる。他人同士を区別できるほど厳しくすると、すべての子どもが、年齢を重ねるたびに複数の「人物」に分裂してしまう。
この記事が扱うのはその問題だ。顔を認識すること自体は、成熟したモデルによってほぼ解決済みである。20年の子ども時代を通じて顔が経験する変化の中でアイデンティティを追跡することは、まったく別の問題で、はるかに書かれることが少ない。
まず時間窓、それから連鎖させる
うまくいったアプローチは、1回のクラスタリングに20年分をカバーさせようとするのをやめて、代わりに、それぞれ半年分だけをカバーする、たくさんの小さくて簡単なクラスタリングを行い、その結果を連鎖させることだった。
ステップ1:半年単位の時間窓の中で、コサイン類似度0.50という厳しいしきい値で、貪欲法によるクラスタリングを行う。半年という窓の中では、年齢による変化は小さい。子どもは6ヶ月でよく調整されたクラスタリングを脅かすほど変わらないので、厳しいしきい値でも安定して機能する。
ステップ2が本当のトリックだ。各半年の時間窓から得られたクラスターを、隣接する最大4つの時間窓にわたって、ずっと緩いコサイン類似度0.42というしきい値で連鎖させ、Union-Findを使って推移的に連結する。理屈はこうだ。10年をまたぐ直接比較を破綻させてしまうほどの年齢による変化も、半年から半年への1回のホップなら十分に埋められる。システムは「新生児から10歳まで」をまたぐ比較を1回で行う必要はなく、それぞれが単体では簡単な短いホップの連鎖で、長い距離を積み重ねる。Union-Findが合っているのは、アイデンティティが推移的だからだ。時間窓Aのクラスターが時間窓Bのクラスターと連結し、Bがさらに時間窓Cと連結するなら、AとCは一度も直接比較されなくても、最終的に同じグループになる。
連鎖を隣接する4つの時間窓(半年という時間窓のサイズを考えると、2年分)に制限しているのは意図的だ。緩い0.42のしきい値を無制限に連鎖させると、誤差が積み重なっていく。2ホップ目で少し甘い統合が、4ホップ目でさらに甘い統合の土台になり、最終的には2人の異なる子どもが同一のアイデンティティを共有することになってしまう。連鎖の範囲を制限することで、各連鎖の最悪ケースの誤差を有限に抑えている。
ゴミクラスターは、クラスターが少ないことよりも悪い
連鎖は候補となる人物クラスターを生成するが、そのすべてが誰かに見せるに値するわけではない。純度ゲートが連鎖の後に実行され、内部的な一貫性が信頼できるほどではないクラスターを捨てる。これはかなり攻撃的だ。元になったアーカイブでは、この処理によって表示対象のクラスター数が545から281まで削られ、生の出力の半分以上が捨てられた。誰かに545人の候補「人物」を見せて、その3分の1が断片や誤った統合であるよりも、もっと少なく、もっとクリーンなものを見せる方がよい。誰もクラスタリングアルゴリズムの後始末をしたいわけではなく、ほとんど正しい短いリストが欲しいのだ。
修正は、再クラスタリングを乗り越えて残らなければならない
クラスタリングはアーカイブが増えたりモデルが改善されたりするたびに再実行されるが、そのたびに、誰かがすでに行った修正を失ってはならない。クラスターの名前変更、同じ人物だった2つの統合、違う人物だったものの分割などだ。だから、すべての修正は、クラスタリング出力そのものとは別の、名前をキーとする永続的な上書きテーブルに書き込まれ、再クラスタリングのたびに再適用される。クラスタリングアルゴリズムは提案する側で、上書きテーブルが最終決定権を持つ。原理は生成コードと同じで、再生成可能な出力に、人間が手で編集した部分を上書きさせてはいけない。
限界:兄弟姉妹
ここが、このシステムが賢く振る舞おうとしない部分だ。このアーカイブでは、兄弟姉妹同士のコサイン類似度はおよそ0.33で、無関係な2人の他人よりは近いが、クラスタリングが使っている0.50や0.42のしきい値よりはずっと低い。もっと積極的なシステムなら統合してしまえるくらい近く、時々間違えるくらい遠い。そのため、僅差の類似度は問いかけの理由として扱われ、こうしたケースは統合の提案として人間の確認を求める形で表示され、自動で統合されることは決してない。誤った自動統合は、2人分の年表を同時に静かに壊してしまう。断られた提案は、何のコストもかからない。