Newer
Older
TelosDB / journals / 20260220-0001-LSA課題分析とANNライブラリ検討.md

20260220-0001-LSA課題分析とANNライブラリ検討

作業実施の理由

現状の LSA (Latent Semantic Analysis) 検索において、新規単語が無視される問題や、検索精度の不安定さを解消するため。また、ユーザーからの「近似近傍検索ライブラリの有無」という問いに対し、最適な技術スタックを再検討するため。

指示(背景、観点、意図)

  • 背景: LSA 実装後、テスト結果において特定の類似度スコアが極端に低くなる、あるいは 0 になる事象が確認された。
  • 観点: LSA の数学的制約(静的語彙)、および Power Method の収束、検索式の一貫性を調査する。
  • 意図: 現状の問題点を明確化し、必要であればよりモダンな ANN (Approximate Nearest Neighbor) ライブラリへの移行パスを提案する。

作業詳細

  1. AIエージェントlsa.rs および mcp.rs を分析し、LSA モデルが「学習時の語彙」に完全に固定されていることを特定した。
  2. AIエージェントは、新規アイテム追加時に未知語がドロップされ、結果として零ベクトルが生成されることで検索にヒットしなくなる「静的語彙の罠」を課題として定義した。
  3. AIエージェントは、sqlite-vec の標準的な L2 距離計算と現状の LSA 圧縮(50次元)の相性を確認し、データ数が少ない場合の不安定さを指摘した。
graph TD
    A[クエリ / 新規文書] --> B{語彙チェック}
    B -- 未知語が含まれる --> C[ベクトルから除外]
    C --> D{全単語が未知?}
    D -- Yes --> E[零ベクトル生成]
    D -- No --> F[既知語のみで射影]
    E --> G[検索結果 0 または 不正確]
    F --> H[意味の欠落]
    H --> G

AI視点での結果

現在の LSA 実装は「完全に閉じたデータセット」に対しては有効だが、動的にアイテムが増え続ける現在の TelosDB の運用には不向きであることが判明した。ユーザーの関心が ANN ライブラリに向いていることから、hnsw-rsUSearch などの「動的な追加」に強い基盤への移行、あるいは事前学習済み Embedding モデルの導入を検討すべき段階にある。