Meta Robyn : Open Source ที่พัฒนาโดย Meta (Facebook) เพื่อใช้ในการวิเคราะห์ และวางแผนการใช้จ่ายโฆษณาโดยมีโมเดลที่อยู่เบื้องหลังคือ Media Mix Modeling (MMM) ซึ่งเป็นเทคนิคการวิเคราะห์ที่ใช้ในการประเมินผลกระทบของการใช้สื่อโฆษณาต่างๆ ต่อผลลัพธ์ทางธุรกิจ เช่น ยอดขาย หรือยอดการเข้าถึงกลุ่มเป้าหมาย
ซึ่งจะมาช่วยนักการตลาดวิเคราะห์ผลลัพธ์ด้าน Marketing ในยุคที่ความเป็นส่วนตัวของข้อมูลผู้บริโภคกลายเป็นประเด็นหลักในการทำธุรกิจ จากการที่โฆษณาดิจิทัลจึงต้องเผชิญกับความท้าทายใหม่โดยกฎระเบียบที่เข้มงวดขึ้น เช่น Apple’s App Tracking Transparency (ATT) ที่ถูกบังคับใช้ในปี 2021 ทำให้ Marketer หรือ Data Analyst ไม่สามารถติดตามข้อมูลผู้ใช้ได้อย่างละเอียดเช่นเคย ทำให้การติดตามพฤติกรรมลูกค้าแบบเจาะจงซึ่งเคยเป็นแกนหลักในการทำ Performance marketing กลายเป็นเรื่องที่ทำได้ยาก การเปลี่ยนแปลงนี้ส่งผลให้เราต้องมองหาวิธีการวัดผลการตลาดแบบใหม่ที่ไม่ต้องพึ่งพาข้อมูลส่วนบุคคลโดยตรง,,
และ Robyn จาก Meta ที่นิกจะแนะนำให้ทุกท่านได้รู้จัก ในบทความนี้ก็เป็นหนึ่งใน Open Source ดีๆ ที่จะมาช่วยพวกเราแก้ปัญหาในส่วนได้นี้ค่ะ (*^▽^*)
แต่ก่อนที่จะไปทำความรู้จักกับ Robyn นิกขอกล่าวถึง MMM แบบคร่าวๆ เพื่อให้เพื่อนๆ เข้าใจว่า Algorithm ที่อยู่เบื้องหลังการทำงานของ Robyn มีหลักการทำงานอย่างไร,,,, Let’s go (/≧▽≦)/
Media Mix Modeling คืออะไร?
Media Mix Modeling (MMM) หรือ “โมเดลส่วนผสมการตลาด” เป็นเทคนิคการวิเคราะห์ทางสถิติที่ใช้ในการวัดและประเมินผลกระทบของตัวแปรทางการตลาดต่างๆ ที่มีต่อยอดขายและตัวชี้วัดประสิทธิภาพหลักอื่นๆ โดย Algorithm นี้เกี่ยวข้องกับการวิเคราะห์ข้อมูลในอดีต ซึ่งเป็นการวิเคราะห์ข้อมูลแบบ Time Series เพื่อวัดผลกระทบของกิจกรรมทางการตลาด เช่น การโฆษณา โปรโมชั่น การกำหนดราคา/ช่องทางการจัดจำหน่าย ต่อผลลัพธ์ทางธุรกิจ (ซึ่งนิยมคำนวณออกมาเป็น ROI ค่ะ)
โดย MMM ช่วยให้เราสามารถปรับกลยุทธ์ทางการตลาดให้เหมาะสมที่สุดโดยระบุการจัดสรรทรัพยากรที่มีประสิทธิผลสูงสุด (ซึ่งเป็นการทำ Optimization อย่างหนึ่ง) และทำความเข้าใจกับผลตอบแทนจากการลงทุนทางการตลาดต่างๆ เพื่อนๆ ลองนึกภาพว่าเหมือนเราใส่ส่วนผสมทางการตลาดทั้งหมดไปในพิมพ์เค้ก เอาเข้าเตาอบปรับความแรงไฟที่เหมาะสมแล้วดูว่าเค้กของเราจะออกมาดีที่สุดเมื่อใช้สูตรไหนนั่นเองค่ะ^^
ซึ่งในการทำกระบวนการทั้งหมดทั้งมวลตามที่กล่าวถึงข้างต้น ภาคธุรกิจต้องใช้ทรัพยากรและบุคคลที่มีความเชี่ยวชาญเพื่อมาดำเนินการ ยิ่งผนวกกับยุคนี้ที่ความเป็นส่วนตัวของข้อมูลผู้บริโภคกลายเป็นประเด็นหลัก Meta จึงได้พัฒนา Project Robyn ซึ่งเป็น Open source ที่ออกแบบมาเพื่อลดความซับซ้อนในการทำ Media Mix Modeling และเปิดโอกาสให้ธุรกิจทุกขนาด โดยเฉพาะธุรกิจขนาดเล็กและขนาดกลาง (SMEs) ที่อาจไม่มีทรัพยากรเพียงพอในการทำการวิเคราะห์ข้อมูลได้ใช้ประโยชน์จากการวิเคราะห์เชิงลึกนี้ได้ค่ะ
หลักการทำงานภายในของ Meta Robyn
Robyn ใช้ Prophet ของ Facebook ในการทำ Time series decomposition, ridge regression เพื่อที่จะป้องกันการเกิด overfitting ของโมเดล รวมถึงมีการทำ hyperparameter optimization ด้วย library Nevergrad.
Rochan Nehete
Meta Robyn ถูกพัฒนาและออกแบบมาเพื่อให้เกิดการยอมรับในองค์กรและลดอคติที่เกิดจากการวิเคราะห์โดย MMM แบบทั่วไป ซึ่งเน้นทั้งในแง่ของ Statisbic bias และ Human Bias ตามรายละเอียดดังนี้ค่ะ
VIDEO
1. การลดอคติทางสถิติ (Statistical Bias)
Statistical Bias เกิดจากข้อผิดพลาดในการสร้างโมเดลหรือการวิเคราะห์ข้อมูลที่ทำให้ผลลัพธ์ที่ได้มีความคลาดเคลื่อนจากความจริง ซึ่งตัวอย่างของอคติทางสถิติที่มักพบได้ในการวิเคราะห์ข้อมูลได้แก่
Multicollinearity : คือการที่ตัวแปรอิสระหลายตัวมีความสัมพันธ์กันมากเกินไป ทำให้ค่าประมาณในโมเดลเกิดความคลาดเคลื่อน
Endogeneity : เมื่อมีความสัมพันธ์ระหว่างตัวแปรอิสระกับตัวแปรที่ไม่ได้รวมในโมเดล ทำให้การประเมินผลลัพธ์ไม่ถูกต้อง
Omitted Variables : เมื่อโมเดลละเว้นตัวแปรที่ควรนำมาร่วมวิเคราะห์ ซึ่งจะส่งผลกระทบต่อความแม่นยำของโมเดล
ดังนั้นในการออกแบบ Robyn ทีมพัฒนาจึงมีการใช้เครื่องมือและเทคนิคหลายอย่างเพื่อจัดการกับอคติเหล่านี้ด้วยวิธีดังต่อไปนี้ค่ะ,,
Ridge Regression : Meta Robyn ใช้เทคนิคการถดถอยแบบ Ridge Regression เพื่อจัดการกับปัญหา multicollinearity โดยการเพิ่มตัวแปรลงไปในสมการเพื่อควบคุมผลกระทบจากตัวแปรที่มีความสัมพันธ์กันมากเกินไป ซึ่งเทคนิคนี้ช่วยลดความผันผวนของค่าสัมประสิทธิ์ในโมเดล ทำให้โมเดลมีเสถียรภาพมากขึ้น
Prophet Package : ใช้สำหรับการแยกส่วนและวิเคราะห์แนวโน้มของข้อมูลแบบ Time series โดยเฉพาะการปรับตัวตามฤดูกาลและการเปลี่ยนแปลงทางเวลา (เช่น เทศกาลหรือฤดูกาลที่อาจส่งผลต่อยอดขาย)
Nevergrad Package : เป็น Package ที่ใช้สำหรับการเพิ่มประสิทธิภาพแบบหลายวัตถุประสงค์ (Multi-objective optimization ) ซึ่งช่วยให้การคำนวณโมเดลเป็นไปอย่างรวดเร็วและแม่นยำมากยิ่งขึ้น
2. การลดอคติในการตัดสินใจของมนุษย์ (Managerial Bias/ Human Bias)
Managerial Bias/ Human Bias หรืออคติจากการจัดการ เกิดจากการแทรกแซงของมนุษย์ในการตัดสินใจ ซึ่งอาจเกิดจากการตีความผลลัพธ์แบบผิดพลาด หรือการเลือกใช้ผลลัพธ์ที่ไม่ได้อิงจากข้อมูลอย่างรอบคอบ ซึ่งในหลายๆ ภาคส่วนทางธุรกิจพบว่า การตัดสินใจด้านการตลาดหรือการจัดสรรงบประมาณในการโฆษณามักถูกควบคุมโดยความคิดเห็นของผู้บริหาร หรือ “HIPPO ” 🦛🦛 (Highest Paid Person’s Opinion) ซึ่งหมายถึงการตัดสินใจที่ขึ้นอยู่กับความคิดเห็นของผู้ที่มีตำแหน่งสูงที่สุดมากกว่าข้อมูลที่มีอยู่จริง ซึ่งสิ่งนี้เองที่อาจนำไปสู่การตัดสินใจที่ไม่สอดคล้องกับผลการวิเคราะห์อย่างแท้จริงได้ค่ะ
ดังนั้นเพื่อแก้ปัญหานี้ Robyn ได้ออกแบบมาให้กระบวนการวิเคราะห์และตัดสินใจ สามารถแยกออกจากการมีอิทธิพลจากมนุษย์ได้ง่ายขึ้น โดยวิธีการที่ใช้ใน Robyn ประกอบด้วย:
Separation of Model Selection from Prescription : ใน Robyn การคัดเลือกโมเดลที่ดีที่สุดจากการวิเคราะห์และการตัดสินใจในการปรับงบประมาณโฆษณาถูกแยกออกจากกัน โดยผู้ใช้งานจะเลือกโมเดลจากผลลัพธ์การวิเคราะห์ที่ดีที่สุดก่อน แล้วจึงนำไปใช้ในการตัดสินใจเรื่องการจัดสรรงบประมาณ ซึ่งช่วยลดโอกาสที่ความคิดเห็นส่วนตัวหรือการแทรกแซงจากผู้บริหารจะส่งผลกระทบต่อการเลือกโมเดลที่แม่นยำ
Calibration with Ground Truth : Robyn มีฟังก์ชันที่ช่วยในการปรับเทียบโมเดลกับข้อมูลจริงจากการทดลองโฆษณา (calibration ) โดยอ้างอิงจากผลลัพธ์การทดลองที่เชื่อถือได้ เช่น Randomized Control Trials (RCTs) หรือผลการวิเคราะห์จากโมเดลอื่น ๆ ที่ได้รับการตรวจสอบแล้ว การปรับเทียบนี้จะช่วยให้ผลลัพธ์ของโมเดลมีความสอดคล้องกับข้อมูลจริงมากขึ้นและลดความเสี่ยงจากอคติที่เกิดจากการวิเคราะห์ข้อมูลเชิงสังเกตการณ์ (observational data )
Multi-Objective Optimization : Robyn มีการใช้การเพิ่มประสิทธิภาพแบบหลายวัตถุประสงค์ ซึ่งสามารถกำหนดน้ำหนักในการลดข้อผิดพลาดของโมเดลที่ต่างกันได้ เช่น ลดความผิดพลาดในการประมาณทางสถิติ (normalized root mean squared error – NRMSE ), ลดความผิดพลาดทางธุรกิจ (Decomp.RSSD ) หรือ ลดความผิดพลาดในการเทียบกับข้อมูลจริง (calibration error – MAPE.LIFT ) ซึ่งช่วยให้โมเดลสามารถปรับเข้ากับสถานการณ์ต่าง ๆ ของแต่ละภาคส่วนของธุรกิจได้ตามความเหมาะสม
นอกจากการลดอคติทั้งสองประเภทข้างต้นแล้ว Robyn ยังมีฟังก์ชันที่ช่วยส่งเสริมให้การวิเคราะห์ข้อมูลในองค์กรเป็นไปอย่างมีประสิทธิภาพและโปร่งใส ซึ่งมีองค์ประกอบของ Method ดังนี้ค่ะ
Inference One-Pager : Robyn มีการสร้าง One-pager ที่แสดงผลการวิเคราะห์ทั้งหมดในรูปแบบที่เข้าใจง่ายและชัดเจน ช่วยให้ผู้ที่ไม่ใช่นักวิทยาศาสตร์ข้อมูลสามารถเข้าใจผลลัพธ์ของโมเดลได้ รวมถึงแสดงข้อมูลสำคัญ เช่น สถิติการวิเคราะห์ทางสถิติ ความน่าเชื่อถือของผลลัพธ์ ROI (Return on Investment) และ CPA (Cost Per Action) ซึ่งช่วยให้กระบวนการตัดสินใจในองค์กรเป็นไปอย่างมีข้อมูลอ้างอิงที่ดี
Transparency และ Consistency : การแยกขั้นตอนการวิเคราะห์ การเลือกโมเดล และการจัดสรรงบประมาณโฆษณาออกจากกันช่วยให้การตัดสินใจเป็นไปอย่างโปร่งใส และยังช่วยให้ทีมที่รับผิดชอบการตัดสินใจสามารถทำงานได้อย่างสอดคล้องกับข้อมูลที่วิเคราะห์ออกมา
4. การปรับงบประมาณโฆษณา (Budget Allocation)
Robyn มีฟังก์ชันที่ช่วยในการปรับงบประมาณโฆษณาในแต่ละสื่ออย่างมีประสิทธิภาพหลังจากที่ได้เลือกโมเดลที่ดีที่สุดแล้ว โดยมีฟังก์ชันหลัก ๆ สองแบบดังนี้
Max Response : โดย Robyn จะทำการคำนวณเพื่อหาว่างบประมาณรวมที่กำหนดไว้สามารถสร้างผลตอบแทนสูงสุดได้อย่างไร ซึ่งช่วยให้ธุรกิจสามารถใช้เงินโฆษณาอย่างมีประสิทธิภาพที่สุด
Target Efficiency : ส่วนนี้ Robyn จะทำการคำนวณหางบประมาณที่เหมาะสมเพื่อให้บรรลุเป้าหมายที่กำหนด เช่น การบรรลุเป้าหมาย ROAS (Return on Advertising Spend) หรือ CPA (Cost Per Action) ซึ่งเป็นการช่วยวางแผนการใช้งบประมาณโฆษณาให้ตรงกับเป้าหมายที่ธุรกิจต้องการ
ซึ่งจาก Functions ที่ถูกออกแบบมาเพื่อลด Bias ด้วยอัลกอริทึมต่าง ๆ เช่น Ridge Regression , Prophet Package , และ Nevergrad รวมถึงฟังก์ชันที่ส่งเสริมกระบวนการวิเคราะห์ในองค์กร เช่น การแยกขั้นตอนการวิเคราะห์ออกจากการตัดสินใจด้านงบประมาณโฆษณา เป็นสิ่งที่ให้ผลลัพธ์ของ Robyn สามารถนำไปใช้ได้อย่างมีประสิทธิภาพในองค์กรและภาคธุรกิจนั่นเองค่ะ^^
การ Input ข้อมูลให้ Meta Robyn เพื่อเพิ่มยอดขาย ปรับปรุงผลสัมฤทธิการตลาด
เราจะเริ่มต้นการใช้งาน Robyn ด้วยการทำ Data Exploration/Feature Engineering โดยเราจะป้อนข้อมูลชุดนี้ให้กับ Robyn โดยใช้ Method: robyn_inputs() ค่ะ
ป.ล. เพื่อนๆ สามารถเข้าไปที่ github นี้ https://github.com/facebookexperimental/Robyn แล้วทำตาม Gideline เพื่อเริ่มใช้งาน Robyn ได้เลยค่ะ
สำหรับ MMM โดยทั่วไปแล้วจะใช้ข้อมูลรายสัปดาห์ เนื่องจากข้อมูลรายวันมักมี Noise แต่เราควรมีข้อมูลย้อนหลังอย่างน้อย 2-3 ปี รวมถึงข้อมูลรายละเอียดเกี่ยวกับกิจกรรมการตลาด ข้อมูลการขายหรือรายได้ และตัวแปรที่เกี่ยวข้องอื่นๆ เช่น ราคา โปรโมชั่น และปัจจัยภายนอก (เช่น ตัวบ่งชี้เศรษฐกิจ) ซึ่งยิ่งมีข้อมูลมากเท่าไร โมเดลก็จะสามารถจับฤดูกาล แนวโน้ม และรูปแบบอื่นๆ ได้ดียิ่งขึ้นเท่านั้นค่ะ โดย Robyn สามารถรองรับข้อมูลวันหยุดของ Prophet และเรามีหน้าที่แค่ต้องระบุรหัสประเทศ (เช่น US, DE) เพื่อใช้งาน
โดยตัวแปรตาม (dependent variable) ของเราคือรายได้ และเราต้องใส่ค่าตัวแปรอื่นๆ ด้วย เช่น Paid Media Variables (Facebook (facebook_I = impressions, facebook_S = spend)), Context Variables (context_vars ), Organic Variables , Defining a window เป็นต้น
หลังจากนั้นก็ให้เราเลือก Adstock (เป็นแนวคิดที่ใช้ในการวิเคราะห์การตลาดและโฆษณาเพื่อจับผลกระทบที่คงอยู่หรือผลกระทบต่อเนื่องของการเปิดรับโฆษณาในอดีตต่อพฤติกรรมของผู้บริโภค) โดย Robyn มีให้เลือก 3 ตัวได้แก่ Geometric, Weibull CDF และ Weibull PDF
หลังจากนั้นก็เลือก Saturation ซึ่งมี 2 ตัวให้เลือกคือ Alpha controls กับ Gamma controls (ในส่วนของรายละเอียดจะขอยกไปที่บทความ #2 นะคะ^^)
หลังจากนั้นเราจะมา Setting Prophet ซึ่งเป็น Open source code ของ Meta สำหรับการพยากรณ์ Time series data โดย Prophet ถูกเพิ่มเข้าไปในโค้ดของ Robyn โดยอัตโนมัติ ซึ่งตัวอย่าง Code ในการ Input data ให้ Robyn มีดังนี้ค่ะ
InputCollect <- robyn_inputs( dt_input = dt_simulated_weekly, dt_holidays = dt_prophet_holidays, date_var = “DATE”, # date format must be “2020-01-01” dep_var = “revenue”, # there should be only one dependent variable dep_var_type = “revenue”, # “revenue” (ROI) or “conversion” (CPA) prophet_vars = c(“trend”, “season”, “holiday”), # “trend”,”season”, “weekday” & “holiday” prophet_country = “DE”, # input one country. dt_prophet_holidays includes 59 countries by default context_vars = c(“competitor_sales_B”, “events”), # e.g. competitors, discount, unemployment etc paid_media_spends = c(“tv_S”, “ooh_S”, “print_S”, “facebook_S”, “search_S”), # mandatory input paid_media_vars = c(“tv_S”, “ooh_S”, “print_S”, “facebook_I”, “search_clicks_P”), # mandatory. organic_vars = “newsletter”, # marketing activity without media spend factor_vars = c(“events”), # force variables in context_vars or organic_vars to be categorical window_start = “2016-01-01”, window_end = “2018-12-31”, adstock = “geometric” # geometric, weibull_cdf or weibull_pdf.)
การใช้ งาน Meta Robyn ช่วยเพิ่มยอดขาย ปรับปรุงประสิทธิภาพการตลาด
Robyn ใช้ Nevergrad ซึ่งเป็น Lib ที่พัฒนาโดย Facebook สำหรับการทำ Hyperparameter tuning เพื่อเลือกโมเดลที่เหมาะสมที่สุด โดยพิจารณาจากค่า NRMSE (Normalized Root mean squared error) ที่ใช้ประเมินค่า error และ DECOMP.RSSD (Decomposition Root Sum of Squared Distance) ที่ใช้ประเมินความสมเหตุสมผล/ความสมจริงของโมเดล
โดยเราสามารถ Callibrate โมเดลของเราได้โดยการทดสอบ Ads ในกลุ่มย่อยที่ประกอบด้วย 2 กลุ่มหลัก ได้แก่ กลุ่มควบคุม และกลุ่มทดสอบ ซึ่งกลุ่มควบคุม จะไม่ได้รับโฆษณาใดๆ และรายได้/การแปลงที่ได้รับจากโฆษณาดังกล่าวจะเป็นข้อมูลพื้นฐาน ในขณะที่กลุ่มทดสอบ จะได้รับโฆษณาและรายได้/การแปลงที่สอดคล้องกันจะได้รับ
ซึ่งจากการที่ Robyn รับข้อมูลการสอบเทียบเป็นอินพุตก่อนการสร้างโมเดลได้ ทำให้สามารถใช้ MAPE ของ Nevergrad เพื่อ Callibrate เพิ่มจาก NRMSE และ DECOMP.RSSD ได้
หลังจากนั้นเราจะทำการตีความผลลัพธ์ที่เราได้จาก Robyn ด้วยการพิจารณาผลกระทบของตัวแปรต่อผลลัพธ์ทางธุรกิจ Robyn แล้วแสดงผลในรูปแบบ One pager ด้วย Method: robyn_onepagers ตามที่กล่าวไว้ก่อนหน้าค่ะ
Robyn One pager report
🤗 🐈 มาลองเล่น Meta Robyn ในการประเมิน Ads-Budget กัน
และแล้วก็มาถึงส่วนที่สำคัญที่สุด,, นั่นคือการใช้ Robyn ในการตัดสินใจ/การพิจารณางบประมาณผ่านการประเมินผลลัพธ์ของโมเดล ด้วยการใช้ฟังก์ชัน robyn_allocator() เพื่อให้ได้ส่วนผสมของงบประมาณที่จะจ่ายให้กับช่องทางการตลาดต่างๆ ที่เหมาะสมที่สุดเพื่อเพิ่มรายได้หรือประสิทธิภาพการตลาดโดยพิจารณาจากค่า ROAS เพื่อตอบคำถามที่ว่า “เราจะได้รับผลตอบแทนสูงสุดเท่าไรจากการใช้จ่ายตามที่กำหนด?” และ “เราต้องจ่ายเงินเท่าใดจึงจะบรรลุเป้าหมาย ROAS/CPA?” ค่ะ
โดยสามารถใช้ Python script ตาม link นี้ => https://github.com/Rochan79/MMM_Robyn
แล้วเข้าไปที่ https://colab.research.google.com/ แล้วรันโค้ดด้วยข้อมูลของเราตามใน Github ได้เลยค่ะ 😎😄
Last but not Least..
ท้ายสุด,, เพื่อนๆ จะเห็นว่าในยุคของ Digital Marketing ที่มีความท้าทายมากขึ้น การใช้ข้อมูลที่น่าเชื่อถือ และการวิเคราะห์ผลกระทบของการโฆษณาอย่างแม่นยำเป็นสิ่งสำคัญ ซึ่ง Meta Robyn เป็นเครื่องมือที่ช่วยให้นักการตลาดเช่นพวกเราสามารถปรับตัว และวางแผนการใช้จ่ายโฆษณาได้อย่างมีประสิทธิภาพ โดยไม่ต้องพึ่งพาการติดตามข้อมูลของ Users อย่างเจาะจง ด้วยการรวมเอาความสามารถในการวิเคราะห์ MMM และการเพิ่มประสิทธิภาพของเทคโนโลยีขั้นสูงเข้าด้วยกัน Robyn จึงเป็นอีกหนึ่ง Tool ที่เราควรลองและไม่ควรมองข้ามค่ะ^^
Ref: Packaging Up Media Mix Modeling: An Introduction to Robyn’s Open-Source Approach
ทั้งนี้หากสำหรับท่านที่ต้องการอ่านรายละเอียดเพิ่มเติมเกี่ยวกับ Media Mix Modeling หรือ MMM ซึ่งเป็นโมเดลที่อยู่เบื้องหลัง Robyn สามารถอ่านที่บทความนี้ได้เลยค่ะ =>>