Dlaczego Netflix wykorzystuje machine learning do podniesienia jakości streamingu? Takie pytania użytkownicy tego serwisu zadawali wielokrotnie działowi technicznemu firmy, dlatego postanowił przygotować specjalny wpis na blogu na ten temat. Wyjaśnił w nim kilka technicznych wyzwań, przed którymi Netflix stara się sprostać w kontekście streamingu filmów. Wartościowe okazują się m.in. modele statystyczne.

Z Netflixa korzysta 137 milionów użytkowników na całym świecie. Część z nich mieszka poza Stanami Zjednoczonymi, co daje świetną okazję do rozwijania się i pozyskiwania jeszcze większej liczby użytkowników. Zapewnienie wszystkim wysokiej jakości streamingu jest dla firmy ogromnym wyzwaniem — zwłaszcza pod kątem technicznym. Jednym ze sposobów, dzięki którym stara się mu sprostać jest rozmieszczenie po świecie serwerów, z których użytkownicy odtwarzają filmy. Drugim jest algorytm ustalający, z którego serwera najszybciej dotrą do nas pierwsze fragmenty filmu.

Zanim pokażemy, jak Netflix radzi sobie z problemami związanymi z technicznymi wyzwaniami odtwarzania filmów, pokażemy skalę w jakiej działa. Na wstępie warto powiedzieć, że z tego serwisu streamingowego korzystają użytkownicy z 200 krajów świata. Według danych z poprzedniego roku, każdego dnia odtwarzali oni 250 milionów godzin filmów (dla porównania Facebook wyświetla 110 milionów godzin każdego dnia, a YouTube ponad 1 miliard godzin). Głównym celem wszystkich pracowników Netflixa jest sprawienie, by każdy z użytkowników mógł jak najszybciej włączyć dowolny film.

To największe wyzwanie przyrządziło zespołowi Netflixa sporo problemów. Pierwszy z nich, to różnorodność urządzeń. Wiecie, że Netflix obsługuje tysiące wersji urządzeń do oglądania filmów i dla każdego z nich ma przygotowaną osobną wersję każdego odcinka serialu? Po co to robi? Właśnie po to, by każdy mógł swobodnie odtwarzać filmy na netflix.com. Druga sprawa to sam proces odtwarzania. Netflix z najbliższego serwera pobiera pierwsze sekundy filmu, a w procesie pozyskiwania dalszych części pomagają inni użytkownicy, którzy wcześniej obejrzeli odcinek. “Pobrali” go na swój komputer, dzięki czemu Netflix bezpośrednio z niego wysyła fragment nowemu użytkownikowi.

Tak w dużym skrócie działa Netflix. O tym, jak po kroku wygląda proces od wejścia na stronę, czy skorzystanie z aplikacji, po włączenie wybranego filmu, dowiecie się z tego obszernego artykułu, który opublikowaliśmy kilka miesięcy temu.

Ze względu na szybką ekspansję i wzrost zainteresowania wśród użytkowników mających różne zainteresowania, korzystających z różnych połączeń internetowych i z różnych urządzeń, Netflix musiał zrobić wszystko, by każdemu z nich pozwolić oglądać nasze filmy. Żeby zobrazować z jakimi wyzwaniami spotyka się na co dzień, wymienił kilka z nich:

  • oglądanie filmów na smartfonach różni się od oglądania ich za pomocą aplikacji Smart TV,
  • internet mobilny ma bardziej niestabilne łącze niż internet szerokopasmowy,
  • sieci na niektórych rynkach mogą spotkać się z większym obciążeniem,
  • urządzenia często w inny sposób wykorzystują połączenia internetowe.

Zespół tego serwisu streamingowego musiał więc zrobić wszystko, by zaspokoić każdego z użytkowników, a zwłaszcza tych, którzy korzystają z trudnych (dla Netflixa) sieci internetowych. Przejdźmy do opisu, jak Netflix stara się poradzić z każdym z powyższych problemów/wyzwań.

Jakość połączenia internetowego

Trudno scharakteryzować, a jeszcze trudniej przewidzieć jakość połączenia internetowego użytkownika, który właśnie włączył film na Netflixie. Mimo że serwis zna średnią przepustowość połączenia np. w danej sieci komórkowej, o wiele trudniej dowiedzieć się na temat stabilności połączenia, które wpływa na jakość oglądanego filmu. Wiedza o jakości połączenia przydałaby się w celu ulepszenia produktu i dostarczania lepszego doświadczenia z oglądania naszych filmów (o tym za chwilę).

Na poniższej grafice Netflix przedstawił pomiar przykładowej przepustowości połączenia internetowego jednego z użytkowników podczas jednej sesji oglądania. Widać wyraźne skoki dostępu, co nie ułatwia mu zadania. Problem polega na samym przewidzeniu, jak będzie wyglądać dostęp do sieci przez następne 15 minut, biorąc pod uwagę dane sprzed ostatnich 15 minut. Nawet jeśli nie da się precyzyjnie przewidzieć, kiedy nastąpi zerwanie połączenia (bo może ono wynikać z różnych przyczyn, np. użytkownik może właśnie przejeżdżać samochodem przez tunel), to czy Netflix jest chociaż w stanie scharakteryzować rozkład przepustowości na podstawie danych historycznych?

Ponieważ obserwuje te ścieżki na dużą skalę, ma możliwość zastosowania bardziej złożonych modeli, które łączą czasowe rozpoznawanie wzorców z różnymi wskaźnikami kontekstowymi w celu dokładniejszego przewidywania jakości sieci.

Przykładowy zapis dostępu do sieci

Do czego Netflix potrzebuje informacji o jakości połączenia i tego, jak będzie ono wyglądać w najbliższym czasie? Do tego, by dostosować jakość odtwarzanego filmu do jakości połączenia. O tym poniżej.

Jakość odtwarzania

— Nasze filmy i seriale przygotowujemy w różnych formatach, by dostosować je do różnych warunków odtwarzania — czytamy na blogu. Algorytm wybiera, która wersja filmu jest odpowiednia dla danego użytkownika — a decyzję “podejmuje” na podstawie danych dot. jakości połączenia oraz rodzaju urządzenia, na którym zostanie odtworzony film. Poniższa grafika pokazuje etapy jakie musimy przejść, by odtworzyć użytkownikowi wybrany film. Sposób podjęcia decyzji o jakości transmisji oparty jest m.in. na tym, jak długo ładują się pierwsze sekundy filmu. Im szybciej, tym lepszą jakość Netflix zaprezentuje.

Co ciekawe, każdy z elementów powyższej grafiki może zastąpić inny. Netflix może automatycznie ustawić odtwarzanie filmu w wysokiej jakości, nawet w rejonach, gdzie jest słabe łącze internetowe, ale ponosząc tym samym ryzyko tego, że będzie się zacinać. Może też zamienić kolejność: najpierw ściągać większą ilość filmów, by później łatwo było je odtworzyć, ale kosztem tego, że włączenie filmu, który właśnie chcemy obejrzeć, zostanie nieco przedłużone. I właśnie do tego typu sytuacji Netflix wykorzystuje machine learning, by trafić w punkt i jak najlepiej ocenić, którą wersję wyświetlania filmu wybrać.

Pamięć podręczna

Kolejnym elementem, gdzie sprawdzi się wykorzystanie machine learningu, jest moment wejścia w aplikację/na stronę netflix.com danego użytkownika. Dzięki statystyce Netflix może przewidzieć, który odcinek serialu będziemy chcieli włączyć i zacznie go ładować, zanim włączymy przycisk “play”. Dla przykładu, wielce prawdopodobne jest to, że jest obejrzeliśmy drugi odcinek serialu, to prawdopodobnie obejrzymy też następny, dlatego Netflix może w trakcie oglądania ładować trzecią część. Jak przekonuje Netflix, model predykcji przyniósł lepsze efekty w trafianiu w gusta użytkowników i pozwalał szybciej włączyć nowy odcinek.

Wykrywanie anomalii urządzeń

Jak pisaliśmy wcześniej, Netflix nie tylko obsługuje tysiące różnych urządzeń, z których możemy odtworzyć filmy czy seriale. Co więcej: dla każdego urządzenia przygotował inną wersję filmu, by nie obciążała połączenia i można było ją odtworzyć w dowolnych warunkach. Warto zaznaczyć, że do tego zestawu dochodzą nowe smartfony, tablety, laptopy i telewizory, o czym Netflix musi pamiętać przy aktualizacjach, a te przysparzają jeszcze więcej problemów. Bo jeśli aplikacja nie działa na nowym tablecie, to Netflix musi znaleźć przyczynę tego stanu. Wtedy zespół zadaje sobie pytania, czy to wina braku aktualizacji, a może aplikacja nie jest przystosowana do nowej aktualizacji. Kolejne pytania: problem pojawi się na wszystkich urządzeniach, dla których pojawiła się aktualizacja? A może tylko w jednej serii tabletów, które właśnie trafiły na rynek?

Inna sprawa to niechęć niektórych użytkowników do aktualizacji aplikacji Netflixa, co utrudnia wprowadzanie zmian przyspieszających odtwarzanie — np. aplikacja nie włącza się albo film ma problem z odtworzeniem. Ratunkiem dla tych wszystkich wyzwań jest właśnie model predykcyjny, dzięki któremu zespół Netflixa wie, jaki priorytet nadać danemu alertowi.

Podsumowanie

Zasługą tego, że model predykcyjny działa oraz tego, że machine learning pomaga sprostać wielu problemom jest to, że Netflix posiada ogromną liczbę danych (w końcu korzysta z niego 137 milionów użytkowników). Robi też wszystko, by jeszcze bardziej ulepszyć swój produkt. Za zwiększeniem liczby użytkowników idzie więcej wyzwań związanych z lokalizacją, ale też z warunkami, w których odtwarzają oni filmy.

Zapraszamy do dyskusji
Nie ma więcej wpisów

Send this to a friend