อัลกอริทึมสำหรับการสร้างข้อมูลที่ไม่มีอยู่ตั้งแต่แรก

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

นอกเหนือจากการประมวลผลข้อมูลล่วงหน้า

เพื่อความง่าย เราจะพิจารณาสินค้าที่ขายดีที่สุด 20 รายการในปี 2554 ในช่วง 150 วัน การยกเลิกคำสั่งซื้อที่ยังไม่ได้ดำเนินการจะถูกยกเลิกและไม่ถือว่ามีส่วนทำให้เกิดความต้องการ นอกจากนี้ เราจะไม่คำนึงถึงสินค้าใดๆ ที่เพิ่งเปิดตัวเมื่อเร็วๆ นี้ เนื่องจากข้อมูลการขายของสินค้าเหล่านั้นจะไม่สมบูรณ์มากนัก

The data has 541909 rows and 8 columns.

การแสดงภาพข้อมูล

เมื่อพิจารณาจากลอการิทึมธรรมชาติของยอดขายสำหรับแต่ละผลิตภัณฑ์ ซึ่งต่อไปนี้จะเรียกว่า "ยอดขายบันทึก" เราจะเห็นรูปแบบที่สำคัญบางประการ

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

เราจะเห็นว่าการขายบันทึกมีข้อผิดพลาดหรือความเสียหายไม่บ่อยนัก (เช่น ผลิตภัณฑ์ 15036 ในต้นเดือนตุลาคม 2010)

การอนุมานความต้องการโดยใช้การเติมเต็มเมทริกซ์ที่แข็งแกร่ง

ให้ 𝛺 เป็นเซตของดัชนี (ตะขอ, 𝑗) ที่สอดคล้องกับความต้องการที่สังเกตได้ในผลิตภัณฑ์ 𝑗 ณ วันที่ ตะขอ เพื่อสรุปความต้องการสำหรับวันที่ที่ไม่ได้สังเกต (เนื่องจากการขาดแคลนสินค้าคงคลัง) เราจะแก้ไขปัญหาต่อไปนี้

โดยที่ 𝛸 คือเมทริกซ์ที่มีบันทึกการขายและ

ถ้า (ไร้, 𝑗) อยู่ใน 𝛺 และเท่ากับศูนย์ กล่าวอีกนัยหนึ่ง เราตั้งค่า 𝛸 ให้เท่ากับ 𝑳 + 𝑺 ทุกประการในดัชนีที่สอดคล้องกับความต้องการที่สังเกตได้ รายการที่ไม่ได้สังเกตจึงเป็นพารามิเตอร์อิสระในโมเดล

จากนั้นโมเดลนี้จะส่งคืนสองส่วน 𝑳 และ 𝑺 ซึ่งสลายตัว 𝛸 เมทริกซ์กระจัดกระจาย 𝑺 แยกค่าผิดปกติและเหตุการณ์สุดขั้วจาก 𝛸 ส่วนประกอบ 𝑳 จะถือเป็นสำเนา ลดสัญญาณรบกวน ของ 𝛸 โดยมีความต้องการที่ไม่มีใครสังเกตเห็นเพื่อให้ 𝑳 มีบรรทัดฐานทางนิวเคลียร์ขั้นต่ำ วัตถุประสงค์ของ 𝑺 คือเพื่อให้สามารถสร้าง 𝛸 ใหม่ได้อย่างแม่นยำ โดยไม่มีพารามิเตอร์ถูกบิดเบือนจากเหตุการณ์สุดขั้วที่ไม่บ่อยหรือผิดปกติ ดังนั้นจึงเรียกว่า "เมทริกซ์ที่สมบูรณ์แข็งแกร่ง"

การใช้ไลบรารีการเขียนโปรแกรมนูน cvxpy เราดำเนินการเมทริกซ์ที่สมบูรณ์ในการขายบันทึกและแสดงผลลัพธ์เป็นภาพ

การแสดงภาพความต้องการที่อนุมาน

เมื่อย้อนกลับไปที่แผนที่ความร้อนของข้อมูลการขายบันทึก 𝛸 (บนสุด) เราจะเปรียบเทียบด้วยการมองเห็นควบคู่ไปกับการสลายตัวขององค์ประกอบดังกล่าวเป็นองค์ประกอบแบบกระจัดกระจาย 𝑺 (กลาง) และองค์ประกอบที่ไม่มีสัญญาณรบกวน 𝑳 (ด้านล่าง)

เราจะเห็นได้ว่าความต้องการที่อนุมานที่มีอยู่ใน 𝑳 ดูเหมือนว่าจะจับกระแสของการขายในผลิตภัณฑ์หลายประเภทและไม่ได้ลดลงแต่อย่างใด สิ่งนี้ชี้ให้เห็นว่ามีพลวัตที่ไม่เล็กน้อยที่เกี่ยวข้องกับผลิตภัณฑ์ซึ่งกันและกัน นอกจากนี้เรายังเห็นได้ชัดเจนบางกรณีใน 𝑺 ที่ผลิตภัณฑ์บางอย่างอาจมีการขายเกินหรือขายน้อยไปเมื่อเทียบกับผลิตภัณฑ์อื่นๆ

สัญชาตญาณ

วิธีการนี้ทำงานโดยจับความสัมพันธ์ระหว่างยอดขายของสินค้าต่างๆ และใช้เพื่อประมาณค่าที่ยังไม่ได้สังเกต ตัวอย่างเช่น หากผลิตภัณฑ์ A, B และ C มีความสัมพันธ์กัน (เช่น โดยมีรูปแบบตามฤดูกาลที่คล้ายคลึงกัน) และเราสามารถสังเกตการเคลื่อนไหวร่วมกันได้ทุกวัน เราก็ควรจะสามารถคาดเดาได้ว่าสินค้า B ขายได้จำนวนเท่าใดหากเรา สามารถสังเกตได้เพียง A และ C เท่านั้น กล่าวอีกนัยหนึ่ง เราสามารถอนุมานความต้องการของผลิตภัณฑ์ B จาก A และ C ได้

อย่างไรก็ตาม มีความแตกต่างเฉพาะระหว่างแนวทางนี้กับการดำเนินการถดถอยหลายรายการกับรายการที่สังเกตได้: ในกรอบการถดถอย เราจำเป็นต้องรู้ A และ C เพื่อทำนาย B แต่จะเกิดอะไรขึ้นถ้าทั้ง B และ A หายไปในวันใดวันหนึ่ง เราจะใช้โมเดลสำหรับ B ได้อย่างไรหากคุณสมบัติอย่างใดอย่างหนึ่งหายไป และในวันถัดไป สมมติว่ามีเพียง B เท่านั้นที่ถูกสังเกต เราจะทำสิ่งนี้กับ A และ C ได้อย่างไร?

บรรทัดฐานนิวเคลียร์เป็นการผ่อนผันนูนของตัวดำเนินการอันดับ และบรรทัดฐาน โดยอัตโนมัติ ตามลำดับสำหรับตัวดำเนินการเชิงจำนวน การแยกย่อย 𝛸 ออกเป็นองค์ประกอบ 𝑳 และ 𝑺 จึงคล้ายคลึงกับการดำเนินการถดถอยเชิงเส้นแบบ โดยอัตโนมัติ ₁ ที่ลงโทษบน ค่าเอกพจน์ ของ 𝛸 ความต้องการที่ไม่ได้รับการสังเกตคือพารามิเตอร์อิสระในแบบจำลอง ซึ่งคล้ายคลึงกับน้ำหนักการถดถอย การลงโทษบน 𝑺 ยังช่วยให้เราตัดการสังเกตที่ผิดปกติได้ หากอนุญาตให้ 𝑳 ใช้ประโยชน์จากโครงสร้างใน 𝛸 มากขึ้น ซึ่งคล้ายกับการเปลี่ยนแปลงน้ำหนักตัวอย่างในการถดถอย

ดังนั้นเราจึงไม่จำเป็นต้องมีฟีเจอร์จำนวนตายตัวในการอนุมานความต้องการในแต่ละช่วงเวลา ซึ่งอาจแตกต่างกันไปในแต่ละวัน

วิธีนี้ประสบความสำเร็จแค่ไหน?

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

ตัวอย่างแบบง่าย

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

ตอนนี้เรากู้คืนความต้องการโดยใช้เมทริกซ์ที่สมบูรณ์ (สีเหลือง) การแสดงภาพควบคู่ไปกับความจริงภาคพื้นดิน (เส้นประสีน้ำเงิน) และขอบเขตข้อผิดพลาด ±15% (บริเวณสีเทาสีน้ำเงิน)

เราจะเห็นได้ว่าการสร้างใหม่มีความแม่นยำอย่างน่าประหลาดใจ แม้ว่ายอดขายจะถูกเซ็นเซอร์อย่างต่อเนื่องก็ตาม

ตัวอย่างที่สมจริง

ตอนนี้เราพิจารณาแผนการเซ็นเซอร์ที่สมจริงยิ่งขึ้น โดยที่เราสุ่มตัวอย่างดัชนี 500 รายการจาก 𝛺 (โดยไม่ต้องแทนที่) และเซ็นเซอร์ดัชนีเหล่านั้น ให้ชุดใหม่นี้แสดงแทน 𝛺₀⊂𝛺 จากนั้นเราจะอนุมานความต้องการและวิเคราะห์ข้อผิดพลาดในการฟื้นฟู โปรดทราบว่าเราจะไม่เพียงแค่พยายามกู้คืนความต้องการที่เราเซ็นเซอร์ใน 𝛺₀ เท่านั้น แต่ยังรวมถึงความต้องการที่ขาดหายไปจากชุดข้อมูลด้วย (เช่น {1,…,𝑚}×{1,…,พาสต้า}∖ 𝛺).

การแสดงข้อมูลการขายบันทึกดั้งเดิม 𝛸 (บนสุด) ข้อมูลการขายบันทึกที่ถูกเซ็นเซอร์เพิ่มเติม (กลาง) และส่วนประกอบที่สร้างขึ้นใหม่ 𝑳 (ด้านล่าง):

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

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

Residuals of Log-Sales:
Mean Error: 0.1038 
Sqrt Mean Squared Error: 0.4107
Standard Error: 0.3974
Excess Skew: -0.0840
Excess Kurtosis: 0.8728
Percent Error on Raw Sales:
Mean Error: -0.0037
Sqrt. Mean Squared Error: 0.1486
Standard Error: 0.1486
Excess Skew: -2.5220
Excess Kurtosis: 8.5739

ค่าเบี่ยงเบนกำลังสองเฉลี่ยคือ 15% ของยอดขายดิบ กล่าวอีกนัยหนึ่ง ความต้องการที่สร้างขึ้นใหม่ของโมเดลนี้สามารถนำมาอยู่ภายใน 15% ของความต้องการที่จะขายในวันนั้น

บทสรุป

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

วิธีการนี้สามารถนำไปใช้เพิ่มเติมได้ โดยให้ผลลัพธ์ที่แม่นยำยิ่งขึ้น โดยปล่อยให้ความล่าช้าและการแปลงที่ไม่ใช่เชิงเส้นอื่นๆ เพื่อเพิ่มเมทริกซ์ข้อมูล 𝛸 ก่อนที่จะดำเนินการเมทริกซ์ให้เสร็จสิ้น