ปี 2018 แอดมีโอกาสได้รู้จักกับพี่ออฟ Komson Chanprapan เคยเจอกันครั้งหนึ่งตอนพี่เค้ากลับมาไทย กินกาแฟ เม้ามอยกันที่ตึกดีแทค
แอดคิดในใจพี่คนนี้เค้าเท่จังวะ เก่งมากด้วย 555+
วันก่อนแอดเลยทักพี่ออฟไปทาง FB อยากขอสัมภาษณ์สั้นๆ ให้พี่ออฟช่วยแชร์ประสบการณ์ทำงานด้าน Data Science และ Machine Learning ที่ประเทศอเมริกาให้ทุกคนได้อ่านกัน
และนี่คือ 9 คำถามกับพี่ออฟ Director of Machine Learning ที่บริษัท Overstock.com
Table of Contents
Hello There!
[1] รบกวนพี่ออฟแนะนำตัวสั้นๆ ตอนนี้ทำงานที่ไหนอยู่ เรียนจบด้านไหนมาครับ?
สวัสดีครับ ออฟ ครับ คมสัน ชาญประพันธ์ ตอนนี้เป็น Director of Machine Learning ที่บริษัท Overstock.com (tech-driven online retailer) ประเทศสหรัฐอเมริกา
สำเร็จการศึกษาระดับปริญญาตรีและโทจากคณะเศรษฐศาสตร์ จุฬาลงกรณ์มหาวิทยาลัย และระดับปริญญาโทที่สอง กับปริญญาเอกจากคณะเศรษฐศาสตร์ University of Utah

[2] ทำไมพี่ออฟถึงสนใจมาทำงานสาย data science สำหรับพี่อ๊อฟ data science มีนิยามว่าอย่างไรครับ?
สมัยเรียนปริญญาเอกพี่ทำวิจัยด้าน efficiency ของบริษัทครับโดยเน้นการศึกษาจากทีมกีฬาอาชีพ เช่น NBA ว่าสถิติของนักกีฬาแต่ละคนแปลงเป็นผลงานการแข่งขันและตัวเงินได้เท่าไหร่
คล้ายๆกับหนังเรื่อง Moneyball ที่ Brad Pitt แสดง ทำไปทำมาเลยรู้สึกว่าจริงๆแล้วเราชอบทำงานกับข้อมูลมากกว่า ส่วนทฤษฎีต่างๆเป็นตัวประกอบเฉยๆ
ก็เลยเริ่มศึกษาเรื่อง data science อย่างจริงจัง สำหรับพี่ data science คือการเอา insights จากข้อมูลมาใช้ให้เกิดประโยชน์ในภาพรวมครับ
[3] สมัครงานที่ประเทศอเมริกายากไหมครับ ต้องเตรียมตัวยังไงบ้างเทียบกับที่ไทย?
ถ้าตอบตามตรงก็ยากครับ โดยเฉพาะเราเป็นคนต่างชาติด้วย หางานอยู่เกือบปีเหมือนกัน การเตรียมตัวคงไม่ต่างกับที่ไทยมากนักแต่ว่าการแข่งขันน่าจะสูงกว่า
นี่เดาเอาล้วนๆนะครับ เพราะไม่เคยสมัครงานที่ไทย 555+

การเตรียมตัวก็ต้องเรียนรู้ทำความเข้าใจ algorithms ต่างๆ เรียนการเขียนโค้ด หัดทำโปรเจ็คจาก public dataset เยอะๆ เช่น kaggle หลักๆคือต้องแสดงให้ผู้สัมภาษณ์เห็นว่าเราทำงานได้ ใช้โมเดลได้ถูกต้องและอธิบายผลได้ เข้าใจเรื่อง business ด้วยจะดีมาก
Skills & Scope of Work
[4] ตอนทำงานจริง พี่ออฟมี scope งานแบบไหนบ้างครับ หน้าที่ ความรับผิดชอบเป็นยังไงบ้าง อาจจะเล่าแบบ a day in a life?
ตอนนี้งานบริหารเต็มตัวครับ ประชุมทั้งวัน ประชุมกับทีมเพื่อดูโมเดลว่าถูกต้อง (รวมทั้ง code reviews) และสามารถเอาไปใช้งานได้จริงและสัมพันธ์กับเทคโนโลยี architecture และ infrastructure ที่บริษัทใช้งาน
ประชุมกับ product manager เพื่อเลือกโปรเจ็คที่จะส่งผลดีต่อบริษัทที่สุด วางแผนระยะเวลาและงบประมาณ ประเมิณความเสี่ยงต่างๆ ประชุมกับผู้บริหารระดับสูงและทีมอื่นๆในบริษัทเพื่อวางนโยบายของทีมและบริษัทจากข้อมูลที่มี
และมองหาโอกาสจากปัญหาที่ทีมอื่นๆกำลังประสบอยู่ว่าสามารถใช้ machine learning ในการ automate และ optimize แทนการใช้คนได้หรือเปล่าครับ

[5] ถ้าให้เลือก 3 ทักษะที่พี่ออฟคิดว่าสำคัญที่สุดในงานสาย data science ที่ทำตอนนี้ พี่คิดว่ามีทักษะอะไรบ้างครับ?
ข้อแรกคือการทำความเข้าใจปัญหาที่เรากำลังแก้หรือเป้าหมายที่เราต้องการ ส่วนตัวพี่คิดว่านี่เป็นปัญหาที่หลายคนมองข้าม บางคนไม่ตรวจสอบข้อมูลที่ได้มาแล้วรีบสร้างโมเดลเลย
ปรากฏว่าผลเชื่อถือไม่ได้เพราะข้อมูลผิดหรือไม่ก็โปรเจ็คที่ทำจนเสร็จไม่ใช่สิ่งที่ business ต้องการ ข้อสองคือความเข้าใจในโมเดลหรือ algorithms ที่ใช้
หลายคนที่พี่รู้จักตัดสินใจเลือกโมเดลไปแล้วตั้งแต่ยังไม่เห็นข้อมูล แต่พอถามว่าทำไมถึงใช้โมเดลนี้หรือโมเดลนี้เหมาะกับข้อมูลชุดนี้ยังไงกลับตอบไม่ได้
บางคนในเรซูเม่ใช้โมเดลอลังการมากแต่พอให้อธิบายกลับตอบไม่ได้ พวกนี้พี่ถือเป็น red flag คนที่ทำงานได้ดีไม่ใช่คนที่รู้จักโมเดลยากๆหรือรู้หมดทุกอย่าง แต่คือคนที่รู้ว่าจะเลือกใช้ข้อมูลหรือโมเดลแบบไหนให้เหมาะสมกับสถานการณ์
อีกอย่างพี่เชื่อว่าคนที่ใส่ใจหาความรู้เชิงลึก ถ้าถึงเวลาเค้าไม่เข้าใจอะไรแล้วได้รับคำแนะนำเค้าจะสามารถไปหาความรู้ต่อยอดได้เอง
ข้อสุดท้ายคือการสื่อสาร หลายๆคนอาจจะสงสัยว่าทำไมพี่ไม่พูดถึงการเขียนโค้ดหรือการ productionize เลย เหตุผลคือพี่มองว่าพวกนี้เรียนรู้เอาเองได้ โค้ดที่เราเขียนส่วนใหญ่จะคล้ายๆเดิม ส่วนอะไรที่ยากกว่านั้นมักจะมี engineer หรือ software developer ช่วย
สรุปเรื่องการสื่อสารเป็นทักษะที่สำคัญมาก เราต้องรู้ว่าข้อจำกัดคืออะไร วิธีเล่าเรื่องขายงาน อธิบายข้อมูลแบบไหนให้คนนอกเข้าใจได้ง่ายที่สุด ผลจากโมเดลเราดีแค่ไหนก็เป็นแค่ตัวเลขบนหน้าจอถ้าไม่มีใครเอาไปใช้งานต่อได้

[6] คำถามยอดฮิต ระหว่าง R vs. Python พี่คิดว่าเราควรเริ่มเรียนภาษาไหนก่อนดี ทุกวันนี้มีคนพูดถึง Go, Rust มากขึ้นด้วย พี่คิดว่าคนทำสาย data ต้องเขียนเป็นทุกภาษาเลยไหมครับ?
ขอตอบคำถามที่สองก่อนเพราะง่ายกว่า คำตอบคือไม่ต้องเรียนทุกภาษาครับ เรียนอย่างน้อยสองภาษาคือ SQL (ซึ่งเอาไปต่อยอดเป็น Hive หรือ Pig ได้เพราะคล้ายกัน)
ส่วนภาษาที่สอง Python หรือ R เป็นอะไรที่เถียงกันได้ไม่จบ 555+
โดยส่วนตัวแล้วพี่มองว่าคนที่เถียงกันส่วนใหญ่ไม่เข้าใจความแตกต่างระหว่างสายงานมากกว่า (รวมถึงบริษัทที่จ้างงานด้วย) สำหรับบริษัทพี่จะแยก data scientist กับ machine learning scientist จากกันชัดเจนครับ แต่หลายที่อาจจะเรียกรวมๆกันสุดท้ายแล้วคงแล้วแต่ลักษณะงาน
ถ้าเป็น data scientist งานจะเป็นประเภทดูข้อมูล หาความเชื่อมโยง คาดการณ์แนวโน้มในอนาคต พยายามอธิบายการเปลี่ยนแปลงของตัวแปรต่างๆและผลกระทบ ถ้างานลักษณะนี้ R คงเป็นตัวเลือกที่เหมาะสมกว่าเพราะว่า R พัฒนาโดยนักสถิติ เหมาะกับการวิเคราะห์และอ่านผล
ส่วนถ้าเป็นงานแนว machine learning เช่น การตั้งราคาสินค้าแบบ dynamic pricing การแนะนำสินค้าจากพฤติกรรมของลูกค้า (recommendation system) การแสดงผลสินค้าจากคำค้นหา (search and ranking) ไปจนถึงการแปลงข้อมูลตัวหนังสือหรือรูปภาพไปใช้งาน
งานพวกนี้ถ้าถามว่า R ทำได้มั้ย? ก็คงได้
แต่ว่า Python จะเหมาะสมกว่าเพราะเร็วกว่าและเหมาะกับข้อมูลเยอะๆ เอาไปต่อยอดได้ดีกว่า เช่น Big Data กับ PySpark งานจำพวกนี้ไม่ต้องนั่งจ้องตัวเลขอธิบายผล
เพราะฉะนั้นถ้าถามพี่ว่าเรียนภาษาไหนก่อนดีพี่คงถามกลับไปครับว่าอยากทำงานแบบไหน 555+
Data Portfolio
[7] ทำ Portfolio แบบไหนหรือเรื่องประมาณไหนดี ถึงจะเข้าตาบริษัท เพิ่มโอกาสการได้งาน?
Storytelling ครับ ทำอะไร เป้าหมายคืออะไร จะเอาไปใช้งานยังไง ข้อมูลมาจากไหน ตรวจข้อมูล ทำความสะอาดข้อมูลยังไง เลือกใช้โมเดลไหนเพราะอะไร วัดผลข้อมูลยังไง เพราะอะไร และข้อดีข้อเสียของวิธีการที่ใช้คืออะไร
จากประสบการณ์พี่มักเจอคนที่พยายามขายงานแบบผิดๆ
เช่น โปรเจ็คต้องเว่อร์วังอลังการสร้างอภินิหารอะไรเยอะแยะ ทั้งที่จริงๆใช้แค่โมเดลคาดเดาราคาบ้าน linear regression หรือ fraud detection ง่ายๆก็แก้ปัญหาได้แล้ว
ถ้าทำได้ดีก็ดีแล้วครับ แต่ต้องฝึกเล่าเรื่องว่าเราทำสิ่งนี้ไปเพื่ออะไร เรามีกระบวนการจัดการข้อมูลที่ไม่สมบูรณ์ยังไง จัดการ outliers ยังไง แล้วมันจะส่งผลยังไงกับโมเดลถ้าปัญหานี้ไม่ถูกจัดการ

ลองเอาคำถามไปคิดเล่นๆได้นะครับ เช่น ถ้าเราใช้ Decision Tree แล้วไม่จัดการ outliers จะส่งผลยังไง ถ้าเราใช้ Linear Regression แล้ว impute missing value ด้วยค่าเฉลี่ยผลจะเป็นยังไง หรือเราจำเป็นแก้ปัญหา imbalanced class ใน Boosting Tree มั้ย
ที่สำคัญสุดๆคืออย่าไป copy โค้ดใครมา เอามาแค่โครงก็ไม่ได้
เคยเจอมาแล้วครับที่คนใช้ hyperparemeters ที่ไม่ตรงกับปัญหาที่ทำและอธิบายไม่ได้ด้วย แทนที่จะได้งานจะโดน Blacklist เอาครับ ที่ประเทศอเมริกาคือคัดคนเข้าบริษัทกันโหดมาก
How to Get Started?
[8] พี่ออฟอยากแนะนำน้องๆที่กำลังเริ่มงาน หรืออยากย้ายมางานสาย data ว่ายังไงบ้างครับ?
อยากแนะนำว่าถ้าอยากทำก็เริ่มทำครับ ไม่มีข้ออ้างอะไรทั้งนั้น ไม่มีเวลา ไม่รู้จะเริ่มตรงไหน ไม่นู่น ไม่นี่ ถ้ายังมัวอ้างอยู่งั้นก็ไม่ต้องทำครับ
ถ้าอยากทำงานสายนี้ขั้นแรกคือต้องเริ่ม วางแผนว่าจะทำยังไง พี่เรียนทุกอย่างด้วยตัวเอง หัดเขียนโค้ดเอง ไม่เคยเขียนโค้ดมาก่อนในชีวิตก็เริ่มจาก SQL ง่ายๆ
หนังสือมีให้อ่าน คอร์สมีให้ลงเรียนเยอะแยะ (DataRockie เงี๊ยะ) ค่อยๆเดิน แต่ต้องมีเป้าหมาย อย่าไปเริ่มจากอะไรยากๆ อย่าง Neural Net ถ้ายังทำ Linear Regression หรือ Decision Tree ไม่เป็น

พอเข้าใจพื้นฐานแล้วค่อยไปต่อ ขยันหาข้อมูลมาเล่นครับ ยิ่งทำมากยิ่งเป็นมาก เราจะเจอปัญหา แล้วตอนเราพยายามแก้ bug เราก็จะได้เรียนรู้ไปด้วย
อย่าเรียนอย่างเดียว ต้องเอามาปฏิบัติจริงด้วย ไม่มีอะไรยากเกินความพยายามครับ สู้ๆ
[9] แถม! ถ้าวันนี้พี่ออฟไม่ได้ทำงาน data science พี่ออฟคิดว่าตอนนี้พี่จะทำอะไรอยู่ครับ?
ทำฟาร์มหมาเวสตี้ครับ! ล้อเล่นนะ อันนี้หลงลูกชายเฉยๆ
คิดว่าคงสอนหนังสืออยู่ในมหาวิทยาลัยซักที่มั้งครับ แต่ที่รู้ๆคงจะเป็นงานที่น่าเบื่อมากแน่ๆ เพราะว่าตอนนี้พี่สนุกกับงานที่ทำแล้วก็รู้สึกว่าที่ลงทุนลงแรงไปทั้งหมดมันคุ้มค่าครับ
แถมคลิปโปรโมตลูกชายและเมืองที่อยู่เผื่อมีใครสนใจตามมานะครับ
Interview Insights
พอได้คุยกับพี่ออฟ แอดก็ได้กลับมาทบทวนความคิดตัวเองเยอะเลย หลายอย่างที่พี่ออฟเล่าให้ฟังยืนยันสิ่งที่แอดเชื่อมาตลอด
- เรียนพื้นฐานให้แน่น เข้าใจและรู้ที่มาที่ไปของสิ่งที่เราทำ
- ทำโมเดลมาดีแค่ไหน เล่าไม่ได้ก็จบ storytelling คือทักษะที่สำคัญมากๆ (ในทุกสายงาน)
- จะเรียน R หรือ Python อยู่ที่เป้าหมายว่าเราอยากทำอะไร ส่วน SQL เป็น a-must ต้องเรียนรู้เป็นภาษาแรกเอาไปต่อยอดได้หลายอย่าง
- เรียนแล้วลงมือทำจริง สร้าง portfolio/ project ยิ่งทำเยอะ ยิ่งเป็นไว
- ตั้งใจเรียน ไม่ย่อท้อ เรื่องพวกนี้ใช้เวลา จะเก่งข้ามคืนเลยเป็นไปได้ยาก เหมือนที่ Drew Conway เคยบอกไว้เมื่อ 10 ปีที่แล้วว่า One needs to learn a lot ถ้าอยากเข้ามาทำงานสาย data science
ขอบคุณพี่ออฟที่มาแชร์ประสบการณ์มากๆครับ เพื่อนๆที่สนใจเรียนต่อหรืออยากไปทำงาน data science ที่ประเทศอเมริกา สามารถ connect กับพี่ออฟได้ทาง LinkedIn นะครับ
Leave a Reply