LLMの力で激変 おすすめも検索もマジで進化するらしい
引用元:https://news.ycombinator.com/item?id=43450732
Spotifyの探索的なクエリが9%増加、ユーザーあたりの最大クエリ長が30%増加、平均クエリ長が10%増加ってことは、クエリのレコメンド改善でユーザーがより複雑な意図を表現できるようになったってことらしいけど、本当に改善なのか疑問だなー。ユーザーがより多く検索して、より長いクエリを入力しないと欲しいものにたどり着けないってことじゃん?
有益な結論を出すには、クエリの長さを成功率で正規化する必要があるよね。フォローアップクエリの発生率が、その良い指標になるかも。
>探索的なクエリが9%増加
ユーザーは求めてるものを見つけるのに苦労してるか、あるいは検索しなくてもいいくらい良いものを見つけてるかのどっちかだよね。
>最大クエリ長が30%増加、平均クエリ長が10%増加
ユーザーは探してるものを見つけるためにもっと複雑なクエリを実行する必要があるんだね。
パフォーマンスとかサーバー負荷、収益に関する指標を追跡するのはわかるけど、どうしてこんな結論に至ったのか理解できないなー。昇進のためのOKR達成が目的なんじゃないの?ユーザー調査とか、集中した考え方、良いセンスに勝るものはないよ。
今のアプリがイマイチなのは、ユーザーの行動指標じゃ捉えられない問題点が多いからだと思う。
Organic MapsのAlexが教えてくれたのは、ユーザーの声に耳を傾けることの大切さ。UXの改善は、メールのフィードバックから生まれたものが多いんだって。
マジそれな。Apple Musicに乗り換えたんだけど、Apple Musicは公式プレイリストを推してる感じがすごいんだよね。検索すると自分のじゃなくてApple Musicのプレイリストが上位に出てくるし。自分のプレイリストを探すためにライブラリに行かないといけないとかありえない。
これは難しい問題だよね。俺たちも同じような問題に直面したことあるわ。文献には「abandonment(諦め)」って言葉があって、これは「探してるものが見つからなくて諦めた」って意味。
あと「positive abandonment(ポジティブな諦め)」ってのもあって、これは「SERPで欲しいものが見つかったからクリックしなかった」って意味。
大量のリクエストは、リクエストを洗練する自然なプロセスかもしれないし、モデルがクエリを理解できなくてイライラして何度もクエリを送ってるだけかもしれない。特に厄介なのは、しばらくイライラしながらクエリを送った後で、簡単なタスクに切り替えて成功した場合。そのインタラクション全体をポジティブとカウントしちゃう可能性があるからね。
みんなLLM/GPTに慣れてきてるから、質問が長くなるのは当然だと思う。それに、やっぱりみんな求めてるものを見つけられてないんじゃないかな。
検索PMがいるとこうなるよね。
これは多変量/二変量モデルで評価するべきだね。介入の前後で、成功したクエリの長さがどう変わったのかを分析するとか。
検索が増える=検索が良い、ってシナリオも考えられるよね。例えばSpotifyで、めっちゃ良い検索ツールがあって、ユーザーがマジで好きな新しい音楽を見つけてくれるとするじゃん?そしたらユーザーはもっと検索すると思うんだ。良い結果が出るからね。でも逆もあって、クソみたいな検索ツールだと、ユーザーは探してるものを見つけられなかったり、気に入らない音楽ばっかり出てきたりする。そうなると、ユーザーはもっと検索するハメになるよね。結局、ユーザーが検索する理由が大事なんだよね。Spotifyなら、再生あたりの検索回数とか、検索結果からの再生率とか、再生後の評価とかを調べればいいんじゃない?検索回数とユーザーの満足度を結びつける方法が必要だよね。検索ボリュームだけ見るのはマジで良くないと思う。
検索結果から曲を保存したり、高評価するってことは、ユーザーがその曲を必死に保存しようとしてるからかもよ?もう二度と検索で見つけられないと思ってるんじゃない?プロダクトを自分で使って、真剣に向き合うしかないんだよ。データだけじゃ答えは出ないってこと。
文脈的にユニークな検索と、似たような検索があるよね。
例えば、Nin、NIN、nine inch nails、Trent Reznor と
Nin、pantera、nail bomb、muse みたいな。
「〇〇距離アルゴリズム」とかで簡単に区別できるんじゃない?
この違いを理解するのが、良いプロダクトマネージャーの仕事だと思うんだよね。ただ使える指標を最適化するだけじゃなくて、その裏にある意味を理解して、正しい方向に進むように促すのが大事。
結局、検索ボリュームだけじゃ何もわからないってことじゃない?
そうそう、その意見に賛成して、さらに詳しく説明したんだ。
記事をテキスト読み上げで聴いてみたんだけど、専門用語が多すぎない?著者が賢く見せようとしてるだけで、読者に情報が伝わってない気がした。論文でよくあるパターンだよね。MLの専門家じゃないから、対象読者じゃないのかもしれないけど。他の人もそう感じたか気になるな。ネガティブな意見だったらごめんね。
研究者が新しいプロジェクトを始める前に読むサーベイ論文みたいだね。(もしかして研究者が書いた?)私はこの分野の研究者じゃないけど、他の分野ではちょっとかじったことがあるから、まあまあ理解できる。専門用語をどれだけ使うかは、書き手の選択だよね。どんな風にすればもっと情報が伝わるのか気になるな。みんなはどうやって専門用語の壁を乗り越えてるんだろう?
私だけかもしれないけど、研究者はわざと理解を妨げるような専門用語を使って、自分たちの領域を守ろうとしてるんじゃないかって思うことがあるんだよね。私の読解力が低いってわけじゃないと思うんだけど!一番理解しやすいのは、コードを見たり、自分で書いたりすることなんだけど、コード例がないのが問題ってわけじゃないんだよね。なんか、ポインタが多いというか…。その分野に長くいると、特定の用語を聞いただけで、対応するアルゴリズムやコードブロックが思い浮かぶのかもしれないね。
フィードバックありがとね!専門用語が多くて分かりにくかったみたいでごめんねー。対象読者はチームの仲間とか実務者だったから、専門用語の知識がある前提で、基礎を省いて簡潔に書いたんだ。
この分野で働いてるけど、専門用語が多いのは確かにそうだけど、普通のことだよ。みんなそういう言い方してるし。全部説明してたら教科書みたいになっちゃうからね。
とは言え、内容が理解しにくいところもあるし、論文を直接読んだ方が分かりやすいかも。でも、いろんな事例をまとめてるのはすごいと思うよ。
多くのチームは、query側とindex側のLLMを使って、これまで何か月もかかってた作業を検索で実現できるよ。小さい自社モデルと簡単なプロンプトでも、検索文字列を構造化されたqueryに変換してキャッシュできるし、ドキュメントを分類することもできる。全部、昔ながらのlexical検索エンジンとかvector検索エンジンで動くんだ。これやってないなら損だよ。 もっと詳しく教えてもらえませんか?もしくは、参考になる情報源を教えてください。 もっと詳しく知りたいなら、Doc2Queryを調べてみるといいかも。https://arxiv.org/abs/1904.08375 Eugeneがこんなに早く研究成果を公開するのはすごいね。昔なら、博士課程の学生が文献調査をして、12か月後に有料のジャーナルに掲載されるのが普通だったのに。Eugeneがすごいだけなのか、それとも時代の流れなのかな? >時代の流れ ある程度はそうかもね。でも、質の高い情報を見つけるのは難しいんだよね。Eugeneのものは質が高い。例えば、俺は分散システム、データベース、MLOpsの分野にいるんだけど、分散システムならMurat Demirbas(Uni Buffalo)、データベースならAndy Pavlo(CMU)、MLOpsならStanford (Matei)が一番良いまとめをしてると思う。 この記事で明示的に言及されてないもう一つの方向性として、SASRecとかBert4Recのバリエーションがあるよ。これらはID-Tokenで学習されてるんだけど、LLMみたいにスケーリングするんだ。例えばMetaのアプローチ(https://arxiv.org/abs/2402.17152、解説記事: https://www.shaped.ai/blog/is-this-the-chatgpt-moment-for-re…) @7d7n Eugeneとか、推薦システムに詳しい人に質問です。推薦システム初心者で、協調フィルタリングのバリエーションを使ってるんだけど、LLMを使わない場合、何から調べ始めるのがおすすめ?GPUを使わずに、できるだけ安価で、システムのパフォーマンスを最大化したい! おすすめするものの種類によると思うよ。もしアイテムを正確かつ具体的にテキストで分類できるなら、昔ながらのembeddingsとvector search/ANNの性能はマジで最強。GPUいらないembeddingsもたくさんあるし(最近のLLMベースのはGPU必須だけど)。Word2Vec、GloVe、FastTextとかは高性能でGPUいらない。高性能なvector-searchライブラリも昔からあるし、vector-dbみたいにGPUに頼る必要もない。ただ、メモリめっちゃ食うから注意ね。性能を追求すると、どうしても文脈が抜け落ちる部分も出てくるのは仕方ない。 あー、これでSpotifyの体験がどんどん悪くなってる理由がわかったわ。 マジで逆の体験してる。最近、自分のプレイリストが終わった後におすすめされる曲が全部ドツボで、プレイリストに入れちゃうんだよね。 俺の音楽の趣味が広すぎるせいで、Spotifyの「daily」リストをいい感じに保ちたいなら、聴く音楽のバリエーションを抑えないといけないんだよね。じゃないと、ごちゃ混ぜになりすぎて楽しめなくなる。だから、他の人のオススメとか音楽レビューサイトで新しい音楽とかバンドを見つけてる。SpotifyのAI DJも何回か試したけど、イマイチだった。新しい方向に持ってこうとするんだけど、全然ピンとこないんだよね。 プレイリストラジオを手動で作れた時が良かったなー。あれ、もうなくなっちゃったんだよね。 デスクトップ版なら、まだプレイリストから「似たプレイリスト」を作れるはず。結構使えるよ。 遅れてごめん!いや、それもなくなってるっぽい。もし見落としてたら教えて。 なんでPCとかスマホにLLMベースの検索ツールがないんだろ?特にスマホはデータ全部クラウドにあるんだから、広告とかFBIのために使うだけじゃなくて、ユーザーのためにも何かしてくれても良くない? これはApple Intelligenceが実現するはずだったことだけど、まだ実現してないね。 >Why we don’t have an LLM based search tool for our pc / smartphones? ChatGPTとかClaudeって、音楽とか買い物のアドバイスがマジで上手いんだよね。自分の好みをしばらく話して、おすすめを聞いてみて。昔のレコメンドシステムより、ユーザーが欲しいものを引き出すのがめっちゃ上手いと思う。 マジそれ!Claudeのおかげで、数週間前に彼女の誕生日プレゼントを何にするか決められたもん。自分じゃ思いつかないような最高のギフトを提案してくれて、彼女もめっちゃ喜んでくれた。 これ、すぐマネタイズされると思うわ。 買い物のアドバイスなら、Perplexityが一番良い感じ。 PCにも来るらしいよ:https://www.theregister.com/2025/01/20/microsoft_unveils_win… Pixelにはすでに、スクリーンショットをインデックス化して検索可能にするアプリがあるよね。たぶん、コンテキストウィンドウのサイズがまだ小さすぎて、すべてのデータを入れられないんだと思う。 >ファイルエクスプローラーで検索すればいいじゃん たぶん、あなたの脳みそと私の脳みそは違うんだと思う。私だけじゃないと思うけど。 なるほどね。返信ありがとねー。じゃあ、またね! >でもさ、その飴の例って意味なくね?どんな状況で、文脈なしに情報が必要になるんだ? なるほどね。なんでか分かんないけど、AIアシスタントがデバイスに特化してるって思ってたんだよね。オフラインのデータとかファイルに基づいてるって。クラウドの話だってのにね。ま、いっか。またねー。 例えば、人気レストランのメニューを見てて、選択肢が多すぎて困ったとするじゃん?そしたら、パソコンに「なんかおすすめない?味が濃くて、辛くて、しょっぱくて、タンパク質と食物繊維が入ってて、消化しやすくて、栄養満点で、油っぽくなくて、冷蔵庫にあるものに合うやつ」って言うみたいな。そんな感じの機能が欲しいんだよね。 ファイルエクスプローラーって、ファイルの中身を読んで文脈を理解するわけじゃないじゃん?テキストファイルでも、探したい文字列を正確に覚えてないとダメだし。LLMが全部のコンテンツ(テキストと画像)を理解して、パソコンのデータを知識ベースとして活用してくれたら嬉しいんだけどな。「あのXサービスのデザインファイルなんだっけ?」みたいな質問に答えられるように。なんで手動で整理しなきゃいけないんだろ? 写真アプリは今、結構いい感じだよ。Apple/Google Photosで写真やビデオの内容について質問すると、結構使える結果が出てくる。 面白いことに、俺が一番検索するのはファイルの中にあるものじゃないんだよね。カレンダー、写真の内容/場所、メール、ChatGPTの履歴、Spotifyのライブラリ、iMessage/whatsappの履歴、連絡先、メモ、Amazonの注文履歴とか。 ‘Recoll’を使って、検索文字列を使いこなせるようになろうぜ。Windowsユーザーなら、古いRecollのリリースはスタンドアロンで、必要なものが全部入ってるから、PDFとかODT/DOCXとかも検索できる。 どの論文も大学の研究室から出てきてないみたいだけど、これって結構おもしろくない? レコメンドシステムが実際に使えるかどうかチェックするのって、インターネットメディアのプラットフォーム全部持ってないとマジ無理ゲーじゃん?良くても、FAANGみたいな企業からおこぼれもらうくらい(おもちゃみたいなデータセットとかモデル)。それに、0.2%の改善がマジで意味あるのか検証するために、FAANG並みの計算資源ぶっこまないと開発も進まないし。あと、レコメンドってすぐ古くなるから、毎週/毎日大量のトレーニングしてもちゃんと動くか確認しないといけないしね。 >0.2%の改善がマジで意味あるのか検証するために、FAANG並みの計算資源ぶっこまないと開発も進まないしね 俺の顧客がこういうのやってるんだけど、ほとんどの学者がもっと難しくて重要な問題に取り組むのは100%賛成だわ。こういう論文って、主に商用目的の問題に対して、高いベースラインからちょっとずつ改善してるだけだし。それに、自分のプロダクトで起こる現象を最適化することに集中してるから、他のプロダクトでは起こらないかもしれないし。例えば、Netflixのスライディングウィンドウの結果を見るのは面白いけど、学生にはもっと大きなアイデア、例えばmambaとかを研究してほしいし、スライディングウィンドウは意図的に狭い範囲で調整を試す修士学生に任せればいいと思う。 俺の顧客がこういうのやってるんだけど、ほとんどの学者がもっと難しくて重要な問題に取り組むのは100%賛成だわ。こういう論文って、主に商用目的の問題に対して、高いベースラインからちょっとずつ改善してるだけだし。それに、自分のプロダクトで起こる現象を最適化することに集中してるから、他のプロダクトでは起こらないかもしれないし。例えば、Netflixのスライディングウィンドウの結果を見るのは面白いけど、学生にはもっと大きなアイデア、例えばmambaとかを研究してほしいし、スライディングウィンドウは意図的に狭い範囲で調整を試す修士学生に任せればいいと思う。そうなると、トップのPhD卒業生は産業研究所で勝つだろうね。とは言え、recsysはショッピングカートとかソーシャルフィード以外にも応用できる一般的な定式化だし、もっと大きなアイデアも出てくる。GNN for recsysは数年前大きな賭けだったし、LLMもそう。でも、そういう大きな変化は産業研究所の論文だって言うのは気になるね。たぶん、recsysは博士号を持ってる人をたくさん雇う分野の一つで、収益向上に不可欠だから、学界は定期的に参加してるけど、産業界が過剰に代表されてるってことかも。 レコメンドシステムの素晴らしい概要みたいだね。主なポイントはこんな感じかな:1.レイテンシが大きな問題。2.ファインチューニングは大きな改善につながるし、レイテンシも減らせると思う。読み間違えてなければ。3.プロンプティングとかファインチューニングを使うべき閾値みたいな問題がある。 Elicitに、研究課題を与えると、LLMに質問を改善させる機能があるみたい。すごいね。例えば、「LLMは検索エンジンにどんな影響を与えるか?」って聞いたら、「Specificity」ってキーワードで、「大規模言語モデル(LLM)は、従来の検索アルゴリズムと比較して、検索エンジンの結果の精度と関連性にどのような影響を与えるか?」って質問を提案してきた。実装も簡単だし、マジでクール。 Perplexity Proが、いくつかのポータブルなカーバッテリー充電器を提案してきて、オンラインレビューを検索したら、レビューサイト(5つくらい)で評価の高い充電器が、Perplexityのオススメリストの最初の2つだった。つまり、AIは焦点を絞った検索をするための役に立つガイドだったってこと。 ローカルLLMの時代には、スケーラブルとか効率的とか気にしない、個人的なレコメンドシステムが見たい。自分が探してるものを詳細に記述したプロンプトを書いて、GPUに1週間実行させて、条件に合うものを見つけるのはダメなのかな? ドキュメント全部にローカルLLMかけて、「これってクエリに関係ある?」って聞けばよくね?でもさ、一週間も待てないっしょ(それに検索対象のドキュメント全部抱えるとかペタバイト級になるし)。 LLMにキーワード(またはクエリ)を生成させて、昔ながらの手法でドキュメントの候補を見つけて、別のLLMでフィルタリングするのが良くね? それってembeddingsより良いの?embeddingsでキーワードの候補絞って、embeddingsのメリット(例えばあらゆる言語に対応できるとか)を捨てて、昔ながらのインデックス使って、またembeddings空間に戻るってこと? うん、昔ながらの検索部分もembeddingsでできるよね。 ああ、「昔ながらの検索」って古典的なテキストインデックスとBoolean検索のことだと思ってたわ。embeddingsとコサイン類似度使うなら、それは昔ながらじゃないと思うけど。まあ、言葉の綾だね。 アメリカ議会図書館の蔵書全部でも10TBくらいだよ。テキストからリッチメディアに移行しない限り、ペタバイトなんて必要ないって。 Common Crawlはペタバイト級だよ。Anna’s Archiveは約1ペタバイトだけど、画像付きのPDFも含まれてる。 最大規模のモデルでも、長文になるほど一貫性がすぐ落ちるってことは指摘しておくべき。ローカルのML環境だと、長期的な一貫性が大幅に改善されない限り、メモリ容量が少ないモデルは、検索時間が長くなると正しいことを言わなくなるって制約と両立できないかも。 なんで一週間もかかるの? だって、考えるのって時間かかるじゃん。 まさにそれ!たまにマジで欲しいやつ(でも1週間はちょっと長いかな)。今のタスク見てて、ドキュメントとかメールとか必要な時に、システムに30分くらいで用意してって言えたら最高じゃん?でも誰かが言ってたように、Apple Intelligenceがそれをやってくれるのかも。 >maybe a little long これって俺が見た夢みたい。 もしくは、ウェブを監視してて、俺の興味に合うものが出てきたら教えてくれるとか—もっと洗練されたGoogleアラートみたいなの。マジで欲しい。 なんで出来ないと思うの? >Just run the biggest model you can find out of swap Eugeneからのまたすごい投稿だ。もっとコメントを表示(1)
最新ではないけど、今のLLMなら簡単にできるし、lexical検索エンジンをかなり改善できるよ。
それって、ここ20年以上続いてることじゃない?(arxivとかブログとか)
俺なりの意見だけど。もっと詳しい人がいたら教えてほしい。
市場的には、Google、Microsoft、Appleがまだ試行錯誤してるからだと思う。ユーザーが多いのはこの3社だからね。それに、株価を上げたい投資家がいるから、慎重にならざるを得ないんだと思う。ブランドを守るために、OSをあんまり「開放」したくないんじゃないかな。
技術的には、LLMを使うなら、99.999%の信頼性を確保しないといけないから時間がかかる。電力消費の問題もあるしね。
だから、Googleみたいに早くリリースして改善していくか、MicrosoftみたいにOpen AIとかに投資して提携するか。Appleはその中間かな。責任者が解任されたみたいだから、どうなるか分からないけど。
俺の意見はこんな感じ。もっとコメントを表示(2)
Microsoftのクラウドサービスにもね:https://www.theverge.com/2024/10/8/24265312/microsoft-onedri…
”それは特定の文字列を覚えてる場合にしか使えないよね。LLM(とか他の言語モデル)なら、要約したり推測したりできる。例えば「お菓子を買った取引が書いてあるファイルを探して」って聞いたら、ファイルに「transaction」とか「buying」とか「candy」って言葉がなくても、「17ドルで巨大なgobstoppersを買った」って書いてあるだけで見つけられる可能性があるんだよ。”
>みんなちゃんとファイルを整理してる
”マジでびっくりすると思うけど…。
>「トニーおじさんがフロリダにいる写真を見せて」で、ファイルを探す時間が10秒短縮できる
私は時間の記憶がないし、頭の中でイメージできない。いつ写真撮ったかなんて考えても無駄。数年ズレてるかも。統一された自然言語検索エンジンがあったら最高だね。晴れた日にアイスクリームを食べたことくらいしか覚えてなくても、それで検索したい。
昔のメールの特定の文字列を探してるんだよね。例えば、子供のチャイルドシートをいつ、どこで、いくらで買ったか知りたかった。時期とレシートってことは覚えてたけど、キーワードが分からなくて。Geminiに聞いたら、child seatって書いてなくても、意味的に探してくれたんだよね。
FAANGがトップx,000クエリの結果セットの変更を評価するために、毎日どれだけの人間を雇ってるか忘れちゃだめだよ。もっとコメントを表示(3)
まあ、まともなやり方はembedding searchで、事前計算すれば速いけど、結局ストレージ必要じゃん。
ドキュメントのembeddings計算して保存、クエリのembeddings計算、類似ドキュメント検索で終わりじゃん。
リアルタイムで必要なデータが継続的に入ってくるのを監視したいから?
>多くの人が何年も解決してない問題を抱えてるんだから、「たった1週間」なら「どこにサインすればいいの?」って感じ。
マジでタスクによるよね。
https://medium.com/luminasticity/the-county-map-of-the-world…
>そのアイデアは、すぐに終わらせるつもりのないクエリをこの中で実行させて、何時間も何日も実行させることができて、そうやって高度な研究をすることがどれほど自由になるかということだった。
見つけられる一番デカいモデルをswapで動かして、終わるまでひたすら待てばいいじゃん。
小さいモデルに注目が集まるのは当然。だって、ほとんどの人が自分の適当な作業に何週間も待ちたくないし、巨大なモデルを動かすサーバーGPUクラスターなんて持ってないもん。
これやるとSSDが死ぬ。