Open5

Firebase のベクトル検索について調べる

かがんかがん

FieldValue.vector というのが増えたらしい

embedding_field: FieldValue.vector(convertToVector(opponentPartyIds)),
かがんかがん

今回関係ないけど、geopointとかreference とかあるの初めて知った

かがんかがん

コサイン類似度とか内積とか前に勉強したけど忘れている…

EUCLIDEAN、COSINE、DOT_PRODUCT

  • ユークリッド距離
    • それぞれの次元で距離をとる
  • 内積
    • 実質的に、「共通している要素を数える」
    • [1,1,1] [0,1,0] なら1。
    • 単に1の数が多いだけでも数字が大きくなってしまう。
  • コサイン類似度
    • 内積をノルムで割る。
    • ノルムで割るので、類似度を出せる。
かがんかがん

ベクトル検索ができるのはわかったけど、どうベクトル化するかのほうが問題。
そこを考えるのが難しい。