Bật mí công nghệ làm nên “đế chế” Netflix – Công ty truyền phát phim trực tuyến lớn nhất hiện nay

461

Trong thời đại trí tuệ nhân tạo ngày càng lên ngôi thì câu hỏi “Công nghệ học máy cải thiện chất lượng streaming1 như thế nào?” đang rất được quan tâm. Trong bài viết này, chúng ta sẽ đi vào tìm hiểu những thách thức về mặt công nghệ mà Netflix gặp phải trong vấn đề streaming video, các mô hình thống kê và kĩ thuật học máy đã giúp công ty này vượt qua những thách thức đó như thế nào.

Netflix đã stream tới hơn 139 triệu thành viên trên khắp thế giới (số liệu tháng 1/2019) và một nửa trong số đó không thuộc Hoa Kỳ. Việc cung cấp trải nghiệm streaming chất lượng cho đối tượng khán giả trên toàn cầu là một thách thức về mặt công nghệ vô cùng to lớn với công ty này. Để vượt qua thách thức này các kĩ sư phải tốn nhiều nguồn lực trong việc cài đặt và duy trì máy chủ trên khắp thế giới, cũng như hoàn thiện thuật toán streaming nội dung từ các server tới thiết bị của người đăng ký thuê bao dịch vụ.

Khi khán giả xem truyền hình có nhiều yêu cầu nội dung khác nhau, xem trên các thiết bị có cấu hình, tình trạng mạng khác nhau thì việc ứng dụng một giải pháp streaming video cho tất cả người dùng trở nên không tối ưu. Ví dụ:

  • Hành vi xem/lướt web trên các thiết bị di động khác với TV thông minh.
  • Mạng di động có thể không ổn định bằng mạng băng thông rộng.
  • Mạng internet tại một số thị trường có thể gặp tình trạng nghẽn ở cấp độ cao.
  • Các nhóm thiết bị khác nhau có cấu hình, tính năng khác nhau.

Netflix cần tùy chỉnh cách tiếp cận đối với các điều kiện khác nhau để cung cấp trải nghiệm chất lượng cao tới những người dùng hiện tại cũng như mở rộng ra thị trường mới. Công ty theo dõi tình trạng mạng, tình trạng thiết bị, kiểm tra trải nghiệm người dùng (Ví dụ: chất lượng video), từ đó sử dụng mô hình thống kê và học máy cho phù hợp. Bài viết sẽ mô tả một vài thách thức về công nghệ Netflix đối mặt.

Đặc tính hóa (characterization) và dự báo chất lượng mạng

Chất lượng mạng khó để dự đoán và đặc tính hóa (characterize). Trong khi băng thông trung bình và thời gian trễ trọn vòng2 (round trip time) là chỉ số phổ biến của chất lượng mạng thì các đặc điểm khác như độ ổn định và khả năng đoán định sẽ tạo ra sự khác biệt lớn khi stream video. Chất lượng mạng giàu đặc tính hơn sẽ hữu ích trong việc phân tích mạng (hướng đối tượng/phân tích cải thiện sản phẩm), quyết định chất lượng ban đầu video/hoặc thích ứng chất lượng video trong quá trình quay lại video (sẽ trao đổi nhiều hơn ở dưới)

Hình dưới là một vài ví dụ về mạng được đo lường trong một phiên xem video thời gian thực. Bạn có thể thấy rằng khá nhiễu và có dao động lớn. Liệu chúng ta có thể đoán thông lượng (throughput) sẽ như thế nào trong 15 phút nữa khi có dữ liệu của 15 phút trước? Làm thế nào chúng ta có thể kết hợp thông tin lịch sử trên một khung thời gian dài hơn về mạng và thiết bị? Dữ liệu gì chúng ta cần cung cấp từ máy chủ để cho phép thiết bị thích ứng một cách tối ưu nhất? Ngay cả khi chúng ta không thể đoán chính xác khi nào việc rớt mạng xảy ra (điều này xảy ra tới từ mọi các nguyên nhân. Ví dụ: việc bật lò vi sóng lên hoặc bật kênh và streaming trên một phương tiện di chuyển nào đó), liệu ít nhất chúng ta có thể phân loại đặc tính phân phối của thông lượng (throughput) mà chúng ta kì vọng thấy được khi có các dữ liệu lịch sử?

Bởi chúng ta đang quan sát các dấu hiệu đó trên một quy mô rộng nên sẽ có khả năng sử dụng mô hình phức tạp kết hợp các mẫu nhận dạng thời gian với các chỉ số ngữ cảnh (contextual) khách nhau, để từ đó đưa ra những dự đoán chính xác hơn về chất lượng mạng.

Ví dụ về thông lượng mạng đo được từ quá trình xem trong thời gian thực.

Một ứng dụng hữu ích của việc dự đoán mạng là việc thích ứng chất lượng video trong quá trình tua lại, chúng tôi sẽ mô tả trong phần sau đây.

Thích ứng chất lượng video trong quá trình phát lại (playback)

Phim và các màn trình diễn thường được mã hóa trong một vài chuẩn chất lượng video để hỗ trợ năng mạng và thiết bị với những chất lượng khác nhau. Các thuật toán streaming thích ứng (Adaptive) chịu trách nhiệm thích ứng chuẩn chất lượng video nào sẽ được stream trong suốt quá trình playback dựa trên tình trạng của mạng và thiết bị hiện tại. Con số sau sẽ chứng minh cấu hình cho việc thích ứng chất lượng video. Liệu chúng ta có thể tận dụng dữ liệu để xác định chất lượng video sẽ giúp tối ưu hóa chất lượng và trải nghiệm? Chất lượng của trải nghiệm có thể được đo bởi một vài cách, bao gồm thời gian ban đầu chờ video chạy, chất lượng tổng thể của video trải nghiệm bởi người dùng, số lần playback ngưng lại để tải thêm video vào vùng đệm – buffer (quá trình này gọi là rebuffer) và số lượng dao động cho phép của chất lượng trong quá trình playback.

Minh họa vấn đề thích ứng chất lượng video. Video được mã hóa ở một vài dạng chất lượng khác nhau (ở hình trên: chất lượng cao màu xanh, trung bình màu vàng, thấp màu đỏ). Mỗi phiên bản chất lượng của video được chia thành các cụm (chunk) bao gồm các đơn vị thời gian định sẵn (hộp màu xám). Quyết định đượcc đưa ra về chất lượng nào chọn cho mỗi cụm thông tin được tả.

Sẽ có sự đánh đổi giữa các chỉ số này: chúng ta có thể chọn lựa cách chủ động và stream video với chất lượng rất cao nhưng sẽ gia tăng rủi ro rebuffer. Hoặc chúng ta có thể chọn tải về nhiều video trước và giảm rủi ro rebuffer và đánh đổi bằng thời gian chờ nhiều hơn. Tín hiệu phản hồi của một quyết định sẽ bị chậm lại. Ví dụ, khi chủ động chuyển sang chất lượng cao hơn sẽ không tạo ra tác động tức thì nhưng có thể từ từ làm giảm buffer và cuối cùng dẫn tới sự kiện rebuffer trong một vài trường hợp. Vấn đề “credit assignment” này là một khó khăn phổ biến khi học cách kiểm soát tối ưu thuật toán; các kĩ thuật học máy (ví dụ: tiến bộ gần đây trong học tập tăng cường) có tiềm năng lớn để xử lý những vấn đề đó.

Dự đoán caching (Predictive Caching)

Một lĩnh vực trong đó mô hình thống kê có thể cái thiện trải nghiệm streaming bằng cách đoán người dùng sẽ bật gì để cache (một phần) nó trên thiết bị trước khi người dùng ấn nút bật, cho phép video bắt đầu nhanh hơn và/hoặc ở chất lượng cao hơn. Ví dụ, Netflix có thể tận dụng từ thực tế rằng một người dùng đang xem phim một dòng phim cụ thể nào đó rất có khả năng sẽ bật tập phim chưa được xem. Bằng cách kết hợp nhiều khía cạnh khác nhau của lịch sử xem phim cùng với tương tác gần đây của người dùng và các tình huống ngữ cảnh khác, Netflix có thể công thức hóa việc này như một vấn đề có sử dụng việc học giám sát, từ đó Netflix có thể tối ưu hóa khả năng của mô hình trong việc caching những gì người dùng sẽ thực sự bật lên, trong khi đó tôn trọng những hạn chế xung quanh việc sử dụng tài nguyên xuất phát từ độ lớn của cache và băng thông sẵn có. Chúng tôi đã chứng kiến sự giảm đáng kể trong thời gian chờ video bắt đầu khi đưa vào mô hình dự đoán caching.

Phát hiện sự bất thường trên thiết bị

Netflix vận hành trên hàng ngàn loại thiết bị, trải rộng từ laptop cho tới máy tính bảng, TV thông minh, điện thoại di động. Các thiết bị mới thường xuyên được bổ sung vào hệ sinh thái và các thiết bị hiện tại được cập nhật firmware và có sự thay đổi trên ứng dụng Netflix. Thường những thay đổi như vậy sẽ không tránh khỏi sự giật mạng nhưng ở quy mô này việc gây ra vấn đề cho trải nghiệm người dùng không phải là việc hiếm xảy ra. Ví dụ ứng dụng không khởi động hoặc việc phát lại (playback) bị ngưng lại hoặc diễn ra không như ý một cách nào đó. Ngoài ra, có một vài xu hướng về chất lượng thiết bị sẽ diễn ra dần dần theo thời gian. Ví dụ, một chuỗi các thay đổi trong giao diện người dùng (UI) có thể làm giảm từ từ hiệu suất đối với một thiết bị riêng biệt khiến chúng ta không thể nhận ra ngay sau mỗi lần thay đổi riêng rẽ.

Phát hiện ra các thay đổi đó là một quá trình phải xử lý thủ công nặng nhọc. Cơ chế cảnh báo là công cụ hữu ích để rà soát các sự cố có thể xảy ra nhưng thường thì sẽ khó để xác định tiêu chí phù hợp cho việc gán nhãn cho những vấn đề thực sự. Một trigger “tự do” sẽ tạo ra nhiều báo động nhầm (false positive), vì vậy phải thực hiện rà soát thủ công một khối lượng lớn bởi nhóm đảm bảo ổn định cho thiết bị, trong khi đó quá trình trigger kĩ càng quá lại bỏ qua vấn đề thực sự. May mắn thay, Netflix có lịch sử những cảnh báo được kích hoạt (trigger) và quyết định cuối cùng (được thực hiện bởi con người) về việc vấn đề này thật sự là có thực và triển khai được hay không. Netflix có thể dùng nó để huấn luyện mô hình giúp dự báo khả năng ở một số điều kiện đo lường được sẽ gây nên vấn đề thực sự nào.

Ngay cả khi tự tin theo dõi một vấn đề thì thường sẽ khó khăn để xác định nguyên nhân gốc rễ là do sự biến động chất lượng mạng trên một ISP cụ thể hay một vùng cụ thể nào đó? Một thử nghiệm A/B nội bộ hoặc thay đổi những thứ đã triển khai trước đó? Một cập nhật firmware được phát hành bởi các nhà sản xuất thiết bị? Liệu thay đổi này sẽ được tùy chỉnh cho phù hợp với một nhóm các thiết bị hay mô hình cụ thể trong nhóm? Mô hình thống kê cũng có thể giúp chúng tôi xác định nguyên nhân gốc rễ bằng cách kiểm soát các tham số khác nhau.

Thông qua việc đưa mô hình dự đoán để ưu tiên các sự cố liên quan tới ổn định trên thiết bị, chúng tôi đã thấy có sự giảm rõ rệt trong tổng số lượng cảnh báo khi duy trì tỉ lệ false negative (loại trừ nhầm) ở mức thấp chấp nhận được. Ở mức này chúng tôi kì vọng sẽ tạo ra tính hiệu quả lớn cho sự ổn định trên thiết bị của Netflix.

Vấn đề nêu trên là một ví dụ nhỏ của những khó khăn mà chúng tôi tin rằng mô hình thống kê và các phương pháp học máy có thể cải thiện so với các cách làm tốt nhất bây giờ.

  • Có đủ dữ liệu (hơn 139 triệu thành viên trên thế giới-tháng 1/2019)
  • Dữ liệu nhiều chiều và khó để làm thủ công một tập tối thiểu các biến thông tin cho một vấn đề riêng biệt
  • Việc nhiều cấu trúc trong dữ liệu do các hiện tượng phức tạp (sử dụng chung mạng, sở thích con người, năng lưc phần cứng thiết bị)

5 Các trường hợp sử dụng AI/Dữ liệu/Học máy tại Netflix

Cá nhân hóa các đề xuất phim 

Người dùng xem A có khả năng xem B. Đây có lẽ là tính năng được biết đến nhiều nhất của Netflix. Netflix sử dụng lịch sử xem của những người dùng khác có cùng sở thích để khuyến nghị những gì bạn có thể quan tâm nhất khi xem tiếp để bạn tiếp tục theo dõi và tiếp tục đăng ký thuê bao hàng tháng để xem nhiều nội dung hơn

Tự động tạo ra và cá nhân hóa Thumbnail/artwork

Sử dụng hàng ngàn khung hình video từ một bộ phim hoặc chương trình hiện có làm điểm khởi đầu để tạo ra hình thu nhỏ, Netflix chú thích những hình ảnh này sau đó xếp hạng từng hình ảnh để xác định thumbnail nào có khả năng cao nhất dẫn tới hành vi nhấp chuột của bạn. Những tính toán này dựa trên những gì người khác giống với bạn đã nhấp vào. Một phát hiện có thể là người dùng thích một số diễn viên/thể loại phim nhất định có nhiều khả năng nhấp vào thumbnail với các thuộc tính diễn viên/hình ảnh nhất định.

Tìm kiếm vị trí cho việc sản xuất phim (Tiền sản xuất) 

Sử dụng dữ liệu để giúp quyết định địa điểm và thời điểm tốt nhất để quay một bộ phim – trong điều kiện ràng buộc về lịch trình (tính sẵn sàng của diễn viên / đoàn làm phim), ngân sách (địa điểm, chi phí chuyến bay / khách sạn) và yêu cầu bối cảnh sản xuất (quay ngày so với quay đêm, khả năng rủi ro sự kiện thời tiết ở một địa điểm). Lưu ý rằng đây là vấn đề tối ưu hóa khoa học dữ liệu hơn là mô hình học máy đưa ra dự đoán dựa trên dữ liệu trong quá khứ.

Chỉnh sửa phim (Hậu kỳ)

Sử dụng dữ liệu lịch sử khi việc rà soát quá trình kiểm tra chất lượng không thành công trong quá khứ (khi đồng bộ hóa phụ đề với âm thanh / chuyển động bị tắt trong quá khứ) – để dự đoán khi nào kiểm tra thủ công là có lợi nhất trong quy trình đáng lẽ ra rất tốn thời gian và công sức.

Chất lượng phát trực tuyến 

Sử dụng dữ liệu xem trước đây để dự đoán việc sử dụng băng thông, từ đó giúp Netflix quyết định khi nào nên lưu trữ các máy chủ trong khu vực để có thời gian tải nhanh hơn trong thời điểm nhu cầu người dùng cao nhất.

¹ Streaming là công nghệ được sử dụng để truyền dữ liệu tới máy tính và các thiết bị di động thông qua Internet. Streaming sẽ truyền dữ liệu – thường là audio và video, nhưng cũng đang dần có các hình thức khác – dưới dạng một “dòng chảy” liên tục, cho phép người nhận xem/nghe gần như ngay lập tức.

² Round trip time – khoảng thời gian tính từ lúc client bắt đầu gửi request tới lúc nó nhận gói dữ liệu đầu tiên trả về, không bao gồm thời gian nhận đầy đủ dữ liệu.

³ Netflix là dịch vụ xem video trực tuyến của Mỹ, nội dung chủ yếu là phim và các chương trình truyền hình, rất phổ biến ở Mỹ và nhiều nước khác trên thế giới.

Ryan Hoang | Nguồn: Netflix Techblog, becominghuman.ai, CNN

Tin liên quan: