ソフトなディクショナリ

Definition:Soft Dictionary

ソフトなディクショナリとは、クエリ(Query)とすべてのキー(Key)の類似度(適合度)を連続値(確率・重み)として計算し、それらを係数としてすべてのバリュー(Value)の線形結合(加重平均)を返す写像関数のことをいう。

一般的なプログラミングの辞書(Hard Dictionary)が「ハッシュ関数による完全一致のルックアップ」であるのに対し、ソフトなディクショナリは「ベクトル空間上での連続的なルックアップ」として定式化される。

現ミスな定式化

入力として、検索条件であるクエリベクトル $\mathbf{q} \in \mathbb{R}^{d_k}$ と、辞書に格納されている $m$ 個のキーベクトル $\mathbf{k}_i \in \mathbb{R}^{d_k}$ 、およびそれに対応するバリューベクトル $\mathbf{v}_i \in \mathbb{R}^{d_v}$ (ただし $i = 1, 2, \dots, m$)が存在するとする。

このとき、ソフトなディクショナリ関数 $f(\mathbf{q})$ は、次のように定義される。\[f(\mathbf{q})=\sum _{i=1}^{m}w_{i}\mathbf{v}_{i}\]

ここで、各バリューに掛け合わせる重み(ウエイト) $w_{i}$ は、クエリ $\mathbf{q}$ とキー $\mathbf{k}_{i}$ の類似度(内積など)をソフトマックス関数によって正規化した確率分布である。\[w_{i}=\text{Softmax}(\alpha (\mathbf{q},\mathbf{k}_{i}))=\frac{\exp (\alpha (\mathbf{q},\mathbf{k}_{i}))}{\sum _{j=1}^{m}\exp (\alpha (\mathbf{q},\mathbf{k}_{j}))}\]

ここで、$\alpha(\mathbf{q}, \mathbf{k}_i)$ は類似度スコア関数であり、一般にはドットプロダクト(内積) $\mathbf{q} \cdot \mathbf{k}_i$ や、Transformerで使われるスケールド・ドットプロダクト $\frac{\mathbf{q}\cdot \mathbf{k}_{i}}{\sqrt{d_{k}}}$ が使用される。

Mathematics is the language with which God has written the universe.





















データ基盤におけるデカップリング コンテキスト長 FreeToken LLM並列化方式 通信機器の歴史 CPUの歴史