ruto on Nostr: ...
ツリーデータを高次元ベクトルに埋め込んでtransformerで扱う方法
https://arxiv.org/abs/2311.09387
ノードの値をランダムベクトルで表して、エッジのラベルを直交行列で表す。ツリーを表すには、各ノードについて「ノードへのパス上の各ラベルに対応する直交行列の積とノードの値に対応するベクトルの積」の和を考える。
エンコードされた値vをデコードする際には、ノードの値の候補のうち、vとの内積が1/2以上になるものを根の値とする。子ノードについてはラベルに対応する直交行列の逆行列をvにかけて、再帰的にアルゴリズムを適用する。
高次元において異なるランダムベクトルの内積はほぼ0であることを利用している。
100通りの値がある長さ10の連結リストを表わす場合、1000次元程度あればほぼ確実に復元できるらしい。
(後半のtransformerのところは読んでない)
https://arxiv.org/abs/2311.09387
ノードの値をランダムベクトルで表して、エッジのラベルを直交行列で表す。ツリーを表すには、各ノードについて「ノードへのパス上の各ラベルに対応する直交行列の積とノードの値に対応するベクトルの積」の和を考える。
エンコードされた値vをデコードする際には、ノードの値の候補のうち、vとの内積が1/2以上になるものを根の値とする。子ノードについてはラベルに対応する直交行列の逆行列をvにかけて、再帰的にアルゴリズムを適用する。
高次元において異なるランダムベクトルの内積はほぼ0であることを利用している。
100通りの値がある長さ10の連結リストを表わす場合、1000次元程度あればほぼ確実に復元できるらしい。
(後半のtransformerのところは読んでない)