Layanan rekomendasi buku berbasis model rekomendasi yang memanfaatkan 3 miliar ulasan Goodreads
(book.sv)- Jika pengguna memasukkan buku yang telah dibaca, model rekomendasi akan menyarankan buku berikutnya untuk dibaca
- Hanya buku dengan ambang popularitas minimum yang disertakan dalam hasil pencarian dan rekomendasi
- Buku dengan popularitas rendah dapat dimanfaatkan di bagian lain situs (intersect)
- Hasil rekomendasi paling akurat diberikan saat memasukkan 3 buku atau lebih
- Implementasi eksperimental dari teknologi rekomendasi bacaan yang dipersonalisasi dengan memanfaatkan data ulasan berskala besar
Fitur rekomendasi buku
- Jika pengguna memasukkan buku yang sudah dibaca, sistem memberikan hasil rekomendasi berbasis model
- Berdasarkan daftar buku yang dimasukkan, sistem menyarankan buku yang layak dibaca berikutnya
- Dalam hasil rekomendasi dan pencarian, hanya buku yang memiliki tingkat popularitas tertentu ke atas yang disertakan
- Buku di bawah ambang popularitas dikecualikan dari hasil rekomendasi
Metode input dan pencarian
- Hasil ditampilkan saat memasukkan dua huruf atau lebih di kotak pencarian
- Buku yang dipilih pengguna ditampilkan di area
Selected Books,
dan jika belum ada yang dipilih, akan muncul teks “No books selected yet”
Fitur tambahan
- Buku dengan popularitas rendah dapat dimanfaatkan secara terpisah di halaman /intersect
- Jika memasukkan 3 buku atau lebih, akurasi rekomendasi meningkat
Ikhtisar layanan
- Situs ini menggunakan model rekomendasi yang berbasis pada data ulasan Goodreads berskala besar (3 miliar ulasan)
- Tujuannya adalah memberikan pengalaman rekomendasi buku yang dipersonalisasi sesuai riwayat bacaan pengguna
- Tidak ada detail teknis tambahan atau penjelasan algoritme dalam teks asli
1 komentar
Opini Hacker News
Tertulis bahwa “konten dalam layanan tidak boleh digunakan untuk memodifikasi, menyalin, mendistribusikan, membuat karya turunan, dan sebagainya”, jadi sepertinya perlu izin eksplisit untuk memakai konten para pengulas guna melatih LLM
Legalitas scraping berbeda tergantung yurisdiksi. Di AS, lewat preseden HiQ Labs v. LinkedIn, scraping halaman web publik diakui bukan pelanggaran CFAA. Karena itu banyak bermunculan startup scraping data publik
Informasi yang ditampilkan di situs hanya judul dan penulis, dan itu bukan milik Goodreads.
Mungkin bisa dianggap kena klausul “membuat karya turunan”, tetapi sulit melihat rekomendasi buku berbasis ulasan sebagai suatu pelanggaran.
Kurang lebih setara dengan YouTuber yang membuat video “buku rekomendasi setelah membaca 50 ulasan”
Tapi saya punya beberapa saran
Kalau daftar buku yang sudah saya baca cukup banyak, akan menarik jika sistem mencari pembaca yang mirip dengan saya (‘eigenfriends’) lalu merekomendasikan buku yang kontroversial atau selera minoritas yang mereka baca
Selanjutnya akan menarik kalau VLM dihubungkan agar input bisa lewat foto rak buku
Misalnya, jika memasukkan “Lenin’s Tomb” dan “Secondhand Time”, kita bisa melihat buku lain yang dibaca oleh orang-orang yang membaca keduanya.
Ini mirip dengan cara kerja Filmaffinity. Mereka memberi rekomendasi berdasarkan kelompok pengguna dengan selera mirip yang disebut ‘soulmates’
Secara pribadi saya merasa daripada buku kontroversial, rekomendasi yang lebih segar bisa didapat dengan memfilter teman yang seleranya berbeda
Tapi kalau memasukkan satu buku dari sebuah seri (misalnya Discworld #33), seri itu jadi mendominasi rekomendasi. Saya ingin bisa mengecualikan seri yang sudah sedang saya baca
Selain itu, beberapa buku yang ada di Goodreads tidak muncul saat dicari. Sepertinya ada yang hilang dari dataset
Saat menekan tombol “Similar”, yang muncul adalah buku yang mirip secara formal tetapi konteksnya berbeda.
Meski begitu, untuk buku-buku umum hasilnya cukup cocok dengan wishlist saya
Metrik pengujian dan pengecekan kualitasnya memuaskan sehingga dirilis, tetapi solusinya kemungkinan menghasilkan 100~200 kandidat dengan model transformer lalu menerapkan reranker
Sekarang ini masih lebih dekat ke rekomendasi berbasis konten, tetapi ke depan perlu mempertimbangkan metrik seperti serendipity dan novelty
Dalam layanan nyata, akan lebih efektif jika ada rekomender berbeda untuk tiap tujuan lalu hasilnya digabung dengan bobot
Misalnya mencampurkan yang berbasis konten, berbasis graf, model yang disesuaikan untuk tujuan tertentu, bahkan yang berbasis TF‑IDF/BM25/Splade
Karena tiap orang ingin direkomendasikan dengan cara yang berbeda, penyesuaian bobot per pengguna adalah kuncinya
Kalau saya sudah suka penulis itu, saya bisa mencari karya lainnya sendiri, jadi merekomendasikan buku dari penulis yang sama terasa tidak terlalu bermakna
Rekomendasi yang benar-benar menarik adalah yang (1) saya suka dan (2) tidak saya duga
Rekomendasi yang terlalu mirip berisiko menciptakan echo chamber
Sering kali orang juga tidak tahu ada karya lain dari penulis yang pernah dibacanya
Hanya saja akan bagus kalau bisa juga menambahkan sinyal buku yang tidak disukai (negative signal)
Secara keseluruhan hasilnya cukup mengesankan
Terlepas dari persoalan hukum, ini terasa tidak etis
Item terakhir tercermin sebagai yang paling relevan untuk prediksi interaksi berikutnya
Jika menambahkan lebih banyak buku, efek ini akan berkurang
Saat ini sedang dalam beta tertutup TestFlight dan akan segera dirilis
Waktu itu kebanyakan orang bilang itu mustahil, tetapi sekarang tampaknya sudah memungkinkan
Namun kalau dataset sebesar ini sudah ada, saya jadi ragu apakah AI benar-benar diperlukan
Saya merasa mungkin hasil serupa bisa dicapai bukan dengan model seperti SASRec/RAG, melainkan dengan peringkat sederhana dan perhitungan irisan seperti last.fm dulu
Dulu saya pernah membayangkan struktur graf ‘otak’ untuk rekomendasi, yaitu menyebarkan skor dengan mengikuti hubungan antaritem.
Sepertinya variasi seperti ini juga dipakai di tempat seperti Amazon
Tanpa mengetahui film yang sudah ditonton pengguna atau informasi preferensinya, tidak mungkin merekomendasikan secara akurat “film yang belum ditonton tapi akan disukai”
Pada akhirnya ini menjadi sistem rekomendasi umum yang dimungkinkan dengan melonggarkan batasan informasi