Đi dạo trong ngành IT 5: Data Science

 Xin chào tất cả mọi người, mình là Hoài Thanh và chủ đề của blog ngày hôm nay xoay quanh về Data Science. Hãy cùng theo chân mình tìm hiểu về ngành Data Science nha ^^.

// Ps: Mình cũng chính là tác giả của bài viết số thứ 4 trong series đi dạo trong ngành IT, nếu bạn muốn tìm hiểu thêm về lĩnh vực IT Security thì có thể tham khảo thêm trong link sau: https://didaotrongnganhcntt.blogspot.com/2021/10/i-dao-trong-nganh-it-4-it-security.html

Bài viết gồm 4 phần:

Phần 1:  Đi dạo vòng quanh Data Scientist?

Phần 2: Công việc chủ yếu của Data Scientist có phải là cào data?

Phần 3: Các kiến thức cần thiết để trở thành Data Scientist

Phần 4: Tố chất của một Data Scientist

Phần 1:  Đi dạo vòng quanh Data Scientist?

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”. Bài viết này chúng ta sẽ cùng nhau làm rõ

  • 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?


DATA SCIENTIST LÀ 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: 1) Insight đó là gì, có ý nghĩa gì? 2) 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ồ (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

Đú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 Analys

  • 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.

SỰ KHÁC BIỆT LỚN NHẤT GIỮA 2 NHÁNH A VÀ B CỦA DATA SCIENTIST

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.

Phần 2: Công việc chủ yếu của Data Scientist có phải là cào data?

Để có thể hiểu được Data Scientist là làm những công việc gì, chúng mình cùng xem qua về mô hình dữ liệu và workflow của một data scientist:

  1. 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à máy học (machine learning). Còn cái hộp đen chính là một mô hình dữ liệu (data model).

    Machine learning (máy học) 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ể.

  2. 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.
    • .v.v…

    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 - MACHINE LEARNING (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.

Những ký năng cần thiết của ngành Data Scientist

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.

Phần 3: Các kiến thức cần thiết để trở thành Data Scientist

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 đồ.

Data Science source để học:

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.

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 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.

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.
  • Bạn cũng nên biết về System, cụ thể Linux, Bash, OS.

3 KĨ NĂNG NỀN TẢNG KHI BƯỚC CHÂN VÀO CON ĐƯỜNG DATA SCIENTIST:

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…

Xem thêm Những nguyên tắc sống còn trong lập trình

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.

Phần 4: Tố chất của một Data Scientist

Trước khi bắt đầu dấn thân vào Data science, bạn cần tự hỏi:

  • Bạn có thích làm việc với dữ liệu (mỗingà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.

TỐ CHẤT CẦN THIẾT ĐỂ TRỞ THÀNH MỘT DATA SCIENTIST:

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ế.Xem thêm Cách để giao tiếp tốt: giống như một vòng lặp khép kín (close loop)

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.

Woa, chúc mừng bạn đã đi được đến đây tại chuyến hành trình vòng quanh ngành Data science. Nếu bạn đã đi đến đây mình tin bạn thực sự có thể trở thành một lập trình viên tốt. Hy vọng bài viết đã giúp bạn có thêm định hướng về ngành Data ^^.

Blog kì này đến đây là hết rồi, à quên nữa, khi đọc xong các bạn giúp nhóm mình thực hiện một form khảo sát này nha ^^

Form: Đánh giá bài Blog Đi dạo trong ngành IT (google.com)

Tác giả: Trương Hoài Thanh - đồng hành cùng Những Nụ Cười Mới Club

Comments

Popular posts from this blog

Đi dạo trong ngành IT 9: Working in Graphic Design

Đi dạo trong ngành IT 0: Software Engineering and Graphic Design

Đi dạo trong ngành IT 3: Game Developer