基本的なテーブルスキーマは、このような何か(私はところでMySQLを使用しています)になります。リレーショナルデータベースはベクトル計算に適していますか?
integer unsigned vector-id
integer unsigned fk-attribute-id
float attribute-value
primary key (vector-id,fk-attribute-id)
ベクトルが同じベクトル-idを持つテーブル内の複数のレコードとして表現されるの
この表にあるすべてのベクトルのドット積(ユークリッド距離も含む)で別のテーブルを作成する必要があります。だから、私はこのようになり、結果表が必要です。
integer unsigned fk-vector-id-a
integer unsigned fk-vector-id-b
float euclidean-distance
...
integer unsigned fk-vector-id-a
integer unsigned fk-vector-id-b
float dot-product
...と、このようなものを私の結果を生成するための最良のクエリ構造は何ですか?
非常に大きなベクトルの場合、リレーショナルデータベースはこの問題を解決する最良のアプローチですか、またはアプリケーション内でベクターを内部化してそこで計算を行うべきですか? MySQL
で
は異なるベクトルが異なる寸法を持つことができますか?同じ次元を持つ2つのベクトルが異なる属性セットを持つことができますか?すなわち、3次元属性{長さ、幅、高さ}を有することができ、別のものは{重量、年齢、色} –
を有することができるのは明らかにドット製品を行うために2つのベクトルが同じN空間すなわち、次元は同じでなければならない。 –
はい、ベクトルは異なる次元にすることができますが、属性の重複だけが内積に含まれます。 –