ในยุคปัจจุบันนี้ data ถือเป็นสิ่งที่สำคัญต่อหลายๆองค์กรมากๆ แต่ว่าถ้าเกิดองค์กรใด มีการเก็บ data แต่ไม่ได้นำมันมา analyze เนี่ย มันก็ไม่เกิดประโยชน์อยู่ดีนะครับ จากผลการสำรวจพบว่ามีองกรค์จำนวนมาก ที่ยังไม่ได้นำ data มา analyze เพื่อใช้เป็นตัวขับเคลื่อนการตัดสินใจทางธุรกิจ
เพราะฉะนั้นเนี่ย Google Cloud Platform ก็ถือเป็นตัวเลือกที่ดีสำหรับ องค์กร หรือ ใครก็ตามที่กำลังมองหาการทำ Smart Analytics อยู่นะครับ ดังนั้น blog นี้ผมจะกล่าวถึง services และ solutions ที่ใช้ในการทำ Smart Analytics บน Google Cloud
ความแตกต่างระหว่าง on-prem model และ serverless model
หากองกรค์ใดที่ ณ ปัจจุบันใช้ traditional หรือ on-premise model นะครับ ก็จะพบว่า เราจะต้องมาคอยจัดการหรือยุ่งเกี่ยวกับหลายๆส่วนนะครับ ไม่ว่าจะเป็น monitoring, performance tuning, deployment & configuration และอีกต่างๆมากมายนะครับ ในทางตรงกันข้ามถ้าเกิดว่าเราใช้ Google Cloud Platform ซึ่งเป็น serverless model เนี่ยเราสามารถตัดทุกส่วนออกได้เลย เอาเวลาไป focus แค่การทำ analysis และ insights แค่นั้นพอครับ ถือว่า save time และ cost ได้เยอะมากๆเลยนะครับ
ทำความรู้จักกับเทคโนโลยีอื่นๆ บน Google Cloud กับกิจกรรม webinar
และมันก็ไม่ใช่ service อื่นไกลที่ไหน หัวใจหลักของ Google Cloud’s Smart Analytics platform นั้นก็คือ Google BigQuery นั่นเอง
เพราะว่า Google BigQuery เป็น fully managed enterprise data warehouse grade ที่สามารถ support ทั้งการ store และ query data ได้ในระดับ pentabytes เลยนะครับ ซึ่งถือว่ามีขนาดที่ใหญ่และเยอะมากๆ อีกทั้งเราไม่ต้องคอยเสียเวลามาดูแล และจัดการกับพวก infrastructure เนื่องจากตัวมันยังเป็น serverless อีกด้วย
และเนื่องจากที่ BigQuery นั้นสามารถ query data ได้อย่างรวดเร็ว เราจึงสามารถทำ data transform บน BigQuery นี้ได้เลยอีกด้วย หลายคนอาจจะเคยได้ยินและรู้จักการทำ ETL กันมาบ้างแล้ว ซึ่งมันก็คือการ Extract-Transform-Load แต่หากเราใช้ BigQuery เนี่ยเราสามารถทำ ELT ได้เหมือนกัน หรือก็คือ การที่เรา load data เข้ามายัง BigQuery ก่อน แล้วค่อย transform data ตามที่เราต้องการ เช่น cast type data, split data, replace data หรือการทำ DML (Data Manipulation Language) และอื่นๆอีกมากมาย อีกทั้งเราสามารถ ทำ analysis ต่อได้เลย และถ้าหากใครถนัดเขียน SQL เป็นพิเศษและอยากจะทำ machine learning บน BigQuery อย่างรวดเร็ว Google Cloud นั้นก็ยังมี BigQuery ML ให้เราได้ใช้อีก ถือว่าจบครบสมบูรณ์ใน service เดียว นี้เลยเป็นเหตุผลที่ว่าทำไม Google BigQuery ถึงได้ชื่อว่าเป็นหัวใจหลักของการทำ Analytics บน Google Cloud Platform
1. เริ่มด้วย BigQuery เนี่ยถือว่าเป็น enterprise data warehouse นะครับ หลายคนอาจจะยังงงๆ ว่า enterprise data warehouse คืออะไร ทำไมถึงต้องเรียกว่า enterprise ด้วยความหมายของคำว่า enterprise ในที่นี้เนี่ยหมายถึงองกรค์ขนาดใหญ่ ซึ่งแต่ละองค์กรก็จะต้องมี data ที่มี scale ขนาดใหญ่แน่นอน ดังนั้นเนี่ย data warehouse ไหนที่สามารถจัดเก็บ data และจัดการกับ data ที่เป็นระดับ enterprise ได้ ก็จะถูกเรียกว่า Enterprise data warehouse นั่นเอง ซึ่งจากรายงานพบว่า data ส่วนใหญ่จะมาจาก หลายๆ system ที่ต่างกัน เช่น ERPs, CRMs, หรือแม้กระทั่ง physical recording
2. Automate data delivery หรือก็คือการ deliver data แบบอัตโนมัติโดยที่ BigQuery มี service ที่เรียกว่า Data Transfer Service เป็น service ที่ทำให้หลายๆ marketing platform สามารถ transfer data มายัง BigQuery ได้แบบอัตโนมัตินั่นเอง ยกตัวอย่างเช่น Google Ads, YouTube, Salesforce, firebase อะไรประมาณนี้นะครับ ซึ่งถ้าเราอยากทราบแบบละเอียดว่ามีอะไรบ้างที่ Data Transfer Service support สามารถเข้าไปดูได้ ที่นี่ ครับ
3. Scale up to petabytes on-demand แน่นอนครับว่า Google BigQuery นั้นสามารถ scale ได้สูงถึงระดับ petabytes scale เลยทีเดียว นั่นหมายความว่ามันสามารถ query data ระดับ gigabytes ได้ภายในเวลาไม่กี่วินาทีและ query data ระดับ petabytes ได้ภายในระยะเวลาไม่กี่นาที เท่านั้นเอง ซึ่งถือว่ารวดเร็วมากๆ
4. Insights accessible หรือก็คือการเข้าถึง insights ได้ง่าย โดยที่เราสามารถรวม data ที่กระจัดกระจายกันอยู่หลายๆ source ให้กลายมาอยู่ที่ platform เดียวกันได้ อีกทั้งเรายังสามารถสร้าง read-only dataset ใน BigQuery นะครับเพื่อให้ external users นั้นเข้ามา query data ได้โดยที่เราไม่ต้องคอยกังวลเรื่องความปลอดภัยหรือความเสี่ยงเลยนะครับ แถมยังสามารถใช้ BI tools ต่างๆ เช่น Data Studio, Tableau, Qlik, Google Sheet ในการ access และ query insights ของเราได้อีกด้วย
5. BigQuery มีการ protect business data ที่น่าเชื่อถือและใว้ใจได้ว่าไม่พัง ไม่เจ๊งแน่นอนเพราะว่ามีอัตราการพร้อมใช้งาน สูงถึง 99.9% uptime SLA อีกทั้งยังมี build-in redundancy อีกนะครับ หลายคนอาจจะสงสัยว่า redundancy คืออะไร พูดง่ายๆมันก็คือการทำซ้ำ หรือ ความสามารถในการทำงานพร้อมกันในเวลาเดียวกัน เนื่องจากมีการทำ automatic data backup และยังมี replication ข้ามแต่ละ regions อีกด้วยนะครับ
6. Fully managed and serverless สิ่งนี่ถือว่าเป็นจุดเด่นที่สำคัญที่สุดของ Google Cloud เลยก็ว่าได้นะครับ หากเราแปลคำศัพท์ตรงๆ คำว่า serverless จะหมายถึง ไม่มี server แต่ความเป็นจริงแล้วจะพูดว่าไม่มี server เลยก็ไม่ถูก เพียงแต่ว่า serverless ในที่นี้เนี่ยหมายถึงเราใช้บริการ server ของ Google Cloud ที่เค้าจัดหามาให้เราใช้เท่านั้นเอง โดยที่เราไม่ต้องลงทุนกับ server เองเลย ไม่ต้องคอยมาปวดหัวว่า เอ๊ data center เราอยู่ที่ไหน? จะปลอดภัยมั้ย? จะเกิดภัยพิบัติทางธรรมชาติหรือเปล่า? มีการกระจายข้อมูลไปเก็บไว้ใน data center หลายๆที่มั้ย? hardware เครื่องเซิร์ฟเวอร์มี resource เหลือเพียงพอหรือเปล่า? ระบบจะล่มตอนไหน? ปัญหาเหล่านี้จะหมดไปทั้งสิ้นเลยครับและ fully managed นั้นก็หมายถึง Google Cloud นั้นคอยจัดการเรื่อง infrastructure, update version, configuration ต่างๆให้เราใว้ทั้งหมด โดยที่เราไม่ต้องเข้ามายุ่งหรือคอยกังวลใดๆเลยนะครับ เรามีหน้าที่แค่ใช้งาน service นั้นๆเท่านั้นเอง ทำให้เราสามารถประหยัดได้ทั้งเวลาและ human resource
7. Real-time insights over streaming and batch data อันนี้ถือว่าเป็นจุดขายอีกหนึ่งจุดของ BigQuery เลยก็ว่าได้นะครับ ซึ่งทาง Google เองได้ claim ว่า BigQuery เนี่ยสามารถ analyze insight ได้แบบ real-time โดยที่ support การ ingest เข้ามาทั้งแบบ streaming และ batch นะคับ นั่นหมายความว่าในขณะที่ data pipeline ของเรานั้นกำลัง ingest data เข้ามายัง BigQuery เนี่ย เราสามารถ query ดู insight ใน BigQuery ได้ทันที ไม่ต้องรอเป็นวัน เป็นชั่วโมงนะครับ โดยที่ ขั้นตอนการทำ data processing เนี่ยเราสามารถใช้ Cloud Pub/Sub ที่ integrate กับ Dataflow ในการ load data แบบ streaming หรือ batch เข้ามายัง BigQuery อันนี้ก็ถือเป็นอีกหนึ่ง solution ที่เรียกได้ว่าสะดวกสะบายมากๆนะครับ เนื่องจาก Dataflow มี template ที่รองรับการ load data จาก Cloud Pub/Sub topic มายัง BigQuery หรือถ้าใครอยาก save cost ลงหน่อย ก็สามารถไปใช้ Cloud Pub/Sub + Cloud Function ได้ แต่กรณีนี้เราจะต้อง custom BigQuery load job API เองนะครับ หรือถ้าใครยังนึก solution ไม่ออก ไม่รุ้จะใช้วิธีไหน ไม่รู้จะปรึกษาใคร สามารถหลังไมค์ติดต่อเข้ามายัง Cloud Ace ของเราได้เลยนะครับ (^_^)
8. In-memory BI Engine for blazing-fast reporting ทีนี้เรามาพูดถึง BigQuery BI Engine กันนะครับว่า มันคืออะไร มันดียังไง workload ของเราจำเป็นที่จะต้องใช้หรือเปล่า? นิยามของมันก็คือ Fast and in-memory analysis service หรือเราสามารถเรียกง่ายๆได้ว่า มันคือ service ที่มีใว้ช่วย ให้เราสามารถ analyze data ที่ถูกเก็บอยู่ใน BigQuery ได้รวดเร็วมากยิ่งขึ้น โดยใช้เวลาเพียงไม่กี่เสี้ยววินาทีเท่านั้นเองนะคับ และมันก็ถูก integrate เข้ากับ BI Tools ยอดฮิตของ Google นั้นก็คือ Data Studio นั่นเองซึ่งมันจะช่วยทำให้การ interact กับ data studio ของเรานั้นรวดเร็วมากๆ โดยที่เราไม่ต้องกังวลว่ามันจะ support scale ขนาดใหญ่ไหวมั้ย? จะปลอดภัยหรือเปล่า? หรือเราจะยังสามารถใช้ data freshness ได้มั้ย? ไม่ต้องห่วงนะครับเรายังสามารถใช้งานได้เหมือนเดิม แต่เห็นมันดีอย่างนี้เนี่ยมันก็ยังมีข้อจำกัดอยู่บ้างนะครับ อย่างเช่น ปัจจุบันนี้ BI Engine ยังคง support แค่ Data Studio เท่านั้นนะครับ BI Engine อื่นยังไม่ support ดังนั้นเราก็ต้องไปติดตามข่าวกันเอานะครับว่าในอนาคต Google Cloud จะพัฒนาให้ support BI tools อื่นๆ หรือเปล่า อย่างเช่น Looker อะไรประมาณนี้นะครับ และอีกข้อจำกัดนึงเลยก็คือ การ custom data studio query ที่ซับซ้อนจะยังคงไม่สามารถใช้ BI Engine ได้นะครับ ก็ถือว่าเป็น trade-off กันไป
9. Built-in machine learning for predictive analytics สำหรับ Built-in machine learning ใน BigQuery ถือว่าเป็นการทำ Smart Analytics ด้วย ML บน BigQuery เลยนะครับ ซึ่งเดียวผมจะไปอธิบายรายละเอียดเพิ่มเติมใว้ในหัวข้อ BigQuery ML ด้านล้างนี้นะครับ
หากใครไล่อ่านมาตั้งแต่ หัวข้อแรกๆนะครับ ก็คงจะเข้าใจถึง highlight และความสำคัญของ BigQuery กันมากขึ้นนะครับ สำหรับหัวข้อนี้ ผมอยากจะบอกอีกสิ่งหนึ่งที่สำคัญสำหรับผู้ที่กำลังจะใช้ BigQuery หรือผู้ที่ใช้ BigQuery อยู่แล้วนะครับ ว่า BigQuery เนี่ยมี operation ใดบ้างหลักๆที่เราจะต้องเสียเงินค่า usage และ operation ใดบ้างที่เราสามารถ run ได้แบบฟรีๆ อันดับแรกก็คือการ store data บน BigQuery นั้น ถือว่าไม่ฟรีนะครับ แต่ถ้าหากใคร store data ไม่ถึง 10 GB ต่อเดือนก็จะไม่ถูกคิดเงินนั่นเอง เพราะยังถือว่าอยู่ใน free tier ของ BigQuery ถัดมานะครับ คือ streaming inserts ซึ่งมันเป็น operation ที่เราจะต้องเสียเงินนั่นเอง ไม่มีฟรี tier นะครับ ต่อมา operation ที่เป็นจำพวก load, copy, export อะไรพวกนี้ ฟรีทั้งหมดนะครับ เราจะ export เป็นล้านๆครั้งก็ฟรี แต่อย่าเผลอ copy หรือ load บ่อยๆนะครับ operations เหล่านี้มันฟรีก็จริง แต่มันจะไปคิดค่า store data แทนนั่นเอง สุดท้ายครับเรื่อง on-demand query หรือ การ query ตามใจฉัน เนี่ยมี free tier อยู่ที่ 1TB process data ต่อเดือนนะครับ ซึ่งสำหรับ workload ที่ scale ของ data น้อยๆเนี่ยผมว่าคุ้มมาก query สามารถเล่นได้สบายๆเลยครับ
สำหรับ solution แรกนะครับ ก็คือการทำ คำถามก็คือ การทำ data warehouse modernizsation บน Google Cloud เนี่ยจะช่วยอะไรแก่องค์กรบ้า? และจะเกิดข้อดีอะไรแก่องค์กรบ้าง?
Band logo ด้านบนนี้คือ ตัวอย่างของลูกค้าที่ทำ data warehouse modernization ของ Google Cloud นั้นเอง ไม่ว่าจะเป็น HSBC bank หรือ AirAsia และอื่นๆอีกมากมาย
การทำ Google Cloud data lake เนี่ยถือเป็นอีก solution นึงที่จะช่วยให้ data มีความปลอดภัยมากยิ่งขึ้น อีกทั้งยังมีค่าใช้จ่ายในการ ingest หรือ store data ขนาดใหญ่มหาศาลได้อย่างคุ้มค่าเลยนะครับ อย่างเช่น การ migrate data lake จาก on-premise มายัง Google Cloud เราจะได้เรื่องของความประหยัดมากยิ่งขึ้นอย่างแน่นอน อีกทั้งยังสามารถ support การ scale ได้อีกด้วย และจากรูปภาพด้านบนนะครับ จะเห็นได้ว่า การทำ data lake นั้นเนี่ยสามารถเลือกใช้ได้ทั้ง Dataproc, BigQuery และ Cloud Storage ซึ่งแต่ละ service เนี่ยก็จะเหมาะกับงานที่แตกต่างกันออกไปอย่างเช่น ถ้าเรามี workload ที่เป็น Apache Hadoop หรือ Spark แน่นอนครับเราก็ควรที่จะต้อง migrate ลง Dataproc หรือ เราต้องการที่จะเพิ่ม performance ในการ run SQL query บน data lake เราก็ควรที่จะต้องเปลี่ยนมาใช้ BigQuery นะครับ ซึ่งมันจะทำให้เรา run SQL ใน scale ขนาดใหญ่ถึง Petabytes ได้ภายในระยะเวลาไม่กี่วินาทีอีกด้วย หรือ requirement ของเราคือต้องการ ลด cost ในการ store data อยากจะจ่ายแค่เฉพาะในสิ่งที่ใช้ไป แน่นอนครับ Google Cloud Storage นั้นตอบโจทย์สุดๆ ถูกแน่นอน
การที่เราทำ stream analytics บน google cloud เราจะได้เห็น insights แบบ real-time และ ยังลดความซับซ้อนในการทำ operation ต่างๆ อีกด้วยนะครับ เช่น performance tuning, resource provisioning นะครับ เนื่องจาก service ที่จะเอามาใช้ในการทำ stream analytics เนี่ย เป็น service ที่ support auto-scaling นะครับ อีกทั้งยังเป็น fully managed อีกด้วย ซึ่ง service เหล่านั้นที่เอาใว้ ทำ stream analytics นั้นก็คือ Pub/Sub, Dataflow, BigQuery นั้นเองนะครับ เนื่องจากว่า 3 services นี้ถูก integrated ให้ทำงานร่วมกันได้อย่างสมบูรณ์แบบนะครับ โดยที่ Pub/Sub นั้นสามารถ support การ ingest แบบ streaming ใน data ที่มี scale ขนาดใหญ่ได้ และส่งต่อ data ไปยัง dataflow เพื่อทำ data processing จากนั้นส่งต่อให้แก่ BigQuery เพื่อทำ real-time analytics นั่นเองนะครับ
อีกหนึ่ง solution ในการทำ Smart Analytics นะครับ ก็คือเลือกใช้ BI Tools ให้เหมาะสมกับ workload และ requirement ของเรานั้นเองนะครับ อย่างเช่น ณ ปัจจุบันนี้ Google พยายามที่จะนำเสนอ BI tools ตัวใหม่ ที่มี หลายสิ่งหลายอย่างที่เหมาะสมแก่ requirement ของ แต่ละองค์กรอย่างมากนะครับ ซึ่งมันจะมีอะไรบ้างนั้น เดียวเรามาลองรับชม video กันนะครับ เดียวผมจะสรุป highlight ให้ฟังนะครับว่าข้อดีของการใช้ looker นั้นมีอะไรบ้าง
ยกตัวอย่างเช่น หากเรามี requirement ที่ว่าไม่ต้องการให้ทีมอื่นๆ ได้เห็น insight ทั้งหมด ดังนั้นเนี่ย เราจึงกำหนดสิทธิให้แก่ data analyst team เท่านั้น ทำให้หากมีทีมอื่นต้องการที่จะ explore data หรือ visualize data ก็จะต้องรอให้ทีม data analyst ทำให้เท่านั้น ซึ่งตรงนี้อาจจะทำให้หลายๆ องค์กร รู้สึกเสียเวลาเป็นอย่างมาก ในทางตรงกันข้าม หากเราเปลี่ยนมาใช้ Looker เราไม่ต้องคอยกังวลเรื่องที่ว่าหากเราให้สิทธิไปแล้วทีมอื่นนอกจาก data analyst นั้นจะเห็น insight ทั้งหมด เพราะว่า Looker นั้นสามารถแบ่งการทำ analysis ออกเป็นแค่บางส่วนได้ โดยที่เราจะไม่สามารถเห็น insight ทั้งหมดได้ และ อีกจุดเด่นหนึ่งก็คือ มันสามารถนำไปใช้ได้กับ หลายๆ database เลยทีเดียว
อีก 1 solution ในการทำ Smart Analytics ก็คือ การทำ Marketing analytics นะครับ ซึ่งในการที่เราทำ marketing analytics เนี่ย มันจะช่วยให้เราได้รับอะไรบ้าง
ถ้าพูดถึง Machine Learning และ AI บน GCP นะครับ เราควรที่จะทำความรู้จักกับ 3 สิ่งนี้นะครับ นั่นก็คือ AI Platform, AI building blocks, TensorFlow Enterprise
AI Platform เนี่ยถือว่าเป็น end-to-end platform ที่เหมาะแก่การทำ data science และ machine learning บน GCP มากๆเลยนะครับ เพราะว่ามัน support ตั้งแต่การทำ prepare data, build, validate, deploy ถือว่าครบ pipeline เลยทีเดียว
ซึ่งการ prepare data บน AI Platform เนี่ยเราสามารถเก็บ dataset ของเราใว้ใน BigQuery ได้เลย จากนั้นใช้ built-in data labeling service ในการ label training data ของเรานะครับ
สำหรับการ build บน AI Platform เนี่ยจะมีหลาย choice มากนะครับ ถ้าเราอยากจะ custom code ของเราเอง เราก็สามารถใช้ notebook บน AI Platform ได้ซึ่ง notebook บน AI Platform เนี่ย Google พัฒนามาจาก Jupyter notebook นะคับ ซึ่งเค้าได้ provide configuration พวก environment สำหรับการทำ model ใว้ให้เราหมดแล้ว หรือถ้าเราไม่อยากเขียน code เราก็ใช้ AutoML แทนได้เลยนะครับ จากนั้นเราก็สามารถ train model ของเราบน AI Platform นี้ได้เลย
ต่อมาก็คือการ validate โมเดลของเรานะครับ บน AI Platform เนี่ยเราสามารถ validate model ของเราได้โดยใช้ AI Explanation เพื่อดูประสิทธิภาพของ model ของเรา อีกทั้งเรายังสามารถใช้ Vizier ในการ tune hyperparameter เพื่อ optimize model ของเราให้ดีขึ้นได้อีกนะครับ
สุดท้ายก็คือการ deploy นะครับ ซึ่งการ deploy บน AI Platform นั้นเนี่ยเราสามารถ run online request prediction หรือ batch request prediction ก็ได้นะครับ
หรือจะใช้ TensorFlow Enterprise ก็ยังได้ ซึ่งเดียวผมจะมีอธิบายเรื่อง TensorFlow Enterprise ใน slide หลังจากนี้อีกนะครับ
จากภาพด้านบนเราสามารถเลือกใช้ service ต่างๆได้มากมายไม่ว่าจะเป็น service จำพวก sight (การมองเห็น), language (ภาษา), conversation (บทสนทนา), structured data (โครงสร้างของข้อมูล)
หลังจากที่ Google ได้เปิด open source TensorFlow มาเป็นเวลาหลายปี จนกระทั่งมันโด่งดังและได้รับความนิยมเป็นอย่างมาก ปัจจุบัน Google ก็ได้ประกาศ TensorFlow เวอร์ชันระดับ enterprise ขึ้นมาเพื่อลดความยุ่งยาก และซับซ้อน
โดยสิ่งที่ผู้ใช้งานเวอร์ชันระดับ enterprise จะได้รับก็คือเรื่องของการ support ในระยะยาว โดยที่ในบางเวอร์ชันนั้น Google จะมีการ patchให้นานถึง 3 ปีเลยทีเดียว นอกจากนี้ยังมีเรื่องของการได้รับความช่วยเหลือจากผู้เชี่ยวชาญทีม TensorFlow ของ Google อีกด้วย ซึ่งมันยังสามารถ deploy Tenserflow ผ่าน managed services เช่น AI Platform ที่ผมได้พูดไปก่อนหน้านี้ และ Kubenetes Engine ได้อีกด้วย
BigQuery ML เนี่ยเป็นตัวช่วยอย่างดีในการทำ machine learning ของทีม data เลยก็ว่าได้ เนื่องจากว่าในการทำ model หรือกระบวนการต่างๆทาง machine learning นั้นเนี่ย BigQuery ML จะใช้ภาษา SQL ทั้งหมด ซึ่งถ้าใครมี skill ทางด้าน SQL อยู่แล้ว หรือ ถนัดการใช้ SQL เป็นพิเศษก็จะสามารถเข้าใจ process ของมันได้ง่ายๆเลย นะครับ แถมมันยังทำงานได้รวดเร็วมากยิ่งขึ้นอีกด้วย เนื่องจากว่า dataset ของเรานั้นเก็บใว้ที่ BigQuery อยู่แล้ว ฉนั้นการสร้าง model หรือ การ predict model ก็จะสามารถทำได้อย่างรวดเร็ว
สามารถติดตามการอัพเดต models เพิ่มเติมได้ตรงนี้เลยครับ
หากใครสนใจอยากทดลองใช้งาน BigQuery ML แบบไม่อยากเสียค่าใช้จ่ายก็สามารถดูรายละเอียดได้จากตารางด้านบนนี้ได้เลยครับ
ในปัจจุบันเนี่ยนะครับการทำ Recommendation System ถือเป็นเรื่องที่มีประโยชน์ต่อ business ต่างๆอย่างมากเนื่องจากมันสามารถช่วย predict ได้ว่า อะไรเหมาะสมกับใคร หรือ คนนี้เหมาะกับอะไร ถือว่าเป็นอีกกลยุทธ์หนึ่งที่ดีมากๆเลยนะครับ และ ตัวอย่างที่ผมกำลังจะพูดถึงนี้นะครับ คือ การทำ movie recommendation ด้วย BigQuery ML นั่นเอง
Raw data
Predicted result
ก่อนอื่นเลยนะครับ การทำ model เนี่ยจะต้องเกิดจากการที่เราได้รับ requirements ก่อนนะครับและเราต้องมาตรวจสอบดูว่าเรามี input data แบบไหน เราต้องการผลลัพธ์อะไร ซึ่งแน่นอนครับว่า การทำ movie recommendation เนี่ย เราต้องการที่จะแนะนำหนังให้แก่ลูกค้าของเรานั่นเอง ซึ่ง data ที่ผมจะนำมาใช้ในที่นี้เนี่ย ให้ดูในตาราง raw data นะครับ สมมุติว่าเรามีข้อมูลที่เป็น ชื่อหนัง ประเภทของหนัง ID ของคนที่มา rating และ คะแนน rating ที่ได้ เราสามารถสร้าง model เพื่อที่จะมา predict movie recommendation ได้ โดยการใช้ Matrix factorization model นะครับ ซึ่ง model นี้เนี่ยมีใว้ predict ระบบ recommendation โดยเฉพาะเลยนะครับ โดยที่มันสามารถ predict ผลลัพธ์ให้เรา ได้จากการตรวจสอบว่า user คนนั้นๆเนี่ย ให้คะแนน rating ของหนังเรื่องอะไรมากที่สุด หนังประเภทไหนมากที่สุด และนำข้อมูลจากที่ได้ตรงนี้เนี่ย ไปตรวจหาผลลัพธ์ว่า หนังประเภทที่ลูกค้าคนนี้ชอบเนี่ยมีเรื่องไหนบ้างที่ผู้คนส่วนใหญ่ให้คะแนน rating มากที่สุด
สำหรับตัวอย่างการทำ predict movie recommendation นี้ ผมได้ใช้ build in fuction ที่มีการเขียน function เอาใว้ ซึ่งเราสามารถเรียกใช้ได้โดยที่ไม่ต้อง custom code เองใดๆ ในที่นี้ผมใช้ ML.EVALUATION หลังจากที่ผมสร้าง model เสร็จแล้ว เพื่อตรวจสอบว่า โมเดลของผมมีผลลัพธ์เป็นอย่างไรบ้าง มีค่า error เท่าไร โดยที่จากตาราง evaluate เราจะเห็นว่ามีค่า mean absolute error ซึ่งมันก็คือ การหาค่าเฉลี่ยของ error โดยการหาผลรวมของค่า absolute(error) แล้วคูณกับ 1/n เพื่อเปลี่ยนเป็นค่าเฉลี่ยนะครับ
ต่อมาคือค่า mean square error นะครับซึ่งวิธีการหาจะคล้ายๆกับ mean absolute error จะต่างกันตรงที่ mean square error นั้นจะนำค่า error ไปยกกำลังสองก่อน แล้วค่อยหาค่าเฉลี่ย
อีกค่านึงที่สำคัญนะครับ ก็คือ R2 score หรือ explained variance นะครับมันคือวิธีการหาค่าผลลัพธ์ว่าใกล้เคียงกับ 0 หรือ 1 มากกว่ากัน โดยที่ถ้าผลลัพธ์ของเราเข้าใกล้ 1 ก็จะหมายความว่าโมเดลของเรานั้นทำนายได้ดีมากๆ หรือ ถ้าเข้าใกล้ 0 ก็หมายถึงทำนายได้ไม่ค่อยดีนั่นเองนะครับ
ต่อมาก็คือ function ML.RECOMMED ก็จะเหมือนกับสไลด์ก่อนหน้านี้ ที่ผมได้กล่าวไปเมื่อสักครู่นะครับ ก็คือเป็น function ที่ใช้ในการ predict recommedation ให้กับเรานั่นเอง
เป็นยังไงกันบ้างครับสำหรับเนื้อหาในบทความนี้ หากใครอยากจะเสนอความคิดเห็นสามารถ comment ติชมเพื่อเป็นกำลังใจและเป็นการปรับปรุงการเขียนบทความให้กับผมในครั้งต่อไปได้เลยครับ
Written by Chayutapon Suwannachart
Cloud Ace Thailand
หากคุณสนต้องการคำปรึกษา Cloud Ace Thailand พร้อมให้บริการที่จะสนับสนุนคุณตั้งแต่ การให้คำปรึกษา จนถึงการออกแบบระบบ ติดตั้งระบบ ย้ายระบบ ในฐานะ Google Cloud Partner ที่มีความเชี่ยวชาญ และได้รับรางวัล Service partner of the year ในปี 2019
ติดต่อเรา th_sales@cloud-ace.com
Thank you for subscribing!
Have a great day!