RDBの行をベクトル化し、逐次的投入にも対応した仕組み。
以下の論文で提案。
-[[Dynamic Database Embeddings with FoRWaRD&BR;11 Mar 2021 · Jan Toenshoff, Neta Friedman, Martin Grohe, Benny Kimelfeld:https://cs.paperswithcode.com/paper/dynamic-database-embeddings-with-forward]]
#CONTENTS
**対象データベースの定義 [#q02d78ff]
|&mathjax{D};|データベース|
|&mathjax{\sigma};|データベーススキーマ(定義全体)|
|&mathjax{R,S};|個々のリレーション名|
|&mathjax{R(A_1 \dots A_k)};|リレーションスキーマの集合|
|&mathjax{A_i};|&mathjax{\sigma};の要素名 (attribute name)|
|&mathjax{\mathbf{A},\mathbf{B},\mathbf{C}};|要素名の集合|
|~|&mathjax{\mathbf{B}=B_1 \dots B_\ell};|
|&mathjax{R.A};|&mathjax{\sigma};の要素(attribute)|
|&mathjax{\mathrm{dom}(R.A)};|&mathjax{R.A};の値域(domain)|
|&mathjax{\mathrm{key}(R)};|&mathjax{R};のキー|
|~|&mathjax{\mathrm{key}(R) \subseteq R(A_1 \dots A_k)};|
|~|空集合であることが可能|
----
:外部キー制約|&mathjax{R[\mathbf{B}] \subseteq S[\mathbf{C}]};
&mathjax{\mathrm{key}(S) = S[\mathbf{C}]};
----
|&mathjax{f=R(a_1 \dots a_k)};|行(事実の集合)|
|~|&mathjax{a_i \in \mathrm{dom}(R.A_i)};|
|~|空値 (null value) の場合、&mathjax{\bot};|
|&mathjax{f[A_i]};|&mathjax{a_i};の値|
|&mathjax{f[\mathbf{B}]};|&mathjax{f[\mathbf{B}]=f[B_1],\dots,f[B_\ell]};|
**問題定義 [#f01f83f1]
:静的DB埋め込み (Static database embedding)|スキーマ&mathjax{\sigma};を持つデータベース&mathjax{D};に対し、
埋め込み関数&mathjax{\gamma:D \to \mathbb{R}^k};を作る。
ただし、ハイパーパラメータ&mathjax{k>0};
:動的DB埋め込み (Dynamic database embedding)|&mathjax{\gamma};を新たな事実&mathjax{f \notin D};に拡張する。
&mathjax{\gamma^\prime:D \cup \{f\} \to \mathbb{R}^k};
ただし、元の値は変更しない。
つまり、&mathjax{f^\prime \in D};に対し&mathjax{\gamma^\prime(f^\prime)=\gamma(f^\prime)};