ภาพรวมการจัดอันดับ TensorFlow

ไลบรารีการจัดอันดับ TensorFlow ช่วยให้คุณสร้าง การเรียนรู้ที่ปรับขนาดได้เพื่อจัดอันดับ โมเดลการเรียนรู้ของเครื่องโดยใช้แนวทางและเทคนิคที่มีชื่อเสียงจากการวิจัยล่าสุด โมเดลการจัดอันดับจะรับรายการที่คล้ายกัน เช่น หน้าเว็บ และสร้างรายการที่ได้รับการปรับปรุงให้เหมาะสมของรายการเหล่านั้น เช่น เกี่ยวข้องกับหน้าที่มีความเกี่ยวข้องน้อยที่สุด การเรียนรู้ที่จะจัดอันดับแบบจำลองมีแอปพลิเคชันในการค้นหา การตอบคำถาม ระบบผู้แนะนำ และระบบการสนทนา คุณสามารถใช้ไลบรารีนี้เพื่อเร่งการสร้างแบบจำลองการจัดอันดับสำหรับแอปพลิเคชันของคุณโดยใช้ Keras API ไลบรารีการจัดอันดับยังมียูทิลิตี้เวิร์กโฟลว์เพื่อให้ง่ายต่อการขยายขนาดการใช้งานแบบจำลองของคุณเพื่อให้ทำงานอย่างมีประสิทธิภาพกับชุดข้อมูลขนาดใหญ่โดยใช้กลยุทธ์การประมวลผลแบบกระจาย

ภาพรวมนี้ให้ข้อมูลสรุปโดยย่อเกี่ยวกับการพัฒนาการเรียนรู้เพื่อจัดอันดับโมเดลด้วยไลบรารีนี้ แนะนำเทคนิคขั้นสูงบางอย่างที่ไลบรารีสนับสนุน และอภิปรายการยูทิลิตีเวิร์กโฟลว์ที่มีให้เพื่อรองรับการประมวลผลแบบกระจายสำหรับการจัดอันดับแอปพลิเคชัน

พัฒนาการเรียนรู้เพื่อจัดอันดับโมเดล

การสร้างโมเดลด้วยไลบรารี TensorFlow Ranking ทำตามขั้นตอนทั่วไปเหล่านี้:

  1. ระบุฟังก์ชันการให้คะแนนโดยใช้เลเยอร์ Keras ( tf.keras.layers )
  2. กำหนดเมทริกที่คุณต้องการใช้สำหรับการประเมินผล เช่น tfr.keras.metrics.NDCGMetric
  3. ระบุฟังก์ชันการสูญเสีย เช่น tfr.keras.losses.SoftmaxLoss
  4. คอมไพล์โมเดลด้วย tf.keras.Model.compile() และฝึกฝนกับข้อมูลของคุณ

บทช่วยสอนแนะนำภาพยนตร์ จะแนะนำคุณเกี่ยวกับพื้นฐานของการสร้างการเรียนรู้เพื่อจัดอันดับโมเดลด้วยไลบรารีนี้ ตรวจสอบส่วน การสนับสนุนการจัดอันดับแบบกระจาย สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการสร้างแบบจำลองการจัดอันดับขนาดใหญ่

เทคนิคการจัดอันดับขั้นสูง

ไลบรารี TensorFlow Ranking ให้การสนับสนุนการใช้เทคนิคการจัดอันดับขั้นสูงที่นักวิจัยและวิศวกรของ Google วิจัยและนำไปใช้ ส่วนต่อไปนี้จะให้ภาพรวมของเทคนิคบางอย่างเหล่านี้และวิธีเริ่มต้นใช้งานในแอปพลิเคชันของคุณ

การเรียงลำดับอินพุตรายการ BERT

ไลบรารีการจัดอันดับจัดให้มีการใช้งาน TFR-BERT ซึ่งเป็นสถาปัตยกรรมการให้คะแนนที่จับคู่ BERT กับการสร้างแบบจำลอง LTR เพื่อเพิ่มประสิทธิภาพการเรียงลำดับอินพุตรายการ เพื่อเป็นตัวอย่างของการประยุกต์ใช้แนวทางนี้ ให้พิจารณาแบบสอบถามและรายการเอกสาร n ฉบับที่คุณต้องการจัดอันดับเพื่อตอบสนองต่อแบบสอบถามนี้ แทนที่จะเรียนรู้การเป็นตัวแทน BERT โดยให้คะแนนอย่างเป็นอิสระจากคู่ <query, document> โมเดล LTR ใช้ การสูญเสียการจัดอันดับ เพื่อร่วมกันเรียนรู้การเป็นตัวแทน BERT ที่เพิ่มประโยชน์สูงสุดจากรายการจัดอันดับทั้งหมดโดยคำนึงถึงป้ายกำกับความจริงภาคพื้นดิน รูปต่อไปนี้แสดงให้เห็นถึงเทคนิคนี้:

แผนภาพ BERT สำหรับการจัดอันดับ TensorFlow
รูปที่ 1 : แผนภาพสถาปัตยกรรม BERT สำหรับการจัดอันดับ TensorFlow แสดงโมเดล LTR ร่วมกันเหนือรายการเอกสาร n รายการโดยใช้การแสดง BERT ของคู่ <query,document> แต่ละคู่

วิธีการนี้จะทำให้รายการเอกสารเรียบขึ้นเพื่อจัดอันดับในการตอบสนองต่อคิวรีในรายการสิ่ง <query, document> สิ่งอันดับเหล่านี้จะถูกป้อนเข้าสู่โมเดลภาษาที่ได้รับการฝึกอบรมล่วงหน้าของ BERT เอาต์พุต BERT ที่รวมกลุ่มสำหรับรายการเอกสารทั้งหมดจะได้รับการปรับแต่งร่วมกับหนึ่งใน การสูญเสียการจัดอันดับ เฉพาะที่มีอยู่ใน TensorFlow Ranking

สถาปัตยกรรมนี้สามารถนำเสนอการปรับปรุงที่สำคัญในประสิทธิภาพของโมเดลภาษาที่ผ่านการฝึกอบรม ทำให้เกิด ประสิทธิภาพที่ล้ำสมัยสำหรับงานจัดอันดับยอดนิยมหลายๆ งาน โดยเฉพาะอย่างยิ่งเมื่อมีการรวมโมเดลภาษาที่ผ่านการฝึกอบรมมาแล้วหลายรายการเข้าด้วยกัน สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเทคนิคนี้ โปรดดู งานวิจัย ที่เกี่ยวข้อง คุณสามารถเริ่มต้นด้วยการใช้งานง่ายๆ ใน โค้ดตัวอย่าง TensorFlow Ranking

แบบจำลองการเติมทั่วไปของการจัดอันดับประสาท (GAM)

สำหรับระบบการจัดอันดับบางระบบ เช่น การประเมินคุณสมบัติสินเชื่อ การกำหนดเป้าหมายการโฆษณา หรือคำแนะนำสำหรับการรักษาพยาบาล ความโปร่งใสและความสามารถในการอธิบายถือเป็นข้อพิจารณาที่สำคัญ การใช้ โมเดลการบวกทั่วไป (GAM) กับปัจจัยการถ่วงน้ำหนักที่เข้าใจกันดีสามารถช่วยให้โมเดลการจัดอันดับของคุณอธิบายและตีความได้ง่ายขึ้น

GAM ได้รับการศึกษาอย่างกว้างขวางเกี่ยวกับงานการถดถอยและการจัดหมวดหมู่ แต่ยังไม่ค่อยชัดเจนนักว่าจะนำไปใช้กับแอปพลิเคชันการจัดอันดับได้อย่างไร ตัวอย่างเช่น แม้ว่า GAM สามารถนำไปใช้ในการสร้างแบบจำลองแต่ละรายการในรายการได้ แต่การสร้างแบบจำลองทั้งการโต้ตอบของรายการและบริบทในการจัดอันดับรายการเหล่านี้ถือเป็นปัญหาที่ท้าทายยิ่งกว่า TensorFlow Ranking นำเสนอการใช้งาน GAM การจัดอันดับแบบนิวรัล ซึ่งเป็นส่วนขยายของโมเดลเสริมทั่วไปที่ออกแบบมาเพื่อปัญหาการจัดอันดับ การใช้งาน TensorFlow Ranking ของ GAM ช่วยให้คุณสามารถเพิ่มการถ่วงน้ำหนักเฉพาะให้กับคุณลักษณะของโมเดลของคุณได้

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

โมเดลการบวกทั่วไปสำหรับตัวอย่างการจัดอันดับ
รูปที่ 2 : การใช้ GAM การจัดอันดับประสาทสำหรับการค้นหาในท้องถิ่น สำหรับแต่ละคุณลักษณะอินพุต เช่น ราคาหรือระยะทาง โมเดลย่อยจะสร้างคะแนนย่อยที่สามารถตรวจสอบได้ และให้ความโปร่งใส คุณลักษณะบริบท เช่น ประเภทอุปกรณ์ของผู้ใช้สามารถใช้เพื่อกำหนดน้ำหนักของคะแนนรุ่นย่อยได้

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้ GAM กับโมเดลการจัดอันดับ โปรดดู การวิจัย ที่เกี่ยวข้อง คุณสามารถเริ่มต้นใช้งานตัวอย่างการใช้เทคนิคนี้ได้ใน โค้ดตัวอย่าง TensorFlow Ranking

การสนับสนุนการจัดอันดับแบบกระจาย

TensorFlow Ranking ได้รับการออกแบบมาเพื่อสร้างระบบการจัดอันดับขนาดใหญ่แบบ end-to-end: รวมถึงการประมวลผลข้อมูล การสร้างแบบจำลอง การประเมินผล และการใช้งานจริง สามารถรองรับฟีเจอร์ที่มีความหนาแน่นและกระจัดกระจายต่างกัน ขยายจุดข้อมูลได้สูงสุดถึงล้านจุด และได้รับการออกแบบมาเพื่อรองรับ การฝึกอบรมแบบกระจาย สำหรับแอปพลิเคชันการจัดอันดับขนาดใหญ่

ไดอะแกรมของคลาสการจัดอันดับ TensorFlow
รูปที่ 3 : แผนภาพของคลาสการจัดอันดับ TensorFlow เพื่อรองรับการประมวลผลแบบกระจาย โมดูลสีเขียวสามารถปรับแต่งให้เหมาะกับโมเดลการจัดอันดับของคุณได้

ไลบรารีมีสถาปัตยกรรมไปป์ไลน์การจัดอันดับที่ได้รับการปรับปรุงให้เหมาะสม เพื่อหลีกเลี่ยงการใช้โค้ดสำเร็จรูปซ้ำๆ และสร้างโซลูชันแบบกระจายที่สามารถนำไปใช้ได้ตั้งแต่การฝึกโมเดลการจัดอันดับของคุณไปจนถึงการให้บริการ ไปป์ไลน์การจัดอันดับสนับสนุน กลยุทธ์แบบกระจาย ส่วนใหญ่ของ TensorFlow รวมถึง MirroredStrategy , TPUStrategy , MultiWorkerMirroredStrategy และ ParameterServerStrategy ไปป์ไลน์การจัดอันดับสามารถส่งออกโมเดลการจัดอันดับที่ได้รับการฝึกในรูปแบบ tf.saved_model ซึ่งรองรับ ลายเซ็น อินพุตหลายรายการ .. นอกจากนี้ ไปป์ไลน์การจัดอันดับยังให้การเรียกกลับที่เป็นประโยชน์ รวมถึงการรองรับการแสดงภาพข้อมูล TensorBoard และ BackupAndRestore เพื่อช่วยกู้คืนจากความล้มเหลวในระยะยาว การดำเนินการฝึกอบรม

ไลบรารีการจัดอันดับช่วยในการสร้างการดำเนินการฝึกอบรมแบบกระจายโดยจัดเตรียมชุดคลาส tfr.keras.pipeline ซึ่งใช้ตัวสร้างโมเดล ตัวสร้างข้อมูล และไฮเปอร์พารามิเตอร์เป็นอินพุต คลาส tfr.keras.ModelBuilder ที่ใช้ Keras ช่วยให้คุณสร้างโมเดลสำหรับการประมวลผลแบบกระจาย และทำงานร่วมกับคลาส InputCreator, Preprocessor และ Scorer ที่ขยายได้:

คลาสไปป์ไลน์การจัดอันดับ TensorFlow ยังทำงานร่วมกับ DatasetBuilder เพื่อตั้งค่าข้อมูลการฝึก ซึ่งสามารถรวม ไฮเปอร์พารามิเตอร์ ได้ สุดท้าย ไปป์ไลน์สามารถรวมชุดของไฮเปอร์พารามิเตอร์เป็นออบเจ็ กต์ PipelineHparams ได้

เริ่มต้นสร้างแบบจำลองการจัดอันดับแบบกระจายโดยใช้ บทช่วยสอนการจัดอันดับแบบกระจาย