วิเคราะห์ข้อมูลอย่างชาญฉลาด ด้วย Google Cloud แพลตฟอร์มสำหรับ Big Data จาก Google


วิเคราะห์ข้อมูลอย่างชาญฉลาด ด้วย Google Cloud แพลตฟอร์มสำหรับ Big Data จาก Google

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

เพราะฉะนั้นเนี่ย Google Cloud Platform ก็ถือเป็นตัวเลือกที่ดีสำหรับ องค์กร หรือ ใครก็ตามที่กำลังมองหาการทำ Smart Analytics อยู่นะครับ ดังนั้น blog นี้ผมจะกล่าวถึง services และ solutions ที่ใช้ในการทำ Smart Analytics บน Google Cloud


ทำไมถึงต้องใช้ 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

ลงทะเบียนเข้าร่วมฟรี ! คลิกที่นี่

อะไรคือหัวใจหลักของการทำ Smart Analytics บน GCP?

และมันก็ไม่ใช่ 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

อะไรบ้างที่ถือว่าเป็น highlight ของ BigQuery?

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 ด้านล้างนี้นะครับ

    Operation ไหนบ้างที่จะถูกคิดเงินจากการใช้งาน BigQuery?

    หากใครไล่อ่านมาตั้งแต่ หัวข้อแรกๆนะครับ ก็คงจะเข้าใจถึง 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 ในการทำ Smart Analytics บน GCP

    Solution 1 — Data warehouse modernization

    สำหรับ solution แรกนะครับ ก็คือการทำ คำถามก็คือ การทำ data warehouse modernizsation บน Google Cloud เนี่ยจะช่วยอะไรแก่องค์กรบ้า? และจะเกิดข้อดีอะไรแก่องค์กรบ้าง?

    1. ช่วยประหยัดเวลาอันมีค่าของเราได้มากขึ้นอย่างแน่นอนเนื่องจากมันเป็น serverless อีกทั้งเรายังสามารถเริ่มโปรเจคได้ทันที พร้อมทั้งยังสามารถย้ายมาใช้ BigQuery ได้อย่างรวดเร็วด้วย Google migration path นะครับ
    2. การทำ modernize ด้วย BigQuery เนี่ย ไม่จำเป็นที่จะต้องลงทุนเยอะเลยนะครับ ประหยัดทั้งเวลาที่จะใช้ในการทำงานทั้ง human resource
    3. สามารถมั่นใจได้แน่นอนว่า data ของเรานั้นปลอดภัยด้วย data security ของ BigQuery นั้นเอง อีกทั้งการ migrate มา BigQuery นั้นจะไม่ส่งผลกระทบต่อ performance ใดๆอีกด้วยนะครับ

    Band logo ด้านบนนี้คือ ตัวอย่างของลูกค้าที่ทำ data warehouse modernization ของ Google Cloud นั้นเอง ไม่ว่าจะเป็น HSBC bank หรือ AirAsia และอื่นๆอีกมากมาย

    Solution 2 — Data lake modernization

    การทำ 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 นั้นตอบโจทย์สุดๆ ถูกแน่นอน

    Solution 3 — Stream analytics

    การที่เราทำ 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 4 — Business intelligence

    อีกหนึ่ง 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 เลยทีเดียว

    Solution 5 — Marketing analytics

    อีก 1 solution ในการทำ Smart Analytics ก็คือ การทำ Marketing analytics นะครับ ซึ่งในการที่เราทำ marketing analytics เนี่ย มันจะช่วยให้เราได้รับอะไรบ้าง

    1. ทำให้เราเข้าใจ journey ของ customer มากยิ่งขึ้น journey ในที่นี้หมายถึง พฤติกรรม หรือ การใช้ชีวิตนะครับ ซึ่งการที่เราจะสามารถเข้าใจ data พวกนี้ได้เนี่ย เราควรที่จะต้องรวมทุก data ให้มาอยู่ด้วยกันเพื่อให้มองเห็นภาพใหญ่นะครับ
    2. ต่อมาก็คือเราสามารถคาดการณ์เกี่ยวกับผลรับทางการตลาดและ ผลลัพทางธุรกิจได้
    3. และสุดท้ายนะครับ ก็คือเราสามารถรับรู้ได้ถึง customer experiences นั่นเอง สามารถคาดการณ์ได้ว่า ผลกระทบคืออะไร เราควรจะต้องตัดสินใจแบบไหน เพื่อให้ business ของเรามันเดินต่อไปได้ด้วยดี สิ่งเหล่านี้เราสามารถใช้ Machine Learning เข้ามาช่วยได้นะครับ ซึ่ง Google Cloud เองนั้นเนี่ยมี services ที่เป็น Machine Learning และ AI อยู่ พร้อมให้เราใช้งานเป็นจำนวนมาก เดียวเราจะมาพูดถึงกันใน slide ถัดไปนะครับ

    Machine Learning And AI on GCP

    ถ้าพูดถึง Machine Learning และ AI บน GCP นะครับ เราควรที่จะทำความรู้จักกับ 3 สิ่งนี้นะครับ นั่นก็คือ AI Platform, AI building blocks, TensorFlow Enterprise

    AI Platform

    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 หลังจากนี้อีกนะครับ

    AI Building Blocks

    จากภาพด้านบนเราสามารถเลือกใช้ service ต่างๆได้มากมายไม่ว่าจะเป็น service จำพวก sight (การมองเห็น), language (ภาษา), conversation (บทสนทนา), structured data (โครงสร้างของข้อมูล)

    สรุปคร่าวๆ เกี่ยวกับ services ต่างๆใน AI Building Blocks

    Sight

    • Vision = ตรวจ object ในรูปภาพ
    • Video = ตรวจ object ที่เคลื่อนไหวใน video

    Language

    • Translation = แปลภาษา
    • Natural Language = ดูโครงสร้างของประโยค แบ่งประโยค ตัดคำ แบ่งคำ

    Conversation

    • Dialogflow = สร้าง virtual agent ขึ้นมาเพื่อโต้ตอบบทสนทนากับเรา
    • Text to Speech = การเปลี่ยนพวก text หรือ ตัวหนังสือ ให้เป็น คำพูด
    • Speech to text = การเปลี่ยนพวก คำพูดให้เป็นตัวหนังสือ เช่นเอาใว้ทำ subtitle

    Structured data

    • AutoML table = คือการทำ machine learning model ด้วย ข้อมูลที่เป็นรูปแบบตาราง
    • Recommendation AI = คือการทำ product recommedation
    • Cloud inferenece API = ช่วยให้เรารวบรวม insight จาก time-series datasets ที่มี scale ขนาดใหญ่ได้

    TensorFlow Enterprise

    หลังจากที่ Google ได้เปิด open source TensorFlow มาเป็นเวลาหลายปี จนกระทั่งมันโด่งดังและได้รับความนิยมเป็นอย่างมาก ปัจจุบัน Google ก็ได้ประกาศ TensorFlow เวอร์ชันระดับ enterprise ขึ้นมาเพื่อลดความยุ่งยาก และซับซ้อน

    โดยสิ่งที่ผู้ใช้งานเวอร์ชันระดับ enterprise จะได้รับก็คือเรื่องของการ support ในระยะยาว โดยที่ในบางเวอร์ชันนั้น Google จะมีการ patchให้นานถึง 3 ปีเลยทีเดียว นอกจากนี้ยังมีเรื่องของการได้รับความช่วยเหลือจากผู้เชี่ยวชาญทีม TensorFlow ของ Google อีกด้วย ซึ่งมันยังสามารถ deploy Tenserflow ผ่าน managed services เช่น AI Platform ที่ผมได้พูดไปก่อนหน้านี้ และ Kubenetes Engine ได้อีกด้วย

    BigQuery ML คืออะไร?

    BigQuery ML เนี่ยเป็นตัวช่วยอย่างดีในการทำ machine learning ของทีม data เลยก็ว่าได้ เนื่องจากว่าในการทำ model หรือกระบวนการต่างๆทาง machine learning นั้นเนี่ย BigQuery ML จะใช้ภาษา SQL ทั้งหมด ซึ่งถ้าใครมี skill ทางด้าน SQL อยู่แล้ว หรือ ถนัดการใช้ SQL เป็นพิเศษก็จะสามารถเข้าใจ process ของมันได้ง่ายๆเลย นะครับ แถมมันยังทำงานได้รวดเร็วมากยิ่งขึ้นอีกด้วย เนื่องจากว่า dataset ของเรานั้นเก็บใว้ที่ BigQuery อยู่แล้ว ฉนั้นการสร้าง model หรือ การ predict model ก็จะสามารถทำได้อย่างรวดเร็ว

    อะไรคือข้อดีของการใช้ BigQuery ML?

    ปัจจุบัน BigQuery ML สามารถใช้ models ได้ดังนี้

    • Linear regression เป็นโมเดลความสัมพันธ์ระหว่างตัวแปรกับสิ่งที่เราสนใจ เช่น สินค้า กับ คุณภาพของสินค้า (Labeled Data)
    • Binary logistic regression เป็นโมเดลที่เอาใว้สำหรับจำแนกประเภทโดยที่ possible values จะมีแค่ 2 values ยกตัวเช่น เราอยากจะหาว่าลูกค้าจะทำการสั่งซื้อหรือไม่ (Labeled Data)
    • Multiclass logistic regression เป็นโมเดลที่เอาใว้สำหรับจำแนกประเภทเช่นเดียวกันกับ binary logistic regression แต่ว่า โมลเดล multiclass นี้จะสามารถมี values ได้หลาย values อย่างเช่น low, medium, high (Labeled Data)
    • Matrix Factorization เป็นโมเดลที่เอาใว้ทำ recommendation system โดยเฉพาะ โดยที่เราสามารถสร้างระบบการแนะนำได้โดยอ้างอิงข้อมูลที่เป็นประเภท historical customer behavior, transaction, product rating อะไรพวกนี้นะครับ (Unlabeled Data)
    • K-means clustering เป็นโมเดลที่ใช้ในการแบ่งกลุ่ม เช่น เราอยากจะแบ่งกลุ่มประเภทของลูกค้าว่า behavior การซื้อ product ของลูกค้าเนี่ย อยู่ในประเภทไหน ซื้อมาก ซื้อปานกลาย ซื้อน้อย ซึ่งโมเดลนี้จะเป็น unsupervised learning นะครับ ดังนั้นตอนทำ model training เราจะไม่ต้อง label และไม่ต้อง แบ่ง data ออกเป็น training กับ evaluation อีกด้วย (Unlabeled Data)
    • Time series เนี่ยเป็นโมเดลที่เอาพยากรณ์เทียบกับรูปแบบเวลาที่เป็น time-series นะครับ หรือพูดง่ายๆ ว่าข้อมูลที่มีการเปลี่ยนแปลงไปตามเวลานั่นเอง ยกตัวอย่าง เช่น ค่าเงินบาท, ราคาหุ้น อะไรประมาณนี้นะครับ
    • Boosted Tree เอาใว้สำหรับสร้าง XGBoost อีกทีนึงนะครับ ซึ่งมันคือ model ที่นำเอา Decision Tree มา train ต่อๆกันหลายๆ รอบ โดยที่แต่ละ decision tree จะเรียนรู้จาก error ของ tree ก่อนหน้า ทำให้ความแม่นยำของในการทำ prediction จะ แม่นยำมากขึ้นเรื่อยๆ
    • Deep Neural Network (DNN) เอาใว้สร้าง TensorFlow based Deep Neural Networks สำหรับการจำแนกประเภท และ ทำ regression model
    • AutoML Tables เป็นการทำ ML โดยที่มีข้อมูลในลักษณะที่เป็นตาราง หรือ structure data โดยที่การทำ model นี้เนี่ย เราไม่ต้องทำ feature engineering หรือ model selection เลย ซึ่งมันจะ search หา model architecture เพื่อหาว่า model ไหนดีที่สุดนั่นเอง
    • TensorFlow model importing เป็น feature ที่อนุญาติให้เรา สร้าง model จาก การ train TensorFlow model ก่อนหน้า จากนั้นทำการ predict ใน BigQuery ML ได้เลย

    สามารถติดตามการอัพเดต models เพิ่มเติมได้ตรงนี้เลยครับ

    BigQuery ML — Free Tier

    หากใครสนใจอยากทดลองใช้งาน BigQuery ML แบบไม่อยากเสียค่าใช้จ่ายก็สามารถดูรายละเอียดได้จากตารางด้านบนนี้ได้เลยครับ

    ตัวอย่างการใช้ BigQuery ML เพื่อทำนาย movie recommendations

    ในปัจจุบันเนี่ยนะครับการทำ 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 มากที่สุด

    BigQuery ML’s build-in function สำหรับการทำ Matrix Factorization

    สำหรับตัวอย่างการทำ 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


    Make It Now!

    หากคุณสนต้องการคำปรึกษา Cloud Ace Thailand พร้อมให้บริการที่จะสนับสนุนคุณตั้งแต่ การให้คำปรึกษา จนถึงการออกแบบระบบ ติดตั้งระบบ ย้ายระบบ ในฐานะ Google Cloud Partner ที่มีความเชี่ยวชาญ และได้รับรางวัล Service partner of the year ในปี 2019

    ติดต่อเรา th_sales@cloud-ace.com

    .