พื้นที่เก็บข้อมูลนี้สร้างจากการทำงานของ การวิเคราะห์ข้อมูลเชิงสำรวจ (EDA) ในข้อมูลการตรวจสอบของ Amazon (2018) โดยใช้ MongoDB & Pyspark และรวมถึงเว็บแอปพลิเคชันที่เชื่อมต่อกับระบบแนะนำผลิตภัณฑ์ที่พัฒนาขึ้นด้วยชุดข้อมูลการตรวจสอบ Amazon (2018) Kafka ซึ่งเป็นส่วนหนึ่งของโครงการสุดท้ายสำหรับหลักสูตรพื้นฐานของ Big Data Analytics (DS2004)
ระบบแนะนำผลิตภัณฑ์เป็นประเภทของซอฟต์แวร์ที่ใช้การวิเคราะห์ข้อมูลและเทคนิคการเรียนรู้ของเครื่องเพื่อแนะนำผลิตภัณฑ์ให้กับลูกค้าตามความสนใจการซื้อที่ผ่านมาและประวัติการเรียกดู ระบบเหล่านี้สามารถพบได้บนเว็บไซต์อีคอมเมิร์ซเช่น Amazon.com และได้รับการออกแบบมาเพื่อให้คำแนะนำส่วนบุคคลแก่ผู้ใช้แบบเรียลไทม์ ระบบแนะนำทำงานโดยการวิเคราะห์ข้อมูลจำนวนมหาศาลเช่นพฤติกรรมผู้ใช้คุณลักษณะผลิตภัณฑ์และประวัติการทำธุรกรรม จากข้อมูลนี้ระบบจะสร้างคำแนะนำที่เกี่ยวข้องกับความสนใจและการตั้งค่าของผู้ใช้ ตัวอย่างเช่นหากผู้ใช้ซื้อหนังสือก่อนหน้านี้ในหัวข้อเฉพาะระบบแนะนำอาจแนะนำหนังสือเล่มอื่น ๆ ในหัวข้อเดียวกันหรือหัวข้อที่เกี่ยวข้อง
ชุดข้อมูลของ Amazon Review (2018) สามารถใช้เพื่อฝึกอบรมระบบแนะนำผลิตภัณฑ์ที่ให้คำแนะนำผลิตภัณฑ์ส่วนบุคคลแก่ผู้ใช้ตามประวัติการซื้อของพวกเขารวมถึงระดับความพึงพอใจของผู้ใช้รายอื่นที่ได้ตรวจสอบและให้คะแนนผลิตภัณฑ์บนแพลตฟอร์ม อย่างไรก็ตามเนื่องจากชุดข้อมูลมีขนาดใหญ่จึงเป็นสิ่งสำคัญในการวิเคราะห์และเลือกคุณสมบัติที่เกี่ยวข้องอย่างระมัดระวังซึ่งจะช่วยให้ระบบแนะนำผลิตภัณฑ์มีประสิทธิภาพเพื่อหลีกเลี่ยงทั้งการขยายตัวมากเกินไปและต่ำกว่ารูปแบบการเรียนรู้ของเครื่อง
เช่นเดียวกับวิธีการของเราในการดำเนินการวิเคราะห์ข้อมูลเชิงสำรวจ (EDA) เกี่ยวกับชุดข้อมูลการตรวจสอบของ Amazon (2018) ชุด ข้อมูลการตรวจสอบ Amazon (2018) การวิเคราะห์ IPYNB, 1-38) เราใช้วิธีการทางสถิติเชิงอนุมานสำหรับการฝึกอบรมรูปแบบคำแนะนำผลิตภัณฑ์ของเรา เหตุผลในการใช้ตัวอย่างเพื่อทำการอนุมานเกี่ยวกับประชากรทั้งหมดคือการลดภาระการคำนวณที่เกี่ยวข้องกับการประมวลผลชุดข้อมูลที่สมบูรณ์ซึ่งมักจะใช้งานไม่ได้สำหรับเครื่องเดียว ในขณะที่การเรียนรู้ลึกมักจะต้องใช้ข้อมูลจำนวนมากการเรียนรู้ของเครื่องสามารถใช้อย่างมีประสิทธิภาพในการพัฒนาวิธีการฝึกอบรมที่แข็งแกร่งแม้จะมีชุดข้อมูลขนาดเล็ก สิ่งนี้มีประโยชน์อย่างยิ่งสำหรับการวิจัยที่ขับเคลื่อนด้วยสมมติฐานซึ่งเป็นวัตถุประสงค์หลักของเรากับระบบแนะนำผลิตภัณฑ์ (Vabalas et al., 2019) ไม่ว่าในกรณีใด ๆ สิ่งสำคัญคือต้องทราบว่าชุดข้อมูลใด ๆ เป็นส่วนย่อยของประชากรที่มีขนาดใหญ่ขึ้น
เพื่อให้แน่ใจว่าความถูกต้องของผลลัพธ์ของเราเป็นสิ่งสำคัญในการวิเคราะห์อย่างระมัดระวังและลดอคติที่อาจเกิดขึ้นในข้อมูล สิ่งนี้มีความสำคัญอย่างยิ่งในการเรียนรู้ของเครื่องซึ่งมีความอ่อนไหวต่ออคติที่อาจส่งผลให้เกิดการประมาณประสิทธิภาพที่เบ้ เพื่อแก้ไขปัญหานี้เราจะใช้วิธีการสุ่มตัวอย่างแบบแบ่งชั้นที่เราได้กล่าวถึงก่อนหน้านี้เพื่อแยกตัวอย่างตัวแทนของ 10,000,000 บันทึกจากประชากรในขณะที่ยังคงการกระจายผลิตภัณฑ์เดียวกันกับในชุดข้อมูลดั้งเดิม (compress.py, 1-61) เนื่องจากขนาดตัวอย่างค่อนข้างใหญ่เราจึงบีบอัดเป็นรูปแบบไฟล์ Apache Parquet ซึ่งจะช่วยลดขนาดของชุดข้อมูลได้มากกว่า 90%
สลับกันน้อยที่สุดกำลังสอง (ALS) เป็นอัลกอริทึมการกรองความร่วมมือที่ใช้สำหรับการพัฒนาระบบแนะนำผลิตภัณฑ์ อัลกอริทึมมีจุดมุ่งหมายเพื่อเรียนรู้ปัจจัยแฝงหรือซ่อนเร้นที่มีอิทธิพลต่อการโต้ตอบของผู้ใช้รายการโดยการย่อยสลายเมทริกซ์การจัดอันดับผู้ใช้รายการเป็นเมทริกซ์ระดับต่ำสองเมทริกซ์ที่เป็นตัวแทนของปัจจัยผู้ใช้และรายการแฝง
สลับกันอย่างน้อยกำลังสอง (ALS) ทำงานซ้ำ ๆ สลับกันระหว่างการแก้ไขปัจจัยแฝงหนึ่งชุดและการแก้ปัญหาอื่น ๆ โดยใช้อัลกอริทึมการเพิ่มประสิทธิภาพแบบสี่เหลี่ยมจัตุรัสน้อยที่สุด โดยเฉพาะอย่างยิ่งในการทำซ้ำแต่ละอัลกอริทึมจะแก้ไขปัจจัยแฝงของรายการและแก้ปัญหาสำหรับปัจจัยแฝงของผู้ใช้โดยใช้การเพิ่มประสิทธิภาพกำลังสองน้อยที่สุดจากนั้นแก้ไขปัจจัยแฝงของผู้ใช้และแก้ปัญหาสำหรับปัจจัยแฝงรายการโดยใช้การเพิ่มประสิทธิภาพแบบสองน้อยที่สุด
สลับกันอย่างน้อยกำลังสอง (ALS) มีข้อได้เปรียบหลายประการสำหรับระบบแนะนำผลิตภัณฑ์ มันสามารถปรับขนาดได้และมีประสิทธิภาพในการคำนวณโดยเฉพาะอย่างยิ่งสำหรับชุดข้อมูลขนาดใหญ่และกระจัดกระจาย มันสามารถจัดการข้อมูลข้อเสนอแนะโดยนัยที่การโต้ตอบของผู้ใช้รายการเป็นที่รู้จักกันว่ามีอยู่หรือไม่มีอยู่เท่านั้นและไม่ใช่การให้คะแนนเฉพาะของพวกเขา นอกจากนี้ยังสามารถจัดการข้อมูลที่ขาดหายไปซึ่งผู้ใช้ทุกคนไม่ได้ให้คะแนนรายการทั้งหมด นอกจากนี้การสลับกำลังสองน้อยที่สุด (ALS) สามารถให้คำแนะนำรายการแบบเรียลไทม์ทำให้เหมาะสำหรับระบบแนะนำออนไลน์
Product Recommendation Model.ipynb - มีการใช้งาน (MLLIB) ของระบบแนะนำผลิตภัณฑ์ที่ผ่านการฝึกอบรมและทดสอบในชุดข้อมูล Amazon Review Data (2018)srcdata.py - ซอร์สโค้ดสำหรับการจัดเก็บชุดข้อมูลจากไฟล์ Notation Object JavaScript (JSON) ลงในฐานข้อมูล MongoDB เป็นคอลเลกชันsrccompress.py - ซอร์สโค้ดสำหรับการแยกตัวอย่างสุ่มแบบแบ่งชั้นของขนาดตัวอย่างที่ระบุจากชุดข้อมูลที่เก็บไว้ในฐานข้อมูล MongoDB เป็นคอลเลกชันและจัดเก็บเป็นไฟล์ Apache Parquetsrcvalidate.py - ซอร์สโค้ดเพื่อตรวจสอบความถูกต้องและการทำงานของระบบแนะนำผลิตภัณฑ์ที่ผ่านการฝึกอบรมโดยใช้ตัวอย่างที่ใช้งานได้จริงmodelproduct_recommendation_model - ไดเรกทอรีที่มีรูปแบบการเรียนรู้ของเครื่องที่ผ่านการฝึกอบรมสำหรับระบบแนะนำผลิตภัณฑ์appapplication.py - แหล่งที่มาสำหรับเว็บแอปพลิเคชัน (Flask) ที่เชื่อมโยงกับระบบแนะนำผลิตภัณฑ์ผ่านคลัสเตอร์ Apache Kafkaapprecommendation.py - ซอร์สโค้ดสำหรับคลัสเตอร์ Apache Kafka ที่เชื่อมต่อกับรูปแบบการเรียนรู้ของเครื่องที่ผ่านการฝึกอบรมสำหรับระบบแนะนำผลิตภัณฑ์ที่เปิดใช้งานการสร้างคำแนะนำผลิตภัณฑ์templates - มีซอร์สโค้ดสำหรับหน้าเว็บ ( login.html , dashboard.html , review.html , loading.html และ recommendation.html ) แสดงผลโดยเว็บแอปพลิเคชัน (Flask)static - มีไอคอนทั้งหมดและองค์ประกอบภาพที่ใช้โดยเว็บแอปพลิเคชัน (Flask).hintrc - ไฟล์การกำหนดค่าเพื่อปรับแต่งพฤติกรรมของ Eslint โดยการระบุการตั้งค่าและกฎเฉพาะ All_Amazon_Review.json.gz จากเว็บไซต์คอลเลกชันข้อมูลการตรวจสอบของ Amazon (2018)srcdata.py เพื่อบันทึกชุดข้อมูลจากไฟล์ Notation Object JavaScript (JSON) ลงในฐานข้อมูล MongoDB เป็นคอลเลกชัน (ตรวจสอบให้แน่ใจว่า MongoDB ได้รับการตั้งค่าและเรียกใช้แล้ว)srccompress.py เพื่อแยกตัวอย่างสุ่มแบบแบ่งชั้นของขนาดที่ระบุจากชุดข้อมูลที่เก็บไว้ใน MongoDB และบันทึกตัวอย่างเป็นไฟล์ Apache ParquetProduct Recommendation Model.ipynb ไฟล์ IPYNB (1-16) เพื่อแปลงคอลเลกชันและเก็บไว้ใน MongoDB เพื่อการเข้าถึงถาวร (คุณไม่จำเป็นต้องเรียกใช้ไฟล์ทั้งหมด)apprecommendation.py ด้านข้าง (ตรวจสอบให้แน่ใจว่ามีการจัดตั้งคลัสเตอร์ Apache Kafka สำเร็จแล้วและมีการดำเนินงานโดยมีสองหัวข้อที่มีชื่อว่า ข้อมูลรับรอง และ คำแนะนำ )appapplication.py และเปิดลิงก์ที่ให้ไปยังพอร์ตโฮสต์/dashboard คลิกที่ปุ่ม ตรวจสอบ และส่งเนื้อหาใด ๆ/loading ในขณะที่คำแนะนำผลิตภัณฑ์ถูกสร้างขึ้น/recommendation เพื่อดูคำแนะนำผลิตภัณฑ์ที่สร้างขึ้น ไฟล์ซอร์สโค้ดถูกเขียนขึ้นเป็นพิเศษสำหรับ MacOS Ventura และอาจต้องมีการแก้ไขเพื่อให้แน่ใจว่าการดำเนินการที่เหมาะสมในระบบปฏิบัติการอื่น ๆ
โครงการนี้มีอยู่ขอบคุณคนพิเศษที่มีส่วนร่วม