「分類するな、幻覚させろ!」LLMで商品分類を安く済ませる逆転の発想

Don't classify, hallucinate!

「分類するな、幻覚させろ!」LLMで商品分類を安く済ませる逆転の発想

LLMで商品や検索クエリを分類するのは今や当たり前だが、許可された分類語彙に出力を制限するのは難しい。WayfairのWANDSデータセットには数百ものカテゴリがあり、PydanticのLiteralで全候補を列挙する方法は非効率で、APIの上限にもぶつかる。そこで、安価なLLMに「ありそうで存在しない」偽の分類を生成させ、それを実在の分類の埋め込みベクトルと照合して最も近いものを選ぶという手法を紹介。この方法なら、スキーマを毎回送る必要がなく、小さなモデルでも大規模に使える。

さあ、LLMにでっち上げをさせよう。
  1. Sharlin

    プログラミングが、「まずコンピュータに完全に間違った答えを出させて、それから間違った答えを正しい答えにマッピングする関数を見つけるだけでいい!」というアドバイスが存在する段階に来たなんて、信じられない。

  2. kgeist

    よくあるケースとして、そもそも分類が存在しない場合があります。例えば、ユーザーが最も多く不満に思っていることを見つける必要があるとします。私はすべてのレコードの埋め込みを取得し、その埋め込みを意味的にグループにクラスタリングし、各クラスタのランダムサンプルをLLMに渡して、そのグループの分類を作成させます。

    この方法はしきい値に敏感です(埋め込み間の最大距離がいくつまでなら同じ意味グループと見なすか)。そのため、エージェントがさまざまなしきい値とクラスタリングアルゴリズムを試して結果に満足するまで繰り返すエージェントループで実行し、さらにグループの重複を排除することもあります。

    すべて自前のハードウェアで実行するので、一晩放置してもコストはかかりません。さらに、企業データがオフィスの外に出ないという利点もあります。手作業で作成した固定の分類セットでは、存在しうるすべての分類を捉えきれない可能性があると思います。ただし、人間によるレビューは必要です。

  3. pu_pe

    素晴らしいトリックですね。ただし、クエリを埋め込んでカテゴリの埋め込みと比較し、プロンプトに近いカテゴリだけを小さなモデルに渡すことはできないのでしょうか?

  4. Majromax

    > ノートブックでは、すべての実際のWayfair分類のMiniLM埋め込みを計算しました。LLMから得た偽の仮説的な埋め込みを計算し、その偽の埋め込みを実際の埋め込みとドット積して最も類似したものを見つけます。結果は[正解]です。

    これは、幻覚による分類が、クエリ自体よりも実際のスキーマに対して選択的であるという前提を問うものではないでしょうか? <検索クエリの埋め込み、スキーマの埋め込み> のドット積は何を与えたでしょうか?

    それが曖昧すぎるとしても、小さなLLMは優れたリランカーになり得ます。上位N個の一致する真のカテゴリを返し、文脈に応じた順序付けを依頼してください。

  5. eka1

    A/Bテストを実行して検証しましたか?主な疑問は、既知のカテゴリに常に正しく分類できたのか、それともLLMの幻覚と埋め込み検索によるエラーが複合したのか、ということです。

  6. cimi_

    10年前に似たようなことをしましたが、LLMの代わりにword2vecを使って製品説明の埋め込みを計算し、既存のカテゴリにマッピングしました。LLMのアプローチはおそらくもっと優れているでしょうが、コストの違いが気になります。

  7. arjie

    入力のプロンプト拡張を追加のカテゴリに対して行うのは、埋め込みがうまく機能していない場合に意味があります。しかし、それだけならなぜLLMを使うのでしょうか?元のステップを最初に示して、それが有用であることを示すべきだったと思います。

  8. ed

    新しい埋め込みモデルはクエリをサポートしているので、最近傍を見つける前にドキュメントを幻覚させる必要はありません。このアプローチとどう比較するのか興味があります。LLMを完全にスキップできるので。

この日のほかの記事

2026-08-14