ระบบคำแนะนำเป็นหนึ่งในเทคโนโลยีแมชชีนเลิร์นนิง (ML) ที่นำมาใช้กันอย่างแพร่หลายมากที่สุดในแอปพลิเคชันจริง ตั้งแต่เครือข่ายโซเชียลไปจนถึงแพลตฟอร์มอีคอมเมิร์ซ ผู้ใช้ระบบออนไลน์จำนวนมากใช้ระบบการแนะนำเพื่อสร้างมิตรภาพใหม่ ค้นพบเพลงใหม่ตามรายชื่อเพลงที่แนะนำ หรือแม้แต่ตัดสินใจซื้ออีคอมเมิร์ซตามผลิตภัณฑ์ที่แนะนำ ในเครือข่ายโซเชียล กรณีใช้งานทั่วไปกรณีหนึ่งคือการแนะนำเพื่อนใหม่ให้กับผู้ใช้โดยพิจารณาจากการเชื่อมต่ออื่นๆ ของผู้ใช้ ผู้ใช้ที่มีเพื่อนทั่วไปมักจะรู้จักกัน ดังนั้นควรมีคะแนนที่สูงขึ้นสำหรับระบบข้อเสนอแนะเพื่อเสนอหากยังไม่ได้เชื่อมต่อ
โซเชียลเน็ตเวิร์กสามารถแสดงออกมาเป็นกราฟได้อย่างเป็นธรรมชาติ โดยที่โหนดเป็นตัวแทนของผู้คน และความเชื่อมโยงระหว่างผู้คน เช่น มิตรภาพหรือเพื่อนร่วมงาน จะแสดงด้วยขอบ ต่อไปนี้แสดงให้เห็นถึงเครือข่ายสังคมดังกล่าว ลองนึกภาพว่าเรามีเครือข่ายโซเชียลกับสมาชิก (โหนด) Bill, Terry, Henry, Gary และ Alistair ความสัมพันธ์ของพวกเขาแสดงด้วยลิงก์ (ขอบ) และความสนใจของแต่ละคน เช่น กีฬา ศิลปะ เกม และการ์ตูน จะแสดงด้วยคุณสมบัติของโหนด
วัตถุประสงค์ในที่นี้คือเพื่อคาดการณ์ว่ามีการเชื่อมโยงที่ขาดหายไประหว่างสมาชิกหรือไม่ ตัวอย่างเช่น เราควรแนะนำการเชื่อมต่อระหว่าง Henry และ Terry หรือไม่? เมื่อดูกราฟ เราจะเห็นว่าพวกเขามีเพื่อนร่วมกันสองคนคือ Gary และ Alistair ดังนั้นจึงมีโอกาสที่ดีที่เฮนรี่กับเทอร์รี่รู้จักกันอยู่แล้วหรืออาจจะรู้จักกันในไม่ช้านี้ แล้วเฮนรี่กับบิลล่ะ? พวกเขาไม่มีเพื่อนร่วมกัน แต่มีความสัมพันธ์ที่อ่อนแอผ่านการเชื่อมต่อของเพื่อน นอกจากนี้ ทั้งคู่ยังมีความสนใจในด้านศิลปะ การ์ตูน และเกมที่คล้ายคลึงกัน เราควรส่งเสริมการเชื่อมต่อนี้หรือไม่? คำถามและสัญชาตญาณเหล่านี้เป็นตรรกะหลักของระบบแนะนำเครือข่ายสังคมออนไลน์
วิธีหนึ่งที่เป็นไปได้ในการทำเช่นนี้คือการแนะนำความสัมพันธ์โดยพิจารณาจากการสำรวจกราฟ ในภาษาคิวรีกราฟ เช่น อาปาเช่ ทิงเกอร์ป๊อป เกรมลินการนำชุดกฎมาใช้ เช่น การนับเพื่อนทั่วไป นั้นค่อนข้างง่าย และสามารถใช้เพื่อกำหนดความเชื่อมโยงระหว่าง Henry และ Terry อย่างไรก็ตาม ชุดกฎเหล่านี้จะซับซ้อนมากเมื่อเราต้องการพิจารณาแอตทริบิวต์อื่นๆ เช่น คุณสมบัติของโหนด ความแรงของการเชื่อมต่อ ฯลฯ ลองนึกภาพกฎที่ตั้งไว้เพื่อกำหนดความเชื่อมโยงระหว่าง Henry และ Bill ชุดกฎนี้ต้องคำนึงถึงความสนใจร่วมกันและความเชื่อมโยงที่อ่อนแอผ่านเส้นทางบางอย่างในกราฟ เพื่อเพิ่มความทนทาน เราอาจต้องเพิ่มปัจจัยระยะทางเพื่อรองรับการเชื่อมต่อที่แข็งแกร่งและลงโทษผู้ที่อ่อนแอ ในทำนองเดียวกัน เราต้องการปัจจัยที่สนับสนุนผลประโยชน์ร่วมกัน ในไม่ช้า กฎที่ตั้งขึ้นซึ่งสามารถเปิดเผยรูปแบบที่ซ่อนอยู่ที่ซับซ้อนจะเป็นไปไม่ได้ที่จะแจกแจง
เทคโนโลยี ML ช่วยให้เราค้นพบรูปแบบที่ซ่อนอยู่โดยการเรียนรู้อัลกอริทึม ตัวอย่างหนึ่งคือ XGBoost ซึ่งใช้กันอย่างแพร่หลายสำหรับงานจำแนกประเภทหรือการถดถอย อย่างไรก็ตาม อัลกอริธึมเช่น XGBoost ใช้วิธี ML แบบเดิมโดยยึดตามรูปแบบข้อมูลแบบตาราง วิธีการเหล่านี้ไม่ได้รับการปรับให้เหมาะสมสำหรับโครงสร้างข้อมูลกราฟ และต้องใช้วิศวกรรมคุณลักษณะที่ซับซ้อนเพื่อรับมือกับรูปแบบข้อมูลเหล่านี้
ในตัวอย่างเครือข่ายโซเชียลก่อนหน้านี้ ข้อมูลการโต้ตอบของกราฟมีความสำคัญต่อการปรับปรุงความถูกต้องของคำแนะนำ Graph Neural Network (GNN) เป็นเฟรมเวิร์กการเรียนรู้เชิงลึก (DL) ที่สามารถนำไปใช้กับข้อมูลกราฟเพื่อดำเนินการคาดการณ์ระดับขอบ ระดับโหนด หรือระดับกราฟ GNN สามารถใช้ประโยชน์จากคุณลักษณะของโหนดแต่ละโหนดได้ เช่นเดียวกับข้อมูลโครงสร้างกราฟเมื่อเรียนรู้การแสดงกราฟและรูปแบบพื้นฐาน ดังนั้น ในช่วงไม่กี่ปีที่ผ่านมา วิธีการที่ใช้ GNN ได้กำหนดมาตรฐานใหม่ให้กับเกณฑ์มาตรฐานของระบบผู้แนะนำจำนวนมาก ดูข้อมูลโดยละเอียดเพิ่มเติมในรายงานการวิจัยล่าสุด: การสำรวจที่ครอบคลุมเกี่ยวกับโครงข่ายประสาทกราฟ และ ระบบผู้แนะนำตามการเรียนรู้ด้วยกราฟ: การทบทวน.
ต่อไปนี้เป็นตัวอย่างที่มีชื่อเสียงอย่างหนึ่งของกรณีการใช้งานดังกล่าว นักวิจัยและวิศวกรของ Pinterest ได้ฝึกอบรม Graph Convolutional Neural Networks สำหรับ Web-Scale Recommender Systemsเรียกว่า PinSage โดยมีโหนด 18 พันล้านโหนดแทนพินและบอร์ด และ XNUMX พันล้านเอดจ์ PinSage สร้างการฝังคุณภาพสูงที่แสดงหมุด (บุ๊กมาร์กแบบภาพไปยังเนื้อหาออนไลน์) สามารถใช้สำหรับงานแนะนำดาวน์สตรีมได้หลากหลาย เช่น การค้นหาเพื่อนบ้านที่ใกล้ที่สุดในพื้นที่ฝังที่เรียนรู้สำหรับการค้นพบเนื้อหาและคำแนะนำ
ในโพสต์นี้ เราจะแนะนำคุณเกี่ยวกับวิธีใช้ GNN สำหรับกรณีการใช้งานที่แนะนำโดยระบุว่าเป็นปัญหาการคาดการณ์ลิงก์ เรายังจะแสดงให้เห็นด้วยว่า Neptune ML สามารถอำนวยความสะดวกในการใช้งานได้อย่างไร เรายังจัดให้ โค้ดตัวอย่างบน GitHub เพื่อฝึก GNN แรกของคุณด้วย Neptune ML และทำการอนุมานคำแนะนำบนกราฟสาธิตผ่านงานการทำนายลิงก์
เชื่อมโยงการคาดการณ์กับโครงข่ายประสาทกราฟ
เมื่อพิจารณาจากตัวอย่างโซเชียลเน็ตเวิร์กก่อนหน้านี้ เราอยากจะแนะนำเพื่อนใหม่ให้กับเฮนรี่ ทั้งเทอร์รี่และบิลจะเป็นผู้สมัครที่ดี เทอร์รี่มีเพื่อนที่เหมือนกันมากกว่า (แกรี่, อลิสแตร์) กับเฮนรี่ แต่ไม่มีความสนใจร่วมกัน ในขณะที่บิลแบ่งปันความสนใจร่วมกัน (ศิลปะ การ์ตูน เกม) กับเฮนรี่ แต่ไม่มีเพื่อนทั่วไป ตัวไหนจะแนะนำได้ดีกว่ากัน? เมื่อกำหนดกรอบว่าเป็นปัญหาการทำนายลิงก์ ภารกิจคือการกำหนดคะแนนให้กับลิงก์ที่เป็นไปได้ระหว่างโหนดทั้งสอง ยิ่งคะแนนลิงก์สูงเท่าใด คำแนะนำนี้ก็จะยิ่งมาบรรจบกันมากขึ้นเท่านั้น ด้วยการเรียนรู้โครงสร้างลิงก์ที่มีอยู่แล้วในกราฟ โมเดลการคาดการณ์ลิงก์สามารถสรุปการคาดการณ์ลิงก์ใหม่ที่ 'สมบูรณ์' กราฟได้
พารามิเตอร์ของฟังก์ชัน f
ที่คาดการณ์คะแนนลิงค์จะเรียนรู้ในระหว่างขั้นตอนการฝึกอบรม ตั้งแต่หน้าที่ f
ทำการคาดการณ์สำหรับสองโหนดในกราฟ เวกเตอร์คุณลักษณะที่เกี่ยวข้องกับโหนดมีความสำคัญต่อกระบวนการเรียนรู้ ในการทำนายคะแนนความเชื่อมโยงระหว่าง Henry และ Bill เรามีชุดข้อมูลดิบ (ศิลปะ การ์ตูน เกม) ที่สามารถเป็นตัวแทนของ Henry และ Bill เราแปลงสิ่งนี้พร้อมกับการเชื่อมต่อในกราฟโดยใช้เครือข่าย GNN เพื่อสร้างการแสดงใหม่ที่เรียกว่าการฝังโหนด นอกจากนี้เรายังสามารถเสริมหรือแทนที่คุณสมบัติดิบเริ่มต้นด้วยเวกเตอร์จากตารางค้นหาแบบฝังที่สามารถเรียนรู้ได้ในระหว่างกระบวนการฝึกอบรม ตามหลักการแล้ว คุณลักษณะที่ฝังไว้ของ Henry และ Bill ควรแสดงถึงความสนใจของพวกเขา เช่นเดียวกับข้อมูลทอพอโลยีจากกราฟ
GNN ทำงานอย่างไร
GNN แปลงคุณสมบัติของโหนดเริ่มต้นเป็นการฝังโหนดโดยใช้เทคนิคที่เรียกว่า ส่งข้อความ. กระบวนการส่งข้อความจะแสดงในรูปต่อไปนี้ ในตอนเริ่มต้น คุณลักษณะของโหนดหรือคุณลักษณะจะถูกแปลงเป็นแอตทริบิวต์ที่เป็นตัวเลข ในกรณีของเรา เราทำการเข้ารหัสแบบด่วนของคุณสมบัติหมวดหมู่ (ความสนใจของเฮนรี่: ศิลปะ, การ์ตูน, เกม) จากนั้น ชั้นแรกของ GNN จะรวมคุณลักษณะดิบของเพื่อนบ้าน (แกรี่และอลิสแตร์) ทั้งหมด (เป็นสีดำ) เพื่อสร้างคุณลักษณะชุดใหม่ (สีเหลือง) วิธีการทั่วไปคือการแปลงเชิงเส้นของคุณลักษณะใกล้เคียงทั้งหมด จากนั้นรวมเข้าด้วยกันผ่านผลรวมที่ทำให้เป็นมาตรฐาน และส่งผลลัพธ์ไปยังฟังก์ชันการเปิดใช้งานที่ไม่เป็นเชิงเส้น เช่น ReLU เพื่อสร้างชุดเวกเตอร์ใหม่ รูปต่อไปนี้แสดงให้เห็นว่าการส่งข้อความทำงานอย่างไรสำหรับ node เฮนรี่. H ซึ่งเป็นอัลกอริธึมการส่งข้อความ GNN จะคำนวณการแทนค่าสำหรับโหนดกราฟทั้งหมด สิ่งเหล่านี้ถูกใช้เป็นคุณสมบัติอินพุตสำหรับเลเยอร์ที่สองในภายหลัง
เลเยอร์ที่สองของ GNN ทำซ้ำขั้นตอนเดียวกัน ใช้คุณลักษณะที่คำนวณไว้ก่อนหน้านี้ (สีเหลือง) จากเลเยอร์แรกเป็นอินพุต รวมคุณลักษณะใหม่ที่ฝังตัวของ Gary และ Alistair เพื่อนบ้านทั้งหมด และสร้างเวกเตอร์คุณลักษณะชั้นที่สองสำหรับ Henry (สีส้ม) อย่างที่คุณเห็น ด้วยการทำซ้ำกลไกการส่งข้อความ เราได้ขยายการรวมคุณสมบัติไปยังเพื่อนบ้าน 2-hop ในภาพประกอบของเรา เราจำกัดตัวเองไว้ที่เพื่อนบ้านแบบ 2-hop แต่การขยายไปยังเพื่อนบ้านแบบ 3-hop สามารถทำได้ในลักษณะเดียวกันโดยเพิ่มเลเยอร์ GNN อีกชั้นหนึ่ง
การฝังครั้งสุดท้ายจาก Henry และ Bill (เป็นสีส้ม) ใช้สำหรับการคำนวณคะแนน ในระหว่างขั้นตอนการฝึกอบรม คะแนนการเชื่อมโยงถูกกำหนดเป็น 1 เมื่อขอบอยู่ระหว่างโหนดทั้งสอง (ตัวอย่างที่เป็นบวก) และเป็น 0 เมื่อไม่มีขอบระหว่างโหนดทั้งสอง (ตัวอย่างเชิงลบ) จากนั้นข้อผิดพลาดหรือการสูญเสียระหว่างคะแนนจริงกับการทำนาย f(e1,e2)
กลับขยายสู่ชั้นก่อนหน้าเพื่อปรับน้ำหนัก เมื่อการฝึกอบรมเสร็จสิ้น เราสามารถพึ่งพาเวกเตอร์คุณลักษณะที่ฝังไว้สำหรับแต่ละโหนดเพื่อคำนวณคะแนนการเชื่อมโยงด้วยฟังก์ชันของเรา f
.
ในตัวอย่างนี้ เราลดความซับซ้อนของงานการเรียนรู้บน a กราฟที่เป็นเนื้อเดียวกันโดยที่โหนดและขอบทั้งหมดเป็นประเภทเดียวกัน ตัวอย่างเช่น โหนดทั้งหมดในกราฟเป็นประเภท "ผู้คน" และขอบทั้งหมดเป็นประเภท "เพื่อนด้วย" อย่างไรก็ตาม อัลกอริธึมการเรียนรู้ยังสนับสนุนกราฟที่ต่างกันด้วยโหนดและประเภทขอบที่แตกต่างกัน เราสามารถขยายกรณีการใช้งานก่อนหน้านี้เพื่อแนะนำผลิตภัณฑ์ให้กับผู้ใช้ที่แตกต่างกันซึ่งมีการโต้ตอบและความสนใจที่คล้ายคลึงกัน ดูรายละเอียดเพิ่มเติมในรายงานการวิจัยนี้: การสร้างแบบจำลองข้อมูลเชิงสัมพันธ์ด้วยกราฟ Convolutional Networks.
ที่ AWS re:Invent 2020 เราขอแนะนำ อเมซอน ดาวเนปจูน MLซึ่งช่วยให้ลูกค้าของเราฝึกโมเดล ML เกี่ยวกับข้อมูลกราฟ โดยไม่จำเป็นต้องมีความเชี่ยวชาญด้าน ML อย่างลึกซึ้ง ในตัวอย่างนี้ ด้วยความช่วยเหลือของ Neptune ML เราจะแสดงวิธีสร้างระบบแนะนำของคุณเองบนข้อมูลกราฟ
ฝึก Graph Convolution Network ของคุณด้วย Amazon Neptune ML
Neptune ML ใช้เทคโนโลยีโครงข่ายกราฟนิวรัลเพื่อสร้าง ฝึก และปรับใช้โมเดล ML บนข้อมูลกราฟของคุณโดยอัตโนมัติ Neptune ML รองรับงานการทำนายกราฟทั่วไป เช่น การจำแนกและการถดถอยของโหนด การจัดประเภทขอบและการถดถอย และการทำนายลิงก์
ขับเคลื่อนโดย:
- อเมซอนเนปจูน: ฐานข้อมูลกราฟที่รวดเร็ว เชื่อถือได้ และมีการจัดการเต็มรูปแบบ ซึ่งได้รับการปรับให้เหมาะสมสำหรับการจัดเก็บความสัมพันธ์หลายพันล้านรายการและการสืบค้นกราฟด้วยเวลาแฝงเป็นมิลลิวินาที Amazon Neptune รองรับมาตรฐานเปิดสามมาตรฐานสำหรับการสร้างแอปพลิเคชันกราฟ: Apache TinkerPop Gremlin, RDF SPARQL และ openCypher เรียนรู้เพิ่มเติมที่ ภาพรวมของคุณสมบัติของ Amazon Neptune
- อเมซอน SageMaker: บริการที่มีการจัดการเต็มรูปแบบที่มอบความสามารถในการเตรียมสร้าง ฝึกฝน และปรับใช้โมเดล ML แก่นักพัฒนาและนักวิทยาศาสตร์ข้อมูลทุกคน
- ไลบรารีกราฟเชิงลึก (DGL): ก โอเพนซอร์สแพ็คเกจ Python ประสิทธิภาพสูงและปรับขนาดได้สำหรับ DL บนกราฟ นำเสนอข้อความพื้นฐานที่รวดเร็วและมีประสิทธิภาพในการส่งข้อความสำหรับการฝึกอบรม Graph Neural Networks Neptune ML ใช้ DGL เพื่อเลือกและฝึกโมเดล ML ที่ดีที่สุดสำหรับปริมาณงานของคุณโดยอัตโนมัติ ซึ่งจะทำให้คุณสามารถคาดการณ์ข้อมูลกราฟตาม ML ได้ในเวลาไม่กี่ชั่วโมง แทนที่จะเป็นสัปดาห์
วิธีที่ง่ายที่สุดในการเริ่มต้นใช้งาน Neptune ML คือการใช้ เทมเพลตเริ่มต้นอย่างรวดเร็วของ AWS CloudFormation. เทมเพลตจะติดตั้งส่วนประกอบที่จำเป็นทั้งหมด รวมถึงคลัสเตอร์ Neptune DB และตั้งค่าการกำหนดค่าเครือข่าย บทบาท IAM และอินสแตนซ์โน้ตบุ๊ก SageMaker ที่เกี่ยวข้องพร้อมตัวอย่างโน้ตบุ๊กที่เติมไว้ล่วงหน้าสำหรับ Neptune ML
รูปภาพต่อไปนี้แสดงขั้นตอนต่างๆ สำหรับ Neptune ML ในการฝึกระบบคำแนะนำแบบ GNN มาซูมเข้าในแต่ละขั้นตอนและสำรวจว่าเกี่ยวข้องกับอะไร:
-
การกำหนดค่าการส่งออกข้อมูล
ขั้นตอนแรกในกระบวนการ Neptune ML ของเราคือการส่งออกข้อมูลกราฟจากคลัสเตอร์ Neptune เราต้องระบุพารามิเตอร์และการกำหนดค่าแบบจำลองสำหรับงานส่งออกข้อมูล เราใช้โต๊ะทำงานของเนปจูนสำหรับการกำหนดค่าทั้งหมดและยกย่อง โต๊ะทำงานช่วยให้เราทำงานกับคลัสเตอร์ Neptune DB โดยใช้โน้ตบุ๊ก Jupyter ที่โฮสต์โดย Amazon SageMaker นอกจากนี้ยังมีคำสั่งเวทย์มนตร์จำนวนหนึ่งในโน้ตบุ๊กที่ช่วยประหยัดเวลาและความพยายามอย่างมาก นี่คือตัวอย่างพารามิเตอร์การส่งออกของเรา:
In export_params
เราต้องกำหนดค่าการตั้งค่าพื้นฐาน เช่น คลัสเตอร์เนปจูนและเอาต์พุต Amazon Simple Storage Service (S3) เส้นทางสำหรับการจัดเก็บข้อมูลที่ส่งออก การกำหนดค่าที่ระบุใน additionalParams
เป็นประเภทของงาน ML ที่จะดำเนินการ ในตัวอย่างนี้ การคาดคะเนลิงก์อาจใช้เป็นทางเลือกในการคาดคะเนประเภทขอบเฉพาะ (ผู้ใช้—เพื่อน—ผู้ใช้) หากไม่ได้ระบุประเภทเป้าหมายไว้ Neptune ML จะถือว่างานนี้เป็นการทำนายลิงก์ พารามิเตอร์ยังระบุรายละเอียดเกี่ยวกับข้อมูลที่จัดเก็บไว้ในกราฟของเรา และวิธีที่โมเดล ML จะตีความข้อมูลนั้น (เรามี "ผู้ใช้" เป็นโหนด และ "ความสนใจ" เป็นคุณสมบัติของโหนด)
ในการรันแต่ละขั้นตอนในกระบวนการสร้าง ML เพียงใช้คำสั่ง Neptune workbench ดิ โต๊ะทำงานของดาวเนปจูน มีเวทย์มนตร์สายและเวทย์มนตร์เซลล์ที่สามารถช่วยคุณประหยัดเวลาได้มากในการจัดการขั้นตอนเหล่านี้ ในการรันการเอ็กซ์พอร์ตข้อมูล ให้ใช้คำสั่ง Neptune workbench: %neptune_ml export start
เมื่องานส่งออกเสร็จสิ้น เราจะส่งออกกราฟดาวเนปจูนเป็นรูปแบบ CSV และจัดเก็บไว้ในบัคเก็ต S3 จะมีไฟล์สองประเภท: nodes.csv
และ edges.csv
. ไฟล์ชื่อ training-data-configuration.json
จะถูกสร้างขึ้นด้วยซึ่งมีการกำหนดค่าที่จำเป็นสำหรับ Neptune ML เพื่อทำการฝึกโมเดล
ดู ส่งออกข้อมูลจากดาวเนปจูนสำหรับดาวเนปจูน ML สำหรับข้อมูลเพิ่มเติม
-
การประมวลผลข้อมูลล่วงหน้า
Neptune ML ทำการสกัดและเข้ารหัสคุณสมบัติโดยเป็นส่วนหนึ่งของขั้นตอนการประมวลผลข้อมูล ประเภททั่วไปของการประมวลผลล่วงหน้าของพร็อพเพอร์ตี้ ได้แก่ การเข้ารหัสคุณสมบัติหมวดหมู่ผ่านการเข้ารหัสแบบด่วน ฟีเจอร์ตัวเลขในถัง หรือใช้ word2vec เพื่อเข้ารหัสคุณสมบัติสตริงหรือค่าคุณสมบัติข้อความรูปแบบอิสระอื่นๆ
ในตัวอย่างของเรา เราจะใช้คุณสมบัติ "ความสนใจ" Neptune ML เข้ารหัสค่าเป็นหลายหมวดหมู่ อย่างไรก็ตาม หากค่าตามหมวดหมู่ซับซ้อน (มากกว่าสามคำต่อโหนด) Neptune ML จะสรุปประเภทคุณสมบัติเป็นข้อความและใช้การเข้ารหัส text_word2vec
ในการรันการประมวลผลข้อมูลล่วงหน้า ให้ใช้คำสั่งเวทย์มนตร์ของโน้ตบุ๊ก Neptune ต่อไปนี้: %neptune_ml dataprocessing start
เมื่อสิ้นสุดขั้นตอนนี้ กราฟ DGL จะถูกสร้างขึ้นจากชุดข้อมูลที่ส่งออกเพื่อใช้ในขั้นตอนการฝึกแบบจำลอง Neptune ML จะปรับแต่งโมเดลโดยอัตโนมัติด้วยงาน Hyperparameter Optimization Tuning ที่กำหนดไว้ใน training-data-configuration.json
. เราสามารถดาวน์โหลดและแก้ไขไฟล์นี้เพื่อปรับแต่งไฮเปอร์พารามิเตอร์ของโมเดล เช่น batch-size, num-hidden, num-epochs, dropout เป็นต้น นี่คือ ตัวอย่างไฟล์ configuration.json
ดู การประมวลผลข้อมูลกราฟที่ส่งออกจากดาวเนปจูนสำหรับการฝึก สำหรับข้อมูลเพิ่มเติม
-
การฝึกโมเดล
ขั้นตอนต่อไปคือการฝึกอบรมอัตโนมัติของโมเดล GNN การฝึกแบบจำลองจะทำในสองขั้นตอน ขั้นตอนแรกใช้งาน SageMaker Processing เพื่อสร้างกลยุทธ์การฝึกโมเดล นี่คือชุดคอนฟิกูเรชันที่ระบุประเภทของโมเดลและช่วงไฮเปอร์พารามิเตอร์ของโมเดลที่จะใช้สำหรับการฝึกโมเดล
จากนั้น งานปรับแต่งไฮเปอร์พารามิเตอร์ของ SageMaker จะเปิดตัว ดิ SageMaker Hyperparameter Tuning Optimization งาน เรียกใช้การทดลองใช้แบบจำลองการฝึกอบรมแบบจำลองจำนวนที่กำหนดไว้ล่วงหน้ากับข้อมูลที่ประมวลผล ลองใช้ชุดค่าผสมไฮเปอร์พารามิเตอร์ที่แตกต่างกันตาม model-hpo-configuration.json
ไฟล์ และจัดเก็บสิ่งประดิษฐ์ของโมเดลที่สร้างโดยการฝึกอบรมในตำแหน่งเอาต์พุต Amazon S3
เพื่อเริ่มขั้นตอนการฝึกอบรม คุณสามารถใช้ %neptune_ml training start
คำสั่ง
เมื่องานการฝึกอบรมทั้งหมดเสร็จสิ้น งานปรับแต่งไฮเปอร์พารามิเตอร์จะบันทึกสิ่งประดิษฐ์จากโมเดลที่มีประสิทธิภาพดีที่สุด ซึ่งจะใช้สำหรับอนุมาน
เมื่อสิ้นสุดการฝึกอบรม Neptune ML จะสั่งให้ SageMaker บันทึกโมเดลที่ได้รับการฝึก การฝังดิบที่คำนวณสำหรับโหนดและขอบ และข้อมูลการจับคู่ระหว่างส่วนฝังและดัชนีโหนด
ดู ฝึกโมเดลโดยใช้ Neptune ML สำหรับข้อมูลเพิ่มเติม
-
สร้างจุดสิ้นสุดการอนุมานใน Amazon SageMaker
เมื่อเรียนรู้การแสดงกราฟแล้ว เราก็ปรับใช้โมเดลที่เรียนรู้ที่อยู่เบื้องหลังปลายทางเพื่อดำเนินการขออนุมานได้ อินพุตของโมเดลจะเป็น User ที่เราจำเป็นต้องสร้างคำแนะนำของเพื่อนพร้อมกับประเภท Edge และผลลัพธ์จะเป็นรายชื่อเพื่อนที่แนะนำสำหรับผู้ใช้รายนั้น
ในการปรับใช้โมเดลกับอินสแตนซ์ปลายทาง SageMaker ให้ใช้คำสั่ง %neptune_ml endpoint create
คำสั่ง
-
ค้นหาโมเดล ML โดยใช้ Gremlin
เมื่อจุดสิ้นสุดพร้อมแล้ว เราสามารถใช้สำหรับการค้นหาการอนุมานกราฟได้ Neptune ML รองรับการสืบค้นการอนุมานกราฟใน Gremlin หรือ SPARQL ในตัวอย่างของเรา ตอนนี้เราสามารถตรวจสอบคำแนะนำเพื่อนด้วย Neptune ML บน User “Henry” ต้องใช้รูปแบบเกือบเดียวกันเพื่อข้ามผ่านขอบ และแสดงรายชื่อผู้ใช้รายอื่นที่เชื่อมต่อกับ Henry ผ่านการเชื่อมต่อ FRIEND
Neptune#ml.prediction
ส่งคืนการเชื่อมต่อที่กำหนดโดยการคาดการณ์ของ Neptune ML โดยใช้แบบจำลองที่เราเพิ่งฝึกบนกราฟโซเชียล บิลถูกส่งคืนตามที่เราคาดไว้
ต่อไปนี้คือข้อความค้นหาการคาดคะเนตัวอย่างอื่นที่ใช้ในการทำนายผู้ใช้แปดอันดับแรกที่มีแนวโน้มว่าจะเชื่อมต่อกับ Henry มากที่สุด:
ผลลัพธ์ถูกจัดลำดับจากการเชื่อมต่อที่แข็งแกร่งไปยังจุดอ่อน โดยที่ link Henry — FRIEND — Colin and Henry — FRIEND — Terry
ยังเสนอ ข้อเสนอนี้ใช้ ML แบบกราฟซึ่งสามารถสำรวจรูปแบบการโต้ตอบที่ซับซ้อนบนกราฟได้
ดู แบบสอบถามการอนุมาน Gremlin ในดาวเนปจูน ML สำหรับข้อมูลเพิ่มเติม
โมเดลแปลงร่างหรือฝึกใหม่เมื่อข้อมูลกราฟเปลี่ยนแปลง
อีกคำถามหนึ่งที่คุณอาจถามคือ ถ้าโซเชียลเน็ตเวิร์กของฉันเปลี่ยนไป หรือถ้าฉันต้องการให้คำแนะนำสำหรับผู้ใช้ที่เพิ่มเข้ามาใหม่ล่ะ ในสถานการณ์เหล่านี้ ซึ่งคุณมีการเปลี่ยนแปลงกราฟอย่างต่อเนื่อง คุณอาจต้องอัปเดตการคาดคะเน ML ด้วยข้อมูลกราฟใหม่ล่าสุด สิ่งประดิษฐ์ของแบบจำลองที่สร้างขึ้นหลังการฝึกจะเชื่อมโยงโดยตรงกับกราฟการฝึก ซึ่งหมายความว่าต้องอัปเดตจุดสิ้นสุดการอนุมานเมื่อเอนทิตีในกราฟการฝึกอบรมเดิมเปลี่ยนแปลง
อย่างไรก็ตาม คุณไม่จำเป็นต้องฝึกแบบจำลองใหม่ทั้งหมดเพื่อทำการคาดการณ์บนกราฟที่อัปเดต ด้วยเวิร์กโฟลว์การอนุมานแบบจำลองที่เพิ่มขึ้น คุณเพียงแค่ส่งออกข้อมูล Neptune DB ดำเนินการประมวลผลข้อมูลล่วงหน้าที่เพิ่มขึ้น เรียกใช้งานการแปลงแบบแบตช์แบบจำลอง แล้วอัปเดตปลายทางการอนุมาน ขั้นตอนการแปลงแบบจำลองใช้แบบจำลองที่ได้รับการฝึกอบรมจากเวิร์กโฟลว์หลักและผลลัพธ์ของขั้นตอนการประมวลผลข้อมูลล่วงหน้าที่เพิ่มขึ้นเป็นอินพุต จากนั้นจะส่งออกสิ่งประดิษฐ์โมเดลใหม่เพื่อใช้สำหรับการอนุมาน สิ่งประดิษฐ์ของโมเดลใหม่นี้สร้างขึ้นจากข้อมูลกราฟที่เป็นปัจจุบัน
จุดสนใจพิเศษอย่างหนึ่งที่นี่คือคำสั่งขั้นตอนการแปลงโมเดล สามารถคำนวณสิ่งประดิษฐ์ของแบบจำลองบนข้อมูลกราฟที่ไม่ได้ใช้สำหรับการฝึกแบบจำลอง การฝังโหนดจะถูกคำนวณใหม่ และการฝังโหนดที่มีอยู่จะถูกแทนที่ Neptune ML ใช้ตัวเข้ารหัส GNN ที่เรียนรู้จากโมเดลที่ผ่านการฝึกอบรมก่อนหน้านี้กับโหนดข้อมูลกราฟใหม่พร้อมคุณสมบัติใหม่ ดังนั้น ข้อมูลกราฟใหม่จะต้องได้รับการประมวลผลโดยใช้การเข้ารหัสคุณสมบัติเดียวกัน และต้องเป็นไปตามสคีมากราฟเดียวกันกับข้อมูลกราฟดั้งเดิม ดูรายละเอียดการใช้งาน Neptune ML เพิ่มเติมได้ที่ การสร้างแบบจำลองสิ่งประดิษฐ์ใหม่.
นอกจากนี้ คุณสามารถฝึกโมเดลใหม่ทั้งหมดได้หากกราฟเปลี่ยนแปลงอย่างมาก หรือหากโมเดลที่ฝึกก่อนหน้านี้ไม่สามารถแสดงการโต้ตอบพื้นฐานได้อย่างแม่นยำอีกต่อไป ในกรณีนี้ การใช้พารามิเตอร์แบบจำลองที่เรียนรู้ซ้ำบนกราฟใหม่ไม่สามารถรับประกันประสิทธิภาพของแบบจำลองที่คล้ายกันได้ คุณต้องฝึกโมเดลของคุณใหม่บนกราฟใหม่ เพื่อเร่งการค้นหาไฮเปอร์พารามิเตอร์ Neptune ML สามารถใช้ประโยชน์จากข้อมูลจากงานการฝึกแบบจำลองก่อนหน้าด้วยการเริ่มอุ่นเครื่อง: ผลลัพธ์ของงานการฝึกอบรมก่อนหน้าจะถูกนำมาใช้เพื่อเลือกชุดค่าผสมที่ดีของไฮเปอร์พารามิเตอร์เพื่อค้นหางานปรับแต่งใหม่
ดู เวิร์กโฟลว์สำหรับการจัดการข้อมูลกราฟที่กำลังพัฒนา .
สรุป
ในโพสต์นี้ คุณได้เห็นแล้วว่า Neptune ML และ GNN สามารถช่วยคุณให้คำแนะนำเกี่ยวกับข้อมูลกราฟโดยใช้งานทำนายลิงก์ได้อย่างไร โดยการรวมข้อมูลจากรูปแบบการโต้ตอบที่ซับซ้อนในกราฟ
การคาดคะเนลิงก์เป็นวิธีหนึ่งในการนำระบบคำแนะนำไปใช้บนกราฟ คุณสามารถสร้างผู้แนะนำของคุณได้หลายวิธี คุณสามารถใช้การฝังที่เรียนรู้ระหว่างการฝึกทำนายลิงก์เพื่อจัดกลุ่มโหนดออกเป็นส่วนต่างๆ ในลักษณะที่ไม่ได้รับการดูแล และแนะนำรายการให้กับโหนดที่อยู่ในกลุ่มเดียวกัน นอกจากนี้ คุณสามารถรับการฝังและป้อนลงในระบบคำแนะนำตามความคล้ายคลึงดาวน์สตรีมเป็นคุณลักษณะอินพุต ตอนนี้คุณสมบัติการป้อนข้อมูลเพิ่มเติมนี้ยังเข้ารหัสข้อมูลเชิงความหมายที่ได้มาจากกราฟ และสามารถปรับปรุงความแม่นยำโดยรวมของระบบได้อย่างมีนัยสำคัญ เรียนรู้เพิ่มเติมเกี่ยวกับ Amazon Neptune ML โดยไปที่ เว็บไซต์ หรือถามคำถามในความคิดเห็นได้เลย!
เกี่ยวกับผู้เขียน
เหยียนเว่ย ชุยปริญญาเอก เป็นสถาปนิกโซลูชัน Machine Learning Specialist Solutions ที่ AWS เขาเริ่มการวิจัยแมชชีนเลิร์นนิงที่ IRISA (สถาบันวิจัยวิทยาการคอมพิวเตอร์และระบบสุ่ม) และมีประสบการณ์หลายปีในการสร้างแอปพลิเคชันทางอุตสาหกรรมที่ขับเคลื่อนด้วยปัญญาประดิษฐ์ในด้านคอมพิวเตอร์วิทัศน์ การประมวลผลภาษาธรรมชาติ และการทำนายพฤติกรรมผู้ใช้ออนไลน์ ที่ AWS เขาแบ่งปันความเชี่ยวชาญด้านโดเมนและช่วยให้ลูกค้าปลดล็อกศักยภาพทางธุรกิจ และขับเคลื่อนผลลัพธ์ที่นำไปใช้งานได้จริงด้วยแมชชีนเลิร์นนิงในวงกว้าง นอกงานเขาชอบอ่านหนังสือและท่องเที่ยว
จะ Badr เป็นผู้เชี่ยวชาญด้าน AI/ML หลัก SA ซึ่งทำงานเป็นส่วนหนึ่งของทีม Amazon Machine Learning ทั่วโลก Will หลงใหลในการใช้เทคโนโลยีในรูปแบบใหม่เพื่อสร้างผลกระทบเชิงบวกต่อชุมชน ในเวลาว่าง เขาชอบไปดำน้ำ เล่นฟุตบอล และสำรวจหมู่เกาะแปซิฟิก
- '
- "
- 100
- 2020
- 7
- เกี่ยวกับเรา
- ตาม
- ลงชื่อเข้าใช้
- นอกจากนี้
- เพิ่มเติม
- ขั้นตอนวิธี
- อัลกอริทึม
- ทั้งหมด
- แล้ว
- อเมซอน
- อเมซอน แมชชีนเลิร์นนิง
- อเมซอน SageMaker
- อาปาเช่
- การใช้งาน
- เทียม
- ปัญญาประดิษฐ์
- ศิลปะ
- อัตโนมัติ
- AWS
- AWS re:ประดิษฐ์
- การเริ่มต้น
- ที่ดีที่สุด
- บิล
- พันล้าน
- Black
- สร้าง
- การก่อสร้าง
- ธุรกิจ
- กรณี
- ความท้าทาย
- การจัดหมวดหมู่
- รหัส
- ร่วมกัน
- ชุมชน
- ซับซ้อน
- คำนวณ
- วิทยาการคอมพิวเตอร์
- วิสัยทัศน์คอมพิวเตอร์
- การคำนวณ
- องค์ประกอบ
- การเชื่อมต่อ
- การเชื่อมต่อ
- ปลอบใจ
- เนื้อหา
- ลู่
- ได้
- ลูกค้า
- ข้อมูล
- นักวิทยาศาสตร์ข้อมูล
- การจัดเก็บข้อมูล
- ฐานข้อมูล
- จัดการ
- การเรียนรู้ลึก ๆ
- ผู้พัฒนา
- ต่าง
- การค้นพบ
- ระยะทาง
- อีคอมเมิร์ซ
- ขอบ
- ปลายทาง
- ชั้นเยี่ยม
- วิศวกร
- ฯลฯ
- ตัวอย่าง
- ประสบการณ์
- การสำรวจ
- ส่งออก
- การสกัด
- FAST
- ลักษณะ
- คุณสมบัติ
- รูป
- ชื่อจริง
- โฟกัส
- ฟอร์ม
- รูป
- กรอบ
- ฟรี
- มิตรภาพ
- ฟังก์ชัน
- เกม
- สร้าง
- เหตุการณ์ที่
- ดี
- กราฟโครงข่ายประสาท
- ยิ่งใหญ่
- การจัดการ
- ช่วย
- จะช่วยให้
- โปรดคลิกที่นี่เพื่ออ่านรายละเอียดเพิ่มเติม
- สรุป ความน่าเชื่อถือของ Olymp Trade?
- ทำอย่างไร
- HTTPS
- AMI
- ส่งผลกระทบ
- การดำเนินการ
- การปรับปรุง
- รวมทั้ง
- เพิ่ม
- เป็นรายบุคคล
- อุตสาหกรรม
- ข้อมูล
- นวัตกรรม
- Intelligence
- ปฏิสัมพันธ์
- ผลประโยชน์
- IT
- การสัมภาษณ์
- งาน
- ภาษา
- ภาษา
- เรียนรู้
- ได้เรียนรู้
- การเรียนรู้
- เลฟเวอเรจ
- ห้องสมุด
- Line
- LINK
- รายการ
- รายการ
- ที่ตั้ง
- ที่ต้องการหา
- ค้นหา
- เรียนรู้เครื่อง
- สมาชิก
- มิลลิวินาที
- ML
- แบบ
- ดนตรี
- ภาษาธรรมชาติ
- ประมวลผลภาษาธรรมชาติ
- จำเป็น
- เพื่อนบ้าน
- เครือข่าย
- เครือข่าย
- ประสาท
- เครือข่ายประสาท
- เครือข่ายประสาทเทียม
- คุณสมบัติใหม่
- โหนด
- โน๊ตบุ๊ค
- ออนไลน์
- เปิด
- อื่นๆ
- แปซิฟิก
- กระดาษ
- คน
- การปฏิบัติ
- ระยะ
- แพลตฟอร์ม
- เล่น
- ความแม่นยำ
- คำทำนาย
- การคาดการณ์
- นำเสนอ
- หลัก
- ปัญหา
- กระบวนการ
- ผลิตภัณฑ์
- โปรไฟล์
- ส่งเสริม
- คุณสมบัติ
- เสนอ
- ให้
- ให้
- ซื้อ
- หลาม
- คำถาม
- พิสัย
- ดิบ
- ข้อมูลดิบ
- RE
- การอ่าน
- ถดถอย
- ความสัมพันธ์
- แทนที่
- การวิจัย
- ผลสอบ
- การอบรมขึ้นใหม่
- รับคืน
- วิ่ง
- sagemaker
- ขนาด
- วิทยาศาสตร์
- ค้นหา
- ชุด
- Share
- หุ้น
- คล้ายคลึงกัน
- ง่าย
- เล็ก
- ฟุตบอล
- สังคม
- กราฟสังคม
- เครือข่ายทางสังคม
- เครือข่ายทางสังคม
- โซลูชัน
- ช่องว่าง
- กีฬา
- ระยะ
- มาตรฐาน
- เริ่มต้น
- ข้อความที่เริ่ม
- การเก็บรักษา
- ร้านค้า
- กลยุทธ์
- เสริม
- รองรับ
- การสำรวจ
- ระบบ
- ระบบ
- เป้า
- เทคโนโลยี
- เทคโนโลยี
- กราฟ
- ตลอด
- เวลา
- ด้านบน
- การฝึกอบรม
- แปลง
- การแปลง
- บันทึก
- us
- ผู้ใช้
- ความคุ้มค่า
- วิสัยทัศน์
- อะไร
- WHO
- อย่างกว้างขวาง
- วิกิพีเดีย
- ไม่มี
- คำ
- งาน
- เวิร์กโฟลว์
- โรงงาน
- จะ
- ปี
- ซูมเข้า