Как счастье пользователей помогает VK Видео улучшать сервис

Связываем опыт и оценки юзеров с техническими метриками и рассказываем, как устроена архитектура видеоплатформы.

Как счастье пользователей помогает VK Видео улучшать сервис

Меня зовут Александр Тоболь, я технический директор ВКонтакте, VK Видео и VK Звонков. Почти 15 лет я работаю с видеотехнологиями — и в этой статье расскажу, как мы с командой искали связь между техническими метриками и счастьем пользователей. А ещё покажу, какие архитектурные решения позволили нам построить видеоплатформу на 2,45 миллиарда просмотров в сутки и 4 Тбит/с трафика.

Философия метрик — как мы развиваем технологии для десятков миллионов зрителей

Наш путь к статусу видеоплатформы № 1 в России по просмотрам и аудитории занял 10 лет. Достичь цели нам позволила правильно выбранная на старте простая архитектура и философия развития сервиса, основанная в первую очередь на работе с пользовательскими метриками. Ниже расскажу, как измерить «качественно» и что такое «быстро», как перевести их на язык технологий, воплотить в архитектуре и улучшить любую контентную платформу.

Архитектура нашей видеоплатформы начала складываться ещё в 2013-м. Уже на следующий год мы добавили поддержку 4К, а потом запустили сервис live-трансляций. Вскоре поставили абсолютный рекорд площадки по одновременному просмотру: к прямой трансляции футбольного матча на пике подключились более 2,2 миллиона зрителей. В 2021-м объединили на платформе видеоконтент из ВКонтакте, Одноклассников, VK Клипов и других ресурсов компании. Внедрили машинное обучение, прокачали с ним рекомендации — и получили 2,45 миллиарда ежедневных просмотров на платформе и рекорд в клипах: миллиард просмотров роликов в сутки.

Что происходило всё это время с архитектурой?

Базовые составляющие видеоплатформы остались теми же. Всё просто: пользователи загружают видео на серверы, оно обрабатывается и преобразуется в разные форматы и разрешения, потом сохраняется в большом распределённом хранилище и оттуда раздаётся зрителям. Так чем мы всё это время занимались, если кубики архитектуры те же?

Измеряли качество опыта пользователей и работали над ним.

Как измерить счастье пользователей?

Есть несколько метрик, которые помогают отслеживать, насколько аудитория довольна сервисом. Например, CSat — это когда пользователь ставит приложению звёздочки в сторе; NPS — когда советует (или наоборот, не советует) сервис друзьям и коллегам; CSI — баланс ожиданий, полученной пользы и качества; индекс TRIM учитывает опыт использования, готовность рекомендовать продукт и пользоваться им дальше, а также мнение о преимуществах сервиса перед альтернативами. Все эти показатели можно и нужно измерять, проводя опросы.

Как связать эти показатели с техническими метриками?

Через QoE — Quality of experience. Эта метрика позволяет понять, что испытывает человек, пользуясь сервисом. При этом QoE учитывает разные факторы, влияющие на восприятие системы: от технических (задержки и качество сети) до характеристик устройства и самого пользователя (страна, образование) .

Отслеживая эту метрику, можно увидеть, какие изменения в архитектуре сервиса и технологические решения влияют на мнение о продукте. Посмотрим по исследованиям и нашему опыту, что QoE рассказывает о видеосервисах сейчас.

Чего люди ждут от контентного сервиса

Чтобы он откликался на их потребности: работал так, как хочется, и давал нужное здесь и сейчас. Для всех, кто смотрит и загружает видео, это:

  • Быстрая доступность контента — пользователи не любят ждать

Исследования показывают, что пользователь начинает замечать паузу в загрузке страницы уже через 100 миллисекунд, а через секунду раздражается. В некоторых случаях, например в поиске, люди готовы ждать чуть дольше. Но ещё несколько секунд — и пользователи безнадёжно расстроятся и, скорее всего, уйдут.

  • Стабильная загрузка файлов на платформу — чтобы не прерывалась и восстанавливалась после сбоев

Раньше далеко не все интернет-сервисы могли загрузить или скачать большой файл с первого раза. Но сейчас они должны обрабатывать и сетевые перебои, и переключение между разными Wi-Fi, и закрытие крышки ноутбука.

  • Просмотр видео в максимальном качестве, несмотря на сеть и другие условия

Ожидаемо: чем выше качество, тем довольнее пользователи. Видео в разрешении меньше, чем HD, зрители оценят максимум на тройку по пятибалльной шкале.

Правда, нюансы есть и здесь: иногда пользователи предпочитают сэкономить трафик, ограничивая качество видео. Например, если пакет интернета не безлимитный. Учитывая такой запрос, мы добавили функцию экономии данных. Если её включить, разрешение не будет подниматься выше 480p. А значит, 15-минутный ролик израсходует только 130 Мбайт, а не 550, как при Full HD (1080р).

  • Воспроизведение с быстрым первым кадром и без притормаживаний

Пользователи не любят сталкиваться с буферизациями: каждая «крутилка» снижает оценку сервиса примерно на полбалла.

Ещё у зрителей высокие требования к тому, как быстро видео начнёт играть. По нашему опыту, это особенно актуально в соцсетях и сервисах коротких видео. Здесь ролики должны стартовать моментально — ожидание в секунду уже заметно роняет оценку.

Теперь посмотрим, как можно учесть эти запросы при разработке видеоплатформы.

Строим видеосервис: проблемы и решения

Загрузка: отказоустойчивость и стабильность

Если в сервисе будут размещаться большие файлы, загрузку важно сделать максимально отказоустойчивой и возобновляемой.

В VK Видео можно загружать очень большие файлы — до 256 Гбайт. Такую загрузку точно не захочется начинать заново. Поэтому так важна стабильность процесса.

Как реализуем загрузку: направляем нагрузку по разным дата-центрам, балансируем её и сохраняем файлы пользователей в распределённое хранилище. Для всех узлов системы есть резервные варианты, чтобы обеспечивать отказоустойчивость. Так что если часть серверов окажется недоступна — из-за профилактики или обновлений, — это пройдёт незаметно для пользователей. И даже если упадёт целый дата-центр, наш балансировщик перенаправит запросы на оставшиеся и загрузка возобновится.

Ситуацию, если из строя выйдет что-то на стороне пользователя (например, браузер) тоже предусматриваем. Сохранение пути до файла помогает догрузить его даже через сутки или больше. Так что пользователи могут уверенно загружать большие видео, записи своих выступлений, вебинаров, мастер-классов — от локального дисконнекта загрузка не обнулится.

Транскодирование и моментальная доступность: загрузили — смотрим

Видео загружено в сервис, и вроде бы осталось только показать его зрителям. Но перед этим происходит самое интересное — транскодирование. Это преобразование видео в разные варианты разрешений и кодирование с помощью набора кодеков.

Ежедневно наши пользователи загружают до 14 миллионов файлов, так что пришлось научиться транскодировать эффективно и быстро: помним, что никто не должен ждать. При этом нужно сохранять адекватное качество, когда сжимаем видео — то есть преобразуем его в меньшее разрешение, чтобы показывать так по запросу пользователя или при нестабильной сети.

Чтобы удерживать планку качества при преобразовании, мы зафиксировали его технические метрики на определённом уровне. Таком, чтобы изменения, например при переходе с Full HD на HD, ощущались как закономерные и незначительные, а не фатальные потери в качестве.

А что со временем обработки? Мы подумали, что будет лучше, если транскодирование вообще не займёт для пользователей дополнительного времени. Автор загружает видео на платформу, и зрители — друзья, подписчики, клиенты или ученики — сразу могут его смотреть.

Как обеспечиваем моментальную доступность: обрабатываем видеопоток во все необходимые форматы и варианты разрешения в режиме реального времени. Процесс идёт посегментно, так что зрителям не нужно ждать полной обработки ролика.

Например, 15-минутный ролик на 1 Гбайт будет доступен мгновенно, а на других ресурсах его подготовка заняла бы от 3 до 10 минут.

<i>В среднем 8 из 10 роликов в VK Видео сразу становятся доступны своей аудитории. Остальные видео обрабатываются за несколько минут — речь о крупных файлах на десятки гигабайт</i>
В среднем 8 из 10 роликов в VK Видео сразу становятся доступны своей аудитории. Остальные видео обрабатываются за несколько минут — речь о крупных файлах на десятки гигабайт

Плеер и адаптивный стриминг: даём оптимальное качество, учитывая условия

На QoE (качество пользовательского опыта) больше всего влияют три показателя: скорость старта, качество видео и количество буферизаций — то есть сколько раз видео приостановилось, чтобы дозагрузиться.

На практике, чтобы обеспечить эти показатели, системе зачастую приходится фокусироваться на двух и сокращать третий. Поэтому нужно гибкое решение, чтобы не ронять счастье пользователей, находить равновесие и подстраиваться под разные условия.

<i>Чтобы избежать буферизаций и обеспечить быстрый старт, придётся снизить качество. Нужно максимальное разрешение — потребуется больше времени для старта. Ищем баланс</i>
Чтобы избежать буферизаций и обеспечить быстрый старт, придётся снизить качество. Нужно максимальное разрешение — потребуется больше времени для старта. Ищем баланс

Как мы учитывали это при разработке плеера VK Видео с адаптивным стримингом. Показывая видео, он использует сгенерированные заранее небольшие фрагменты файла в разных разрешениях, так что может переключаться между вариантами качества. Система принимает решения, совмещая две стратегии: учитывает и условия сети, и объём закешированного видео. Если интернет шустрый и видео скачивается существенно быстрее, чем проигрывается, то можно повышать качество.

Для разных платформ докручивали технические решения. Например, для iOS написали свой плеер — теперь он запускает первый кадр почти на 30% быстрее стандартного AVPlayer. Это дало прирост в 6% к просмотрам видео на «яблочных» мобильных устройствах. Мы переводим это с языка метрик так: ролики начинают проигрываться без задержек, поэтому пользователям комфортнее листать ленту и все разделы с видео. Люди делают это в своём ритме, переходят от ролика к ролику без пауз и барьеров — и так смотрят больше интересного контента.

ML-хаки: рекомендации, автоулучшение качества, субтитры, обложки

Рекомендации. Много контента — это хорошо. Но хочется не быть просто складом, а предоставлять зрителям удобный видеосервис: где быстро находится нужное и всегда есть что посмотреть. Для этого мы развиваем рекомендации. Они же работают и на авторов видео — приводят новую заинтересованную аудиторию.

Чтобы рекомендовать контент по интересам пользователей, мы узнаём буквально всё о каждом публичном ролике. Нейросеть анализирует и размечает тематику видео, распознаёт персоны, речь, предметы и окружение в кадре. А затем строит для пользователя персональную подборку видео — учитывая его интересы, подписки, просмотры и реакции. При этом не забывает о разнообразии выдачи: даже если кто-то очень любит футбол или ролики про макияж, вряд ли захочет смотреть пять подряд.

Такие рекомендации кратно увеличивают просмотры. Например, в VK Клипах видим рост вдвое: +111% год к году. При том, что 97% просмотров клипов идут именно из рекомендаций. Так получается, потому что из более чем 10 миллионов роликов мы поэтапно выбираем около 5 тысяч для конкретного пользователя. А затем сортируем их, чтобы сформировать разнообразную и увлекательную ленту.

<i>Воронка рекомендаций в VK Клипах — как просеиваем миллионы роликов и формируем персональную ленту</i>
Воронка рекомендаций в VK Клипах — как просеиваем миллионы роликов и формируем персональную ленту

Где ещё используем машинное обучение:

  • Улучшаем качество видео

    На нашей платформе много UGC-контента: любительских видео с не самой чёткой и качественной картинкой. Зачастую по ним пользователи оценивают качество на сервисе в целом. Поэтому мы захотели улучшить такие ролики — и создали для этого NeuroHD. Это собственная технология VK Видео, с помощью которой в два раза повышается частота кадров и разрешение.


Результат автоулучшения видео с NeuroHD
  • Генерируем автосубтитры

    Для субтитров в видео мы прокачали свои ASR-технологии. Настроили нейросети на шоу и разные ролики, научили их синхронизировать текст с речью на видео. Ещё с помощью таких расшифровок точнее размечаем тематики и содержание контента для рекомендаций.

  • Создаём умные обложки к видео

    Алгоритм выбирает для обложек стоп-кадры, учитывая вкусы разных аудиторий: по возрасту, полу, геоположению. Например, когда двое ищут видео про Байкал, кто-то скорее откроет ролик с красивым пейзажем на обложке, а кто-то — с автором блога или автомобилями на льду. Мы выясняем такие предпочтения и показываем по сегментам аудитории разные обложки. Судя по росту конверсии в просмотр — +15%, — это помогает зрителям находить больше интересных роликов.

Готовый набор видеотехнологий для вашего проекта

Главный вывод из всех преобразований нашей видеоплатформы: технологические решения должны соответствовать запросам аудитории и влиять на метрики. Если внедрение новой технологии не даёт измеримых результатов — не нужно её запускать. Только с таким подходом сервис сможет стабильно развиваться, и по такому принципу мы создаём платформу VK Видео. Например, однажды мы потратили много ресурсов на разработку peer-to-peer раздачи видео и ожидали классных результатов. Но A/B-тест не показал прироста метрик смотрения, а показатели качества были противоречивыми — мы приняли трудное решение не запускать технологию для всех пользователей.

Вы можете воспользоваться нашими наработками в готовом наборе технологий VK Видео. Предлагаем разработчикам IT-сервисов SDK видеоплеера и инфраструктуру видеоплатформы для быстрой загрузки медиафайлов в Web-, iOS- и Android-приложениях, для хранения и обработки видео, а также трансляций.

Как это работает. Допустим, вы делаете образовательную онлайн-платформу или сервис объявлений. И хотите, чтобы пользователи легко обменивались видео, выходили в прямые эфиры, размещали и смотрели материалы: уроки, видеоотчёты, обзоры и что угодно ещё. Теперь для всего этого можно получить готовую инфраструктуру. Она снимет вопросы о том, как загружать видео, где их хранить, как обеспечить быструю доставку контента пользователям и проводить трансляции.

<p><i>С SDK видеоплеера можно использовать элементы интерфейса, хорошо знакомые пользователям по ВКонтакте, и не тратить время на дизайн</i></p>

С SDK видеоплеера можно использовать элементы интерфейса, хорошо знакомые пользователям по ВКонтакте, и не тратить время на дизайн

Чтобы оценить, насколько плеер и видеоинфраструктура подходят вашему проекту, можно получить тестовый доступ. Наши разработчики помогут с интеграцией — так что не потребуется большая команда, много времени и опыта.

Всё о том, как воспользоваться SDK видеоплеера и инфраструктурой, какие функции они включают и как проходит интеграция, рассказываем здесь.

3030
27 комментариев

Не смотрю видео ВКонтакте:
1. Реклама в каждом видео
2. Очень жутко лагает и часто не загружается

27
Ответить

Согласен. ВК Видео помойка, где то на уровне рутуба.

10
Ответить

Мне не нравится когда один сервис делят на много частей выдавая за что-то новое. В вк были сообщения - сделали мессенджер, видео - вк видео.

9
Ответить

нужно еще чтобы вкладку с порно отделили в отдельное приложение. VK Hub.

14
Ответить

Вы испортили видео вк своей рекламой) На 5 секундный ролик реклама 30-секундная, которую не промотать. Даже рутуб обогнали по дурости)

9
Ответить

У меня аж раз пригорело и я в тп написал огромную простыню негодования, в ответ получил отписку вроде: «вы пользуетесь сервисом бесплатно, так что залепите жало, не вам холопам нас учить, как превратить продукт в зловонный кусок говна» и после этого кнопочку ещё с клипами про шумоголовых бесоебов добавили поудобнее, прямо около сообщений, что бы я точно не промахивался и иногда залетал в эту компостную яму с двух ног.

12
Ответить

Комментарий недоступен

11
Ответить