Data Scientist là nghề sexy nhất của thế kỉ 21, theo Harvard Business Review nhận định. Với skillset chuyên sâu và trải dài trên nhiều lĩnh vực, các Data Scientist (nhà khoa học dữ liệu) cũng được ví “quý hiếm như kỳ lân”.
Sau đây là những chia sẻ của Nguyễn Hoàn về nghề Data Scientist để hiểu rõ hơn nhé.
- Data Scientist là gì? Công việc cụ thể của họ?
- Những tố chất và kỹ năng cần thiết?
- Học gì để trở thành một Data Scientist?
Tiểu sử: Nguyễn Hoàn tốt nghiệp Cử nhân tại ĐH KHTN TPHCM, chuyên ngành Software Engineering. Sau đó, anh học Thạc sĩ ngành Data Mining tại University of Trento, Ý. Năm 2013, Hoàn về nước, bắt đầu làm việc tại Sentifi với vị trí Data Scientist.
Hiện tại, anh Hoàn đang sống tại Pháp và làm việc từ xa (remotely) cũng với vị trí Data Scientist cho công ty Xomad có trụ sở tại LA, Mỹ.
Theo anh, Data Scientist là làm gì?
Data Scientist là người tạo ra giá trị từ data, với hai nhiệm vụ chính là:
- Thu thập, xử lý dữ liệu để tìm ra những insight giá trị.
Ví dụ, dựa trên thông tin thu thập được từ các post/comment/status trên mạng xã hội, Data Scientist có thể tìm ra được: cứ gần đến ngày Valentine thì tần suất xuất hiện của thương hiệu ABC cao hơn hẳn.
Đây là một insight giá trị mà bộ phận Marketing có thể sử dụng cho các chiến dịch quảng cáo trong mùa Valentine.
- Giải thích, trình bày những insight đó cho các bên liên quan, để chuyển hóa insight thành hành động.
Ví dụ, khi tìm ra được insight giá trị từ data, bạn cần làm report/presentation, hay visualization để biểu diễn, giải thích cho các bên liên quan hiểu được:
- Insight đó là gì, có ý nghĩa gì?
- Có thể ứng dụng cụ thể như thế nào để đem lại lợi ích cho doanh nghiệp/sản phẩm/người dùng.
Tuy nhiên, Data Scientist là nghề rất mới, nên định nghĩa về nó còn khá mơ hồ, nhập nhằng (ngay cả trên thế giới). Vì vậy, tùy theo từng công ty mà mô tả công việc, yêu cầu skillset, thậm chí job title có thể khác nhau đôi chút.
Sự khác biệt giữa Data Analyst và Data Scientist là gì?
Đúng là hai công việc này có trách nhiệm tương đối giống nhau. Ở một số công ty, Data Scientist có khi cũng là Data Analyst, hoặc thậm chí có thể nhập nhằng với cả Machine Learning Engineer, Data Engineer nữa.
Cá nhân mình thì nghĩ Data Scientist chia làm 2 dạng chính, tạm gọi nhánh A (Analysis) và nhánh B (Building), cụ thể:
- Data Scientist nhánh A (Analysis) là những thinker. Nhiệm vụ chính của họ là phân tích dữ liệu bằng các phương pháp thống kê để tìm ra insight giá trị. Data Scientist nhánh A cũng có thể gọi là Data Analyst.
- Data Scientist nhánh B (Building) thường mạnh về software engineering hơn. Họ đảm nhiệm việc xử lý/lưu trữ data, viết code/thuật toán cho các sản phẩm data của công ty.
Nếu cần một định nghĩa hẹp và cụ thể cho nghề Data Scientist, thì mô tả công việc của Data Scientist nhánh B sẽ chính xác hơn.
Bản thân mình thuộc về Data Scientist nhánh B, nên mọi chia sẻ cũng sẽ xoay quanh nhánh này.
Khác biệt lớn nhất giữa hai nhánh A và B của Data Scientist là gì?
Như đã nói ở trên, Data Scientist nhánh B mạnh hơn về software engineering. Bởi vậy, trách nhiệm công việc chính của họ là xây dựng các sản phẩm data cho công ty.
- Sản phẩm data cũng là một sản phẩm công nghệ phần mềm, song được xây dựng dựa trên dữ liệu. Ví dụ, tính năng recommendation của Amazon là một sản phẩm data. Nó được xây dựng dựa trên nền tảng dữ liệu mà Amazon đã tích lũy được từ trước. (Người dùng này đã mua những món đồ gì, có đặc điểm như thế nào, những món đồ tương tự, những món đồ nên mua kèm, những món đồ mà người dùng khác có hành vi tương tự đã mua.v.v…)
- Sản phẩm data có thể là một sản phẩm riêng biệt, hoặc là một phần trong sản phẩm lớn hơn. Ví dụ, tính năng recommendation là một sản phẩm data thuộc sản phẩm lớn là trang web Amazon.com.
- Sản phẩm data bao gồm nhiều thành phần, nhưng luôn có cốt lõi là model (mô hình dữ liệu) được phát triển bằng machine learning.
Anh có thể giải thích cụ thể hơn về mô hình dữ liệu (model)?
Mình nói về machine learning (máy học) trước nhé!
Ví dụ, hãy hình dung nôm na “máy” ở đây là một cái hộp đen. Bạn muốn dùng cái hộp đen này để phân biệt hình ảnh con chó với con mèo. Vậy thì:
- Bạn phải tìm rất nhiều hình ảnh của con chó, và hình ảnh của con mèo.
- Sau đó cho hộp đen đọc những hình ảnh này.
- Rồi dạy hộp đen: những đặc điểm nào trên bức hình sẽ cho biết đó là hình con chó, và những đặc điểm nào khác sẽ cho biết đó là hình con mèo.
- Cuối cùng, bạn đưa ra hai hình ảnh mới. Hộp đen sẽ nhận diện cho bạn đâu là hình con chó, đâu là hình con mèo dựa vào những gì nó đã được học.
Toàn bộ quá trình này gọi là machine learning. Còn cái hộp đen chính là một mô hình dữ liệu (data model). Machine learning là một lĩnh vực của trí tuệ nhân tạo, trong đó các thuật toán máy tính được sử dụng để tự học hỏi dựa trên dữ liệu đưa vào mà không cần phải được lập trình cụ thể.
Workflow của Data Scientist là gì?
Bước 1 – Input:
Workflow của Data Scientist bắt đầu với một nhu cầu/nhiệm vụ. Ví dụ: nhu cầu tìm kiếm bằng hình ảnh của Google: đưa cho máy một bức ảnh, kết quả sẽ trả về những bức ảnh tương tự.
Nhu cầu này có thể bắt nguồn từ:
- Do bộ phận business thu thập phản hồi của người dùng, và đề nghị có thêm tính năng ABC.
- Hoặc, do chính Data Scientist khi làm việc với dữ liệu, nghiên cứu đặc tính sản phẩm/công ty cũng như kiểu/lượng data hiện có… thì nảy ra sáng kiến phát triển thêm tính năng XYZ.
Bước 2 – Lên kế hoạch:
Sau khi xác định được nhu cầu/nhiệm vụ, Data Scientist sẽ họp và bàn bạc với bộ phận business cũng như các bên liên quan để xem xét:
- Làm tính năng này có khả thi hay không?
- Sẽ cần loại dữ liệu gì? Tìm ở đâu? Bao nhiêu là đủ? Lấy dữ liệu về như thế nào?.v.v…
- Cần bao nhiêu resources (nhân lực, thời gian…)?
- Tính năng này sẽ được gắn vào đâu trong sản phẩm cuối cùng của công ty, sẽ giúp ích được gì cho người dùng...
Bước 3 – Thu thập và làm sạch dữ liệu:
Để dạy cho máy cách phân biệt con chó với con mèo chẳng hạn, thì phải cho nó học càng nhiều hình ảnh càng tốt. Nên phải đi gom dữ liệu.
Dữ liệu gom xong sẽ còn rất lộn xộn và nhiều rác, thì mình phải làm sạch dữ liệu. Hoặc nếu dữ liệu chưa đủ, thì phải kiếm thêm.
Ví dụ: Có những hình mình không cần thì loại bỏ. Hình mình cần nhưng bị mờ thì làm cho nó rõ hơn. Hoặc hình thô (chưa gán nhãn) thì gán nhãn cho nó. Cũng có thể tìm thêm nguồn dữ liệu được open source và đã gán nhãn sẵn.
Sau đó, phải đồng bộ hóa dữ liệu.
Ví dụ, hình ảnh gom về có nhiều kích thước khác nhau, thì phải đưa hết về cùng một kích thước hoặc định dạng, tùy theo mô hình mình chọn.
Bước 4 – Chọn giải pháp:
- Nếu vấn đề đã có sẵn giải pháp
Thì lựa chọn/kết hợp các giải pháp lại (vd: chọn thuật toán ABC hoặc XYZ), chạy thử nghiệm, kiểm tra xem thử nghiệm nào là tốt nhất và vì sao, tiếp theo sẽ chọn giải pháp nào để phát triển thêm .v.v…
- Nếu vấn đề chưa có sẵn giải pháp
Thì cần làm research: tìm hiểu xem trước mình, đã có ai từng làm về vấn đề này chưa, giải pháp của họ là gì, có khả thi không, liệu giải pháp nào tốt hơn .v.v…
Sau đó, chọn ra một hoặc một loạt phương pháp để thử nghiệm giống như ở trên.
Bước 5 – Máy học:
Sau khi đã chọn được giải pháp, thì cần dành thời gian cho máy học.
Tùy theo model là gì, sử dụng công cụ nào, hệ thống công ty đã có sẵn những gì .v.v… mà mình sẽ cho model chạy qua chương trình, rồi điều chỉnh để kiểm soát performance đầu ra của model đó.
Khi train một model, hãy tưởng tượng giống như bạn có một bảng điều khiển với rất nhiều nút vậy. Bạn thử chỉnh cái nút này một chút, thấy kết quả ra tốt hơn chút xíu thì giữ lại, rồi thử chỉnh nút khác.
Cứ như vậy, cho đến khi ra được kết quả tốt nhất.
Ví dụ, có rất nhiều yếu tố để phân biệt con chó với con mèo. Tùy bạn điều chỉnh để máy tập trung vào dấu hiệu nào nhiều hơn (cái mõm/những vùng có vẻ cái mõm, màu lông .v.v…) Nó sẽ ưu tiên các dấu hiệu đó để nhận diện đúng hơn.
Bước 6 – Output:
Output công việc của Data Scientist là một model như đã giới thiệu ở trên. Sau đó, thông thường, model này sẽ được gắn vào một sản phẩm lớn.
Ví dụ: model để gợi ý mua hàng của trang web Amazon.
Đôi khi, nếu model là một giải pháp/phát kiến mới, thì bộ phận Data Science của công ty bạn sẽ có nhiệm vụ viết bài báo hoặc tổ chức hội thảo khoa học để công bố kết quả nghiên cứu.
Tuy nhiên, chỉ một vài công ty lớn như Facebook, Google… có bộ phận chuyên nghiên cứu về Data Science.
Và trên thực tế, cũng rất hiếm có phát kiến mới có thể áp dụng thực tiễn. Vì rất nhiều khi, bạn tạo ra được một mô hình tốt, chính xác song lại chạy quá chậm, quá tốn tài nguyên thì cũng không đưa vào sử dụng được.
Tố chất cần thiết để trở thành Data Scientist là gì?
1. Kiên nhẫn
Tố chất này cực kì quan trọng, vì Data Scientist phải dành phần lớn thời gian để thu thập dữ liệu và làm sạch chúng.
Ví dụ, bạn muốn làm một model dự đoán giá nhà.
Bạn sẽ phải thu thập dữ liệu về nhà từ nhiều nguồn khác nhau.
Mỗi nguồn này lại lưu dữ liệu theo một cấu trúc riêng. Vậy thì bạn phải quy chúng về một cấu trúc chung.
Sau đó, bạn làm sạch bằng cách loại bỏ các dữ liệu không phù hợp, như:
- Dữ liệu thiếu: có số lượng phòng mà không có diện tích.
- Dữ liệu rác: diện tích 10m2 mà giá 200 tỷ.
2. Giao tiếp tốt
Công việc của Data Scientist đòi hỏi phải giao tiếp rất nhiều, cụ thể:
- Giao tiếp với team business: Để hiểu rõ hơn về product cũng như requirements, từ đó tìm ra insights có giá trị.
- Giao tiếp với team engineer: Để áp dụng model của mình vào hệ thống, hoặc để đề nghị họ tổ chức/hệ thống data cho mình sử dụng.
- Trình bày/giải thích insights cho các bên liên quan hiểu: Để từ đó tìm cách đưa vào ứng dụng thực tế.
3. Thích tìm hiểu và thử cái mới
Nghề Data Scientist còn mới mẻ và sử dụng kiến thức liên ngành rất nhiều. Trong đó, mỗi ngành riêng lại luôn có bước tiến hoặc công nghệ mới.
Do đó, bạn cần thích tìm hiểu và thử cái mới, để có thể cập nhật kiến thức liên tục.
Còn kỹ năng cần thiết cho Data Scientist là gì?
Nghề Data Scientist đòi hỏi khá nhiều kiến thức và kĩ năng tổng hợp, bao gồm (nhưng không giới hạn):
- Machine learning: để học từ dữ liệu, từ đó tạo ra các predictive model.
- Database: giúp lưu trữ và truy xuất dữ liệu, cũng như thực hiện một số tính toán.
- Programming languages: viết code để áp dụng các model đã học được nói trên vào sản phẩm cụ thể, hoặc để thao tác với database.v.v…
- Visualization: giúp hiểu hơn về dữ liệu (ví dụ: phân bố của dữ liệu như thế nào), hoặc để trình bày kết quả phân tích.
Wow! Rất nhiều tố chất và kỹ năng cần rèn luyện! Vậy trong đó, 3 yếu tố nào quan trọng nhất?
Theo mình, 3 kỹ năng cơ bản nhất cũng chính là 3 yếu tố nền tảng để theo nghề Data Scientist:
1. Kiến thức toán học
Nếu muốn theo ngành này, bạn cần phải nắm chắc về toán. Lí do:
- Machine learning là sự kết hợp của các mô hình toán học chạy bên dưới. Ví dụ, khi cho máy học một bức ảnh để phân biệt con chó với con mèo. Thì bức ảnh đó sẽ được chia làm nhiều vùng tương ứng với 100 ô vuông chẳng hạn. Rồi bạn dạy cho cái máy rằng, trong bức ảnh, ô ở cụm phía bên góc trái có nhiều màu đen, kết hợp với ô ở cụm phía bên góc phải có nhiều màu trắng, thì đó là đặc điểm nhận biết con chó.
- Khi xử lý/làm việc với dữ liệu, bạn sẽ cần sử dụng rất nhiều kiến thức về toán, xác suất, thống kê, v.v…
- Tư duy toán học sẽ giúp bạn dễ tiếp thu và học các kĩ năng khác nhanh hơn.
2. Khả năng lập trình phần mềm
Công việc của Data Scientist nhiều khi rất gần với công việc của một software engineer. Vì vậy, “code cứng” là yêu cầu quan trọng.
Ví dụ như làm tool để lấy được dữ liệu về.v.v… 3. Sự nhạy bén
Khi nhìn vào dữ liệu, bạn cần đủ nhạy để suy đoán: đối với loại dữ liệu này thì có thể làm gì với nó, nên estimate như thế nào .v.v…
Ví dụ, với kiểu dữ liệu của Amazon, có thể xây dựng tính năng gợi ý mua hàng cho người dùng.
Sự nhạy bén này là tố chất, song cũng có thể tích lũy dần theo thời gian và kinh nghiệm làm việc.
Những yếu tố xác định mình phù hợp với nghề Data Scientist là gì?
Ngoài những yếu tố kể trên, bạn cần tự hỏi thêm:
- Bạn có thích làm việc với dữ liệu (mỗi ngày) không?
- Bạn có thể đọc paper khoa học mà không cảm thấy đó là rào cản lớn hay không?
- Bạn có thích machine learning không? (vì những thứ có vẻ hay ho thường sẽ dùng machine learning để làm)
Nếu câu trả lời là “có”, thì bạn có thể theo đuổi nghề Data Scientist.
Những kiến thức trong nhà trường cần học để trở thành một Data Scientist là gì?
Danh sách các kĩ năng và kiến thức cần học để trở thành một Data Scientist được liệt kê khá chi tiết tại datasciencemasters.org, các bạn rất nên tham khảo.
Còn trong môi trường Đại học ở Việt Nam, thì theo mình, các bạn nên học:
- Đại số tuyến tính và xác suất thống kê.
- Đạo hàm tích phân 😀
- Machine learning.
- Data mining.
- Database: SQL, noSQL.
- Ngôn ngữ lập trình: nên tiếp xúc với C/C++ và Java, sau đó tập trung vào Python (và có lẽ cả R).
- Ngoài ra, bạn nên làm quen với JavaScript, học để viết được web đơn giản, vẽ được đồ thị, biểu đồ.
- Bạn cũng nên biết về System, cụ thể Linux, Bash, OS.
Vậy học Data Science cần những resource nào?
- Datasciencemasters.org: Trang này tóm tắt các bước và khóa học data science cơ bản đến nâng cao.
- Khóa học về machine learning của Andrew Ng, Stanford (coursera.org/learn/machine-learning): Chính khóa học machine learning này đã giúp mình tìm thấy đam mê với nó. Nội dung khá dễ hiểu và trực quan.
- Kaggle.com là một trang bạn không thể bỏ qua nếu muốn áp dụng thử machine learning vào thực tế. Platform này giúp mọi người thi đấu với nhau trên những vấn đề cụ thể, xem machine learning model của ai tốt nhất.
- Chọn đọc một số blog trong danh sách này: https://www.quora.com/What-are-the-best-blogs-for-data-scientists-to-read-particularly-with-respect-to-R. Chọn tùy theo hứng thú cụ thể của bạn đối với các ngách nhỏ trong ngành Data Science.
- Tham gia các group trên Facebook như AI Valley, Artificial Intelligence and Deep Learning. Các group này giúp cập nhật thông tin mới nhất về AI, deep learning, machine learning.
- Ngoài ra, mình hay đọc datatau.com để cập nhật tin tức về data science, hoặc news.ycombinator.com để theo dõi tin tức về computer science nói chung.
Sai lầm lớn nhất anh từng phạm phải?
Suốt quãng thời gian ở Đại học, mình đã “học đại” nhiều thứ không thực sự hữu ích. Nguyên nhân vì hồi đó mình không xác định được rõ ràng hướng đi.
Chính sự loay hoay đó đã gây ảnh hưởng lớn, cản trở con đường sự nghiệp của mình. Và bây giờ, mình phải cố gắng gấp đôi gấp ba để học những kiến thức thiết thực hơn từ công việc.
Nghĩa là, thay vì theo hướng nghiên cứu, dev nên rèn luyện từ thực tế công việc?
Theo nghiên cứu hay làm việc trong ngành là những lựa chọn cá nhân, còn tùy vào sự phù hợp của mỗi người.
Điều mình muốn nói đến ở đây là, có một định hướng nghề nghiệp rõ ràng ngay từ đầu sẽ giúp bạn tiết kiệm rất nhiều công sức, thời gian, cũng như mở ra nhiều cơ hội hơn.
Tiếc rằng trong trường Đại học, phần tư vấn định hướng nghề nghiệp cho sinh viên không tốt.
Phần nhiều vì những người đảm nhiệm việc này lại không có kinh nghiệm làm việc trong ngành. Cho nên họ không thật sự hiểu các career path trên thực tế cần những kỹ năng, kiến thức gì.
Vậy các bạn trẻ nên tìm lời khuyên/chỉ dẫn về nghề nghiệp từ đâu?
- Tìm hiểu thông tin trên Internet.
ITviec Blog là nguồn tham khảo giá trị cho các bạn trẻ. Tại đây, bạn sẽ tìm được những lời khuyên/chỉ dẫn của các chuyên gia trong ngành.
- Tham gia các buổi meet-up giúp các bạn gặp và thảo luận với những người cùng ngành, học hỏi kinh nghiệm từ họ.
- Ngoài ra, làm thực tập cho các công ty cũng là một cách tốt để trải nghiệm môi trường làm việc thực tế. Bài học anh đúc rút cho bản thân?
Hãy thật cẩn trọng khi lựa chọn công việc đầu tiên, bởi nó sẽ ảnh hưởng rất lớn đến sự nghiệp của bạn.
Theo mình, với công việc đầu tiên, không nên đặt quá nặng vấn đề tiền bạc.
Cái mà bạn cần xem xét kĩ là:
- Môi trường làm việc có tốt không?
- Công việc có đúng định hướng, có giúp bạn phát triển kĩ năng không?
- Mentor có sẵn sàng chỉ bảo/tạo điều kiện hay không .v.v…
Vì vậy, mình muốn nhắn nhủ các bạn trẻ: một công ty dù quy mô nhỏ, và có thể trả lương thấp hơn mặt bằng chung, song nếu nó đem lại cho bạn những giá trị nói trên thì đừng vội quay lưng. Hãy cho cả hai bên một cơ hội.
Còn dĩ nhiên, sau một thời gian, nếu không nhận được những gì mong muốn, thì bạn hãy cứ mạnh dạn nhảy việc.
Theo itviec.com