1 ポイント 投稿者 GN⁺ 2025-11-07 | 1件のコメント | WhatsAppで共有
  • ユーザーが読んだ本を入力すると、推薦モデルが次に読む本を提案するシステム
  • 検索結果と推薦には、人気のしきい値以上の書籍のみを含む
  • 人気の低い本は、サイトの**別セクション(intersect)**で活用可能
  • 3冊以上の本を入力したときに、最も正確な推薦結果を提供
  • 大規模なレビュー・データを活用したパーソナライズされた読書推薦技術の実験的実装

書籍推薦機能

  • ユーザーがすでに読んだ本を入力すると、モデルベースの推薦結果を提供
    • 入力された書籍リストをもとに、次に読むのによさそうな本を提示
  • 推薦および検索結果には、一定レベル以上の人気書籍のみを含む
    • 人気基準を下回る本は推薦結果から除外される

入力と検索方法

  • 検索ボックスに2文字以上入力すると結果を表示
  • ユーザーが選択した本は**「Selected Books」**領域に表示され、
    まだ選択していない場合は「No books selected yet」という文言が表示される

追加機能

  • 人気の低い本は**/intersectページ**で別途活用可能
  • 3冊以上の本を入力すると推薦精度が向上する

サービス概要

  • サイトは**大規模なGoodreadsレビュー・データ(30億件)**を基盤とした推薦モデルを使用
  • 目標は、ユーザーの読書履歴に応じてパーソナライズされた書籍推薦体験を提供すること
  • 原文には追加の技術的詳細やアルゴリズムの説明はない

1件のコメント

 
GN⁺ 2025-11-07
Hacker Newsの意見
  • Goodreadsの利用規約4項に違反しているのではないかと気になる
    「サービス内のコンテンツを修正、複製、配布、派生作品の制作などに利用してはならない」と書かれているので、レビュアーのコンテンツをLLMの学習に使うには明示的な許可が必要な気がする
    • 今の時代、こうした条項にはあまり大きな意味がないと思う
      スクレイピングの合法性は管轄地域によって異なる。米国では HiQ Labs v. LinkedIn の判例のおかげで、公開ウェブページをクロールする行為がCFAA違反ではないと認められている。だから公開データのスクレイピング系スタートアップがたくさん生まれた
    • 技術的にはGoodreadsの著作物そのものを公に利用しているわけではない
      サイトに表示される情報はタイトルと著者だけで、これはGoodreadsの所有物ではない。
      「派生作品の制作」条項に触れる可能性はあるが、レビューをもとに本を推薦することを侵害と見るのは難しい。
      YouTuberが「レビュー50件を読んでおすすめする本」の動画を作るのと似たようなものだ
    • 最近では本全体をLLMに学習させることもフェアユースと見なされるので、レビューも許可不要である可能性が高い。それでも法律の専門家の意見は聞いてみたい
    • どうして既に答えを知っている質問をするのか分からない
  • 本を追加し続けていたら「多すぎます」というメッセージが出た。本当に面白いアイデアだ
    ただ、いくつか提案がある
    • UI: 「Add」を押した本はおすすめ一覧から消えるようにすべき。残ったままだと紛らわしい
    • 推薦の多様性: システムは自分がすでに読んだ本をかなり正確に当ててきたが、新しい発見は少なかった。
      自分の読書リストが十分に多いなら、自分に似た読者(eigenfriends)を見つけて、彼らが読んだ論争的だったりニッチな本を勧めてくれるといい
      次はVLMをつないで本棚の写真で入力できるようにすると面白そう
    • サイトの「intersect」ページでは、複数の本を入力して共通読者の集合を見つけられる。
      たとえば「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)**も追加できるとよい
    全体としてかなり印象的な結果だった
  • robots.txt に明示的に**スクレイピング禁止(disallow)**と書かれている
    法的問題はさておき、倫理的に不適切だと感じる
    • Goodreadsでよくレビューを書く立場として、こうした利用は不快に感じる
  • 最後に追加した本が推薦結果に過度な影響を与えているように見える
    • これはpositional embeddingの特性によるものだ
      最後の項目が次の相互作用予測に最も関連性が高いものとして反映されるためだ
      もっと多くの本を追加すれば、この効果は和らぐ
  • 私たちは2016年からこのデータセットを構築しており、すでにカバーしている
    現在TestFlightのクローズドベータ中で、まもなく公開予定だ
  • 5年ほど前、「良いギャング映画をおすすめして」と言えば新しい映画を見つけてくれるエンジンを想像していた
    当時はほとんどの人が不可能だと言っていたが、今では可能になったようだ
    ただ、これほど大きなデータセットがあるなら、本当にAIが必要なのかは疑問だ
    SASRec/RAGのようなモデルではなく、昔のlast.fmのように単純なランキングと積集合計算だけでも似た結果を出せるのではないかと思う
    以前、推薦用の**「脳」グラフ構造**を構想したことがあり、アイテム間のつながりに沿ってスコアを伝播させる方式だった。
    実際、Amazonのようなところでもこうした変種が使われていそうだ
    • 「良いギャング映画をおすすめして」という依頼だけでは不可能だ
      ユーザーが見た映画や好みの情報が分からなければ、「まだ見ていないが気に入る映画」を正確に推薦することはできない
      結局は情報制約を緩めれば実現できる一般的な推薦システムになる
    • 参考までに、last.fmも単純なランキングではなく基本的な機械学習アルゴリズムを使っていた