- ユーザーが読んだ本を入力すると、推薦モデルが次に読む本を提案するシステム
- 検索結果と推薦には、人気のしきい値以上の書籍のみを含む
- 人気の低い本は、サイトの**別セクション(intersect)**で活用可能
- 3冊以上の本を入力したときに、最も正確な推薦結果を提供
- 大規模なレビュー・データを活用したパーソナライズされた読書推薦技術の実験的実装
書籍推薦機能
- ユーザーがすでに読んだ本を入力すると、モデルベースの推薦結果を提供
- 入力された書籍リストをもとに、次に読むのによさそうな本を提示
- 推薦および検索結果には、一定レベル以上の人気書籍のみを含む
入力と検索方法
- 検索ボックスに2文字以上入力すると結果を表示
- ユーザーが選択した本は**「Selected Books」**領域に表示され、
まだ選択していない場合は「No books selected yet」という文言が表示される
追加機能
- 人気の低い本は**/intersectページ**で別途活用可能
- 3冊以上の本を入力すると推薦精度が向上する
サービス概要
- サイトは**大規模なGoodreadsレビュー・データ(30億件)**を基盤とした推薦モデルを使用
- 目標は、ユーザーの読書履歴に応じてパーソナライズされた書籍推薦体験を提供すること
- 原文には追加の技術的詳細やアルゴリズムの説明はない
1件のコメント
Hacker Newsの意見
「サービス内のコンテンツを修正、複製、配布、派生作品の制作などに利用してはならない」と書かれているので、レビュアーのコンテンツをLLMの学習に使うには明示的な許可が必要な気がする
スクレイピングの合法性は管轄地域によって異なる。米国では HiQ Labs v. LinkedIn の判例のおかげで、公開ウェブページをクロールする行為がCFAA違反ではないと認められている。だから公開データのスクレイピング系スタートアップがたくさん生まれた
サイトに表示される情報はタイトルと著者だけで、これはGoodreadsの所有物ではない。
「派生作品の制作」条項に触れる可能性はあるが、レビューをもとに本を推薦することを侵害と見るのは難しい。
YouTuberが「レビュー50件を読んでおすすめする本」の動画を作るのと似たようなものだ
ただ、いくつか提案がある
自分の読書リストが十分に多いなら、自分に似た読者(
eigenfriends)を見つけて、彼らが読んだ論争的だったりニッチな本を勧めてくれるといい次はVLMをつないで本棚の写真で入力できるようにすると面白そう
たとえば「Lenin’s Tomb」と「Secondhand Time」を入れると、その両方を読んだ人たちが読んだ他の本を見られる。
これはFilmaffinityのやり方に似ている。あちらは「soulmates」と呼ばれる、趣味が近いユーザー群をもとに推薦を出している
個人的には、論争的な本より趣味の異なる友人をフィルタリングすることで、より新鮮な推薦を得るほうがいいと思う
ただ、シリーズものの1冊(例: Discworld #33)を入れると、そのシリーズが推薦を支配してしまう。すでに読んでいるシリーズは除外したい
それと、Goodreadsにある本が何冊か検索できなかった。データセットから漏れているようだ
「Similar」ボタンを押したときには、形式的には似ているが文脈は異なる本が出てきた。
それでも一般的な本では、自分のウィッシュリストとよく合っていた
テスト指標と品質チェックに満足したのでリリースしたが、解決策はtransformerモデルで候補を100〜200件生成してからrerankerを適用することになりそう
今はコンテンツベース推薦に近いが、今後は偶然性(serendipity)、新規性(novelty)のような指標も考慮しなければならない
実際のサービスでは、目的別に異なるレコメンダーを用意し、その結果を重み付きで統合するのが効果的だった
たとえばコンテンツベース、グラフベース、特定目的向けモデル、さらにはTF‑IDF/BM25/Spladeベースまで混ぜる形だ
人によってどう推薦されたいかが違うので、ユーザーごとの重み調整が鍵になる
すでにその作家が好きなら別作品は自分で探せるので、同じ著者の本を勧める意味はない
本当に面白い推薦とは、(1) 自分が好きで、(2) 予想外の本だ
似すぎた推薦はエコーチェンバーを作る危険がある
一度読んだ作家に他の作品があることを知らない場合も多い
ただ、**嫌いな本というシグナル(negative signal)**も追加できるとよい
全体としてかなり印象的な結果だった
法的問題はさておき、倫理的に不適切だと感じる
最後の項目が次の相互作用予測に最も関連性が高いものとして反映されるためだ
もっと多くの本を追加すれば、この効果は和らぐ
現在TestFlightのクローズドベータ中で、まもなく公開予定だ
当時はほとんどの人が不可能だと言っていたが、今では可能になったようだ
ただ、これほど大きなデータセットがあるなら、本当にAIが必要なのかは疑問だ
SASRec/RAGのようなモデルではなく、昔のlast.fmのように単純なランキングと積集合計算だけでも似た結果を出せるのではないかと思う
以前、推薦用の**「脳」グラフ構造**を構想したことがあり、アイテム間のつながりに沿ってスコアを伝播させる方式だった。
実際、Amazonのようなところでもこうした変種が使われていそうだ
ユーザーが見た映画や好みの情報が分からなければ、「まだ見ていないが気に入る映画」を正確に推薦することはできない
結局は情報制約を緩めれば実現できる一般的な推薦システムになる