Open5
Firebase のベクトル検索について調べる
FieldValue.vector
というのが増えたらしい
embedding_field: FieldValue.vector(convertToVector(opponentPartyIds)),
今回関係ないけど、geopointとかreference とかあるの初めて知った
コサイン類似度とか内積とか前に勉強したけど忘れている…
EUCLIDEAN、COSINE、DOT_PRODUCT
- ユークリッド距離
- それぞれの次元で距離をとる
- 内積
- 実質的に、「共通している要素を数える」
- [1,1,1] [0,1,0] なら1。
- 単に1の数が多いだけでも数字が大きくなってしまう。
- コサイン類似度
- 内積をノルムで割る。
- ノルムで割るので、類似度を出せる。
ベクトル検索ができるのはわかったけど、どうベクトル化するかのほうが問題。
そこを考えるのが難しい。