11月5日、Apple Machine Learningが「Faster Retrieval for Better, More Efficient RAG」と題した記事を公開した。RAGや推薦システムの中核をなすMIPS(最大内積探索)を、SupportNet・KeyNetという2種類の小型ニューラルネットワークで高速化する手法が紹介されている。最大の数字は99%リコール到達までの時間を約8倍短縮(1.8ms → 0.23ms)というものだ。いずれも既存のIVFインデックス構造を捨てず、前段・ルーティング層に差し込む形で機能するため、プロダクション環境への導入経路が明確な点も注目に値する。
MIPSの何が問題なのか
RAGシステムでは、ユーザーの質問クエリに最も関連する文書を大規模なベクトルデータベースから探し出す処理が中核となる。この処理がMIPS(Maximum Inner Product Search)だ。データベースが数百万件のベクトルを持ち、次元数が数千に達すると、全件比較は計算コストが爆発するため、現実的ではない。
既存の近似手法では、ベクトル空間をクラスタに分割し、クエリをクラスタの重心(centroid)と比較してルーティングする「IVF(Inverted File Index)」が広く使われている。IVFは全件比較を省略できる一方、重心ベースのルーティングには構造的な欠点がある。クラスタ内に重心から遠く離れたベクトルが存在する場合、そのクラスタはスコアが低くなり、探索対象から外れてしまう。結果として、真の最近傍が見つからない「ミス」が発生する。
加えて、RAGの文脈ではクエリとキーの非対称性も問題だ。クエリは短いユーザーの質問文であるのに対し、キーは長く情報量の多いテキストの断片であり、両者は性質が大きく異なる。既存の手法はこの非対称性を考慮していない。
支持関数(Support Function)という数学的な切り口
Appleの研究者が着目したのは、支持関数(Support Function)という凸解析の概念だ。クエリに対してデータベース内の最大内積を返す関数は、そのキー集合の支持関数と等価であることが知られている。これには2つの重要な性質がある。
- 凸関数であるため、ICNN(Input Convex Neural Network)で近似できる
- 支持関数の勾配がそのまま最適なキーベクトルを返す
ICNNとは、入力に対して出力が凸となるよう重みの符号制約などを課したニューラルネットワークで、Amos et al. (2017)で提案された手法だ。凸性が保証されることで、数学的に「真の最大内積を上界から近似できる」という有用な性質が得られる。日本語では「入力凸ニューラルネットワーク」と呼ばれることもある。
この数学的構造を活かして、彼らはSupportNetとKeyNetという2種類の小型ニューラルネットワークを提案した。
SupportNetとKeyNet:2つのアプローチ
SupportNet:クラスタルーティングを改善する
SupportNetは、各クラスタの支持関数を学習するネットワークだ。重心との距離でなく「このクラスタ内のベクトルが、このクエリに対して最大でどれだけマッチするか」を直接スコア化する。これにより、重心から外れた位置にある重要なキーを見逃すリスクが減る。
Natural Questionsデータセット(約260万件のパッセージ)を使った実験では、小型のSupportNet(データベースサイズの1%)でも、重心ルーティングより約1.9倍高速に95%のルーティングリコールを達成した(1.74ms vs 3.36ms)。大型モデルでは97%のリコールを同じ1.74msで達成している。
また、スキャンするクラスタ数を固定した場合、データベースの5%だけ探索した時点で正しいパーティションを発見できる割合は**90〜93%**(重心ベースラインは87.5%)に達した。
KeyNet:クエリ自体を書き換える
KeyNetは発想が異なる。クエリを入力として受け取り、「そのクエリに最もマッチするキーベクトルはどこにあるか」を直接予測する。この予測値で元のクエリを置き換えてからIVFインデックスに渡すことで、既存のインデックス構造をそのまま流用しつつ検索精度を向上させる。いわば「クエリリライター」として機能する。
実験結果は顕著だ。
- 99%リコール到達までの時間:最大モデル(L)で約8倍高速(0.23ms vs 1.8ms)
- スキャン量が0.001%の時点:KeyNetマッピング後のクエリは89〜97%のリコール(生クエリは86%)
- 99%リコールに必要なスキャン量:約11分の1(0.009% vs 0.10%)
KeyNetはFAISSのIVFインデックスと組み合わせて検証されており、実装上の現実性も高い。
エンジニアにとっての実用的な示唆
この研究の肝は、「クエリ分布を事前に知っている」という現実のプロダクション環境の特性を積極的に活用した点にある。
多くの近似最近傍探索(ANN)研究は、クエリが事前に分からない汎用設定を前提とする。一方、本番システムには既存ユーザーベースがあり、クエリ分布はある程度安定している。SupportNetもKeyNetも、その分布からサンプリングして教師あり学習することで、クエリ非依存の汎用手法よりも有利なトレードオフを引き出す。「本番ログが学習データになる」という発想は、研究的な新規性と同時に、実運用チームにとって馴染みやすい設計思想でもある。この「分布の事前知識を活かす」という方針が、汎用ANNライブラリとの差別化を明確にしている。
SupportNetはIVFのルーティング層を置き換え、KeyNetはIVFの前段に挿入するという形で、既存システムへの統合経路も明示されている。どちらのモデルもデータベースサイズの1〜20%というコンパクトな規模で動作する。
本研究はICML 2026に採択された論文「Amortizing Maximum Inner Product Search with Learned Support Functions」として発表されている。
詳細はFaster Retrieval for Better, More Efficient RAGを参照していただきたい。