1 คะแนน โดย GN⁺ 2025-11-07 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • เมื่อผู้ใช้ป้อนหนังสือที่เคยอ่าน ระบบจะใช้ โมเดลแนะนำ เพื่อเสนอหนังสือเล่มถัดไปให้อ่าน
  • ผลการค้นหาและคำแนะนำจะแสดงเฉพาะหนังสือที่มี เกณฑ์ความนิยมถึงระดับที่กำหนด เท่านั้น
  • หนังสือที่มีความนิยมน้อยสามารถนำไปใช้ใน ส่วนอื่นของเว็บไซต์ (intersect) ได้
  • เมื่อป้อนหนังสือ ตั้งแต่ 3 เล่มขึ้นไป จะได้ผลการแนะนำที่แม่นยำที่สุด
  • การทดลองพัฒนาระบบ เทคโนโลยีแนะนำการอ่านแบบเฉพาะบุคคล โดยใช้ข้อมูลรีวิวขนาดใหญ่

ฟีเจอร์แนะนำหนังสือ

  • เมื่อผู้ใช้ป้อนหนังสือที่อ่านไปแล้ว ระบบจะแสดง ผลการแนะนำแบบอิงโมเดล
    • โดยอ้างอิงจากรายการหนังสือที่ป้อน เพื่อเสนอหนังสือที่น่าอ่านเป็นเล่มถัดไป
  • ในผลการแนะนำและผลการค้นหา จะแสดงเฉพาะ หนังสือยอดนิยมที่ถึงระดับที่กำหนด เท่านั้น
    • หนังสือที่ต่ำกว่าเกณฑ์ความนิยมจะถูกตัดออกจากผลการแนะนำ

วิธีป้อนข้อมูลและค้นหา

  • เมื่อพิมพ์ในช่องค้นหา ตั้งแต่ 2 ตัวอักษรขึ้นไป จะแสดงผลลัพธ์
  • หนังสือที่ผู้ใช้เลือกจะแสดงในส่วน Selected Books และ
    หากยังไม่ได้เลือกหนังสือใด จะปรากฏข้อความ “No books selected yet”

ฟีเจอร์เพิ่มเติม

  • หนังสือที่มีความนิยมน้อยสามารถนำไปใช้งานแยกต่างหากได้ที่หน้า /intersect
  • เมื่อป้อนหนังสือ ตั้งแต่ 3 เล่มขึ้นไป ความแม่นยำของคำแนะนำจะดีขึ้น

ภาพรวมของบริการ

  • เว็บไซต์นี้ใช้โมเดลแนะนำที่อิงจาก ข้อมูลรีวิว Goodreads ขนาดใหญ่ (3 พันล้านรายการ)
  • เป้าหมายคือมอบ ประสบการณ์แนะนำหนังสือแบบเฉพาะบุคคล ตามประวัติการอ่านของผู้ใช้
  • ต้นฉบับไม่ได้มีรายละเอียดทางเทคนิคหรือคำอธิบายอัลกอริทึมเพิ่มเติม

1 ความคิดเห็น

 
GN⁺ 2025-11-07
ความคิดเห็นบน Hacker News
  • สงสัยว่าแบบนี้จะไม่เข้าข่ายละเมิด ข้อ 4 ของข้อกำหนดการใช้งาน ของ Goodreads หรือไม่
    ในข้อนั้นระบุว่า “ห้ามแก้ไข ทำซ้ำ แจกจ่าย หรือใช้คอนเทนต์ในบริการเพื่อสร้างงานดัดแปลง” ดังนั้นถ้าจะนำคอนเทนต์ของผู้รีวิวไปใช้ฝึก LLM ก็น่าจะต้องมี การอนุญาตอย่างชัดแจ้ง
    • คิดว่าในยุคนี้ข้อกำหนดแบบนี้ไม่ได้มีความหมายมากนัก
      ความถูกกฎหมายของการสแครปขึ้นอยู่กับ เขตอำนาจศาล ในสหรัฐฯ จากคำพิพากษา HiQ Labs v. LinkedIn ทำให้การสแครปหน้าเว็บสาธารณะไม่ถือว่าละเมิด CFAA จึงมีสตาร์ทอัปด้าน การสแครปข้อมูลสาธารณะ เกิดขึ้นมากมาย
    • ในเชิงเทคนิคแล้ว บริการนี้ ไม่ได้ใช้ผลงานที่มีลิขสิทธิ์ของ Goodreads ต่อสาธารณะโดยตรง
      ข้อมูลที่แสดงบนไซต์มีเพียงชื่อหนังสือกับผู้แต่ง ซึ่งไม่ได้เป็นทรัพย์สินของ Goodreads
      อาจตีความว่าเข้าข่ายข้อห้ามเรื่อง “การสร้างงานดัดแปลง” ได้ แต่ก็ยากจะมองว่าการแนะนำหนังสือจากรีวิวเป็นการละเมิด
      มันใกล้เคียงกับยูทูบเบอร์ที่ “อ่านรีวิว 50 ชิ้นแล้วทำวิดีโอแนะนำหนังสือ” มากกว่า
    • ทุกวันนี้แม้แต่การนำ หนังสือทั้งเล่มไปฝึก LLM ก็ยังถูกมองว่าเป็น fair use ได้ ดังนั้นรีวิวเองก็น่าจะมีโอกาสไม่ต้องขออนุญาตเช่นกัน แต่ก็ยังอยากฟัง ความเห็นจากผู้เชี่ยวชาญด้านกฎหมาย
    • ไม่เข้าใจว่าทำไมถึงถามคำถามที่รู้อยู่แล้วว่าคำตอบคืออะไร
  • พอลองเพิ่มหนังสือไปเรื่อย ๆ ก็เจอข้อความว่า “มีมากเกินไป” ไอเดียนี้สนุกมากจริง ๆ
    แต่ก็มีข้อเสนอแนะอยู่บ้าง
    • UI: หนังสือที่กด “Add” แล้วควรหายไปจากรายการแนะนำ ไม่อย่างนั้นจะสับสน
    • ความหลากหลายของคำแนะนำ: ระบบทายหนังสือที่ฉันเคยอ่านได้แม่นมาก แต่มี การค้นพบสิ่งใหม่ ค่อนข้างน้อย
      ถ้ารายชื่อหนังสือที่ฉันเคยอ่านมีมากพอ ก็น่าจะลองหาผู้อ่านที่คล้ายฉัน (‘eigenfriends’) แล้วแนะนำ หนังสือที่เป็นที่ถกเถียงหรือรสนิยมเฉพาะกลุ่ม ที่พวกเขาอ่าน
      คราวหน้าถ้า เชื่อม VLM แล้วให้ป้อนรูปชั้นหนังสือ ได้ก็น่าจะสนุกดี
    • ในหน้า “intersect” ของไซต์สามารถป้อนหนังสือหลายเล่มเพื่อหา กลุ่มผู้อ่านร่วมกัน ได้
      เช่น ถ้าใส่ “Lenin’s Tomb” กับ “Secondhand Time” ก็จะเห็นหนังสืออื่นที่คนซึ่งอ่านทั้งสองเล่มนี้เคยอ่าน
      วิธีนี้คล้ายกับของ Filmaffinity ที่ให้คำแนะนำจากกลุ่มผู้ใช้รสนิยมคล้ายกันซึ่งเรียกว่า ‘soulmates’
      ส่วนตัวคิดว่าแทนที่จะเน้นหนังสือชวนถกเถียง การ คัดกรองเพื่อนที่รสนิยมต่างออกไป น่าจะให้คำแนะนำที่สดใหม่กว่า
  • เว็บไซต์เร็วมากและเจ๋งจริง
    แต่ถ้าใส่หนังสือเล่มหนึ่งจากชุดซีรีส์ (เช่น Discworld #33) ซีรีส์นั้นจะครองผลลัพธ์แนะนำไปหมด อยากให้ตัดซีรีส์ที่กำลังอ่านอยู่แล้วออกได้
    อีกอย่างคือมีหนังสือบางเล่มที่อยู่ใน Goodreads แต่ค้นหาไม่เจอ น่าจะหลุดจากชุดข้อมูล
    ตอนกดปุ่ม “Similar” กลับได้ หนังสือที่คล้ายกันในเชิงรูปแบบ แต่บริบทต่างกัน
    ถึงอย่างนั้นกับหนังสือทั่ว ๆ ไป ผลลัพธ์ก็ตรงกับ wishlist ของฉันดี
    • คิดว่าปัญหาใหญ่สุดคือวิธีจัดการซีรีส์
      ปล่อยออกมาเพราะตัวชี้วัดการทดสอบและการตรวจคุณภาพน่าพอใจแล้ว แต่ทางแก้น่าจะเป็น ใช้โมเดล transformer สร้างผู้สมัคร 100~200 รายการแล้วค่อยใช้ reranker
  • จากประสบการณ์ที่เคยสร้างระบบแนะนำมาก่อน หลังจากนี้ต่างหากคือส่วนที่ยากจริง
    ตอนนี้ยังใกล้เคียงกับ การแนะนำแบบอิงคอนเทนต์ แต่ต่อไปต้องคำนึงถึงตัวชี้วัดอย่าง serendipity และ novelty ด้วย
    ในบริการจริง การมีตัวแนะนำหลายตัวสำหรับเป้าหมายต่างกันแล้ว รวมผลแบบถ่วงน้ำหนัก มักได้ผลดี
    เช่น ผสมทั้งแบบอิงคอนเทนต์ แบบอิงกราฟ โมเดลเฉพาะวัตถุประสงค์ หรือแม้แต่แบบอิง TF‑IDF/BM25/Splade
    เพราะแต่ละคนอยากได้รับคำแนะนำไม่เหมือนกัน หัวใจสำคัญจึงอยู่ที่ การปรับน้ำหนักรายผู้ใช้
  • ควรตัด ผู้แต่ง ของหนังสือที่ป้อนออกจากผลลัพธ์
    ถ้าชอบนักเขียนคนนั้นอยู่แล้ว เดี๋ยวก็คงไปหางานอื่นของเขาเอง การแนะนำหนังสือของผู้แต่งคนเดิมจึงไม่ค่อยมีความหมาย
    คำแนะนำที่น่าสนใจจริงควรเป็นหนังสือที่ (1) ฉันน่าจะชอบ และ (2) คาดไม่ถึง
    ถ้าแนะนำสิ่งที่คล้ายเกินไปก็เสี่ยงจะสร้าง echo chamber
    • เห็นด้วยว่าควรตัดซีรีส์ออก แต่เรื่องผู้แต่งน่าจะทำเป็นตัวเลือกมากกว่า
      หลายครั้งก็ไม่รู้ว่านักเขียนที่เคยอ่านมีงานอื่นอีกหรือไม่
    • การที่หนังสือที่อ่านแล้วถูกแนะนำซ้ำ ๆ นั้นไม่ค่อยดีเลย
  • ลองป้อนหนังสือหลายแนวแล้ว ระบบก็จับหนังสือที่ฉันเคยอ่านและชอบได้ดี
    แต่ถ้าเพิ่ม สัญญาณของหนังสือที่ไม่ชอบ (negative signal) ได้ก็น่าจะดี
    โดยรวมแล้วผลลัพธ์น่าประทับใจทีเดียว
  • ใน robots.txt ระบุชัดเจนว่า ห้ามสแครป (disallow)
    ต่อให้ไม่นับประเด็นทางกฎหมาย ก็รู้สึกว่า ไม่เหมาะสมในเชิงจริยธรรม
    • ในฐานะคนที่เขียนรีวิวบน Goodreads บ่อย ๆ รู้สึกว่าเอาไปใช้แบบนี้ ไม่น่าพอใจ
  • ดูเหมือนหนังสือที่เพิ่มเป็นเล่มสุดท้ายจะมี อิทธิพลต่อผลลัพธ์แนะนำมากเกินไป
    • นี่เป็นผลจากลักษณะของ positional embedding
      เพราะรายการสุดท้ายจะถูกสะท้อนว่าเกี่ยวข้องกับการทำนายปฏิสัมพันธ์ถัดไปมากที่สุด
      ถ้าเพิ่มหนังสือมากขึ้น ผลกระทบนี้จะเบาลง
  • พวกเราสร้าง ชุดข้อมูลนี้ มาตั้งแต่ปี 2016 และครอบคลุมไปแล้ว
    ตอนนี้กำลังเปิด เบต้าแบบปิดผ่าน TestFlight และจะเปิดสู่สาธารณะในไม่ช้า
  • เมื่อราว 5 ปีก่อน ฉันเคยนึกถึงเอนจินที่พอพูดว่า “ช่วยแนะนำหนังแก๊งสเตอร์ดี ๆ หน่อย” แล้วมันจะหาหนังใหม่ให้ได้
    ตอนนั้นคนส่วนใหญ่บอกว่าเป็นไปไม่ได้ แต่ตอนนี้ดูเหมือนจะทำได้แล้ว
    แต่ถ้ามีชุดข้อมูลใหญ่ขนาดนี้ ก็ยังสงสัยว่า AI จำเป็นจริงหรือไม่
    แทนที่จะใช้โมเดลอย่าง SASRec/RAG อาจให้ผลใกล้เคียงกันได้ด้วยการจัดอันดับแบบง่าย ๆ และคำนวณจุดร่วมเหมือน last.fm ในอดีต
    เมื่อก่อนฉันเคยคิดโครงสร้างกราฟแบบ ‘สมอง’ สำหรับการแนะนำ โดยปล่อยคะแนนไหลไปตามความเชื่อมโยงระหว่างไอเท็ม
    คิดว่าที่อย่าง Amazon เองก็น่าจะใช้วิธีดัดแปลงจากแนวนี้อยู่เหมือนกัน
    • แค่คำขอว่า “ช่วยแนะนำหนังแก๊งสเตอร์ดี ๆ หน่อย” อย่างเดียวยังทำไม่ได้
      ถ้าไม่รู้ว่าผู้ใช้ดูหนังเรื่องไหนมาบ้างหรือมีรสนิยมแบบใด ก็ไม่สามารถแนะนำ “หนังที่ยังไม่เคยดูแต่จะชอบ” ได้อย่างแม่นยำ
      สุดท้ายมันก็คือ ระบบแนะนำทั่วไปที่ทำได้เมื่อผ่อนคลายข้อจำกัดด้านข้อมูล
    • เสริมอีกนิดว่า last.fm ก็ไม่ได้ใช้แค่อันดับแบบง่าย ๆ แต่ใช้แมชชีนเลิร์นนิงพื้นฐานด้วย