マトリョーシカ表現学習(MRL)が、いかにして多階層の埋め込みを実現するのかをご紹介します。Ultralytics 検索機能とエッジ展開を最適化する方法をご覧ください。
マトリョーシカ表現学習(MRL)は、 人工知能(AI)および 機械学習(ML)における学習手法であり、 ニューラルネットワークに、単一の出力ベクトル内で 多階層の埋め込みを学習させるものです。ロシアの入れ子人形に着想を得たMRLは、重要な意味論的 情報が先頭に配置されるように埋め込みを構成します。 つまり、高次元ベクトル(例えば1024次元)を、その根底にある表現を失うことなく、 より小さな入れ子状のサブセット(512次元、256次元、または64次元など)に切り詰めることが可能です。この 柔軟性により、情報検索タスクに通常伴う計算負荷が大幅に軽減されます。
従来、埋め込みモデルは、固定された出力サイズに対して特定の 損失関数を最適化するように学習されます。システムがメモリを節約するために より小さなベクトルを必要とする場合、まったく新しいモデルを学習させる必要があります。MRLは、学習段階でネストされた損失 関数を適用することでこの問題を解決します。これにより、表現全体とそのネストされた部分集合が同時に最適化されます。OpenAIのような 組織は、最新の埋め込みAPIにMRLを採用しており、 開発者は正確なコサイン類似度スコアを維持したまま、ベクトルの末尾から次元を動的に削除できるようになっています。
MRLは、精度とストレージコスト、および メモリ帯域幅のバランスをとる上で、明確な利点をもたらします。
MRLを適切に活用するには、従来のデータ圧縮技術との違いを理解しておくと役立ちます。
MRL埋め込みの切り詰めは非常に簡単で、複雑な 意味的インデックス付けロジックは一切必要ありません。最も 重要な特徴量は初期の次元で高い重み付けがされているため、配列を単純に切り出すだけで済みます。以下の 例では、基本的な PyTorch tensor を用いて、シミュレートされた YOLO26のマルチモーダル出力を切り詰める方法を示しています。
import torch
# Simulate a full 1024-dimensional MRL embedding returned by a model
full_embedding = torch.rand(1, 1024)
# To deploy on memory-constrained hardware, simply slice the first 256 dimensions
# Because the model was trained with MRL, this subset remains highly accurate
truncated_embedding = full_embedding[:, :256]
print(f"Original size: {full_embedding.shape[1]}, Compressed size: {truncated_embedding.shape[1]}")
未来の機械学習で、新たな一歩を踏み出しましょう。