Как раньше было: хотите что-то посмотреть. Включаете телевизор и бесконечно листаете каналы в поисках хоть чего-то приличного.

А сейчас? Нажимаете кнопочку Netflix на пульте, выбираете самую симпатичную превьюшку и вуаля — очередная шедевральная документалка!

А от того насколько хорошо твои вкусы знают сервисы типа Spotify, Яндекс.Музыки вообще становится страшно!

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

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

А в рассказе нам помонут телевизор Toshiba и смартфон realme 6 Pro.

Всё произошло в США. Тогда еще небольшая, но амбициозная компания по прокату DVD-дисков Netflix уже имела, на тот момент, лучшую модель предсказания оценок пользователей, под названием Cinematch. Показатель RMSE, то есть среднеквадратическое отклонение у этого алгоритма было 0.9525.

Насколько это точно мы не скажем. Но факт в том, что тогда это был рекорд, но Netflix не хотели останавливаться.

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

Тогда они устроили самый масштабный математический конкурс в истории — Netflix Prize. Они выложили в открытый доступ около 100 миллионов оценок пользователей по пятибалльной шкале и пообещали команде математиков, которая сможет увеличить точность их алгоритма Cinematch хотя бы на 10% выплатить — 1 миллион долларов США.

Конкурс продлился целых 3 года. В нем приняло участие более 5 тысяч команд математиков, а судьба финального приза решилась в последние минуты!

Две команды добились одинакового улучшения в 10,06%, но проигравшая команды выслала свой результат на 20 минут позже и после трёх лет разработки осталась ни с чем!

Но самое интересное, что Netflix в итоге не стал использовать ни одни из предложенных алгоритмов несмотря на их удивительную точность. Всё потому, что люди оказались сложнее самого совершенного алгоритма. Так что же пошло не так с алгоритмом для Netflix?

Как мы делаем выбор?

Давайте подумаем, как мы делаем выбор?

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

Давайте будем честны, как-то после тяжелого рабочего дня не тянет смотреть шедевры Бергмана, Феллини, и морщить надбровные дуги под Тарковского. Чаще мы смотрим кино в стиле Майкл Дудикофф ну или просто ненапрягающие сериалы.

Так что же тогда рекомендовать исключительно фильмы среднего качества? Ммм, не совсем так.

Чтобы рекомендация вам понравилась она должна быть интересной, неожиданной, своевременной. Иными словами — серендипной: от английского serendipity.

Да-да, есть такой термин. Если мы говорим про качества человека, он обозначает интуитивную прозорливость, способность делать глубокие выводы из случайных наблюдений и находить то, чего не искал намеренно.  Таким качеством очень полезно обладать ученым. К примеру, благодаря серендипности Вильгельм Рентген, открыл рентгеновское излучение.

Вот и алгоритм рекомендаций должен быть как рентген — видеть вас насквозь! Помимо очевидных вариантов, он должен уметь принимать неожиданные решения на основе массы факторов, чтобы подсунуть вам что-то такое, чтобы вы сказали: Так, а это что такое? Надо посмотреть.

Toshiba 50U5069

Примерно так я и сказал, когда увидел стоимость этого 50-дюймового 4K телевизора. Совсем скоро на самой масштабной ежегодной распродаже 11.11 на Aliexpress эту модель Toshiba 50U5069 будут отдавать всего за 20 тысяч рублей! Вместо 35 тысяч! Вот это серендипно!

Что мы получаем за 20 тысяч? Еще раз — диагональ 50 дюймов, разрешение UHD и полноценная Direct-Led подсветка.

Какой тип матрицы производитель не указывает, но по всем параметрам это IPS, потому что углы обзора максимальные — 178 градусов, и отличная цветопередача. Но вот черный цвет совсем не глубокий. Как всегда бывает в IPS.

Наших любимых алгоритмов обработки изображения тут тоже не пожалели. В ТВ выделен отдельный графический процессор CEVO 4K HDR для постобработки изображения. Он умеет апскейлить HD контент до 4К, обрабатывать HDR-контент, делать динамический контраст. Короче, телевизор умеет всё, что положено современному ТВ.

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

По звуку, поддерживается DOLBY AUDIO и DTS. В целом телек звучит весьма неплохо. Мы даже расслышали низкие.

Процессор тут 4-ядерный от Медиатек (MSD6886). Интерфейс шустрый и отзывчивый, но это не Android TV. Здесь стоит операционка на базе Линукса — VIDAA U3.0. Это настоящая ОС, тут даже есть свой магазин приложений. А на форуме 4PDA есть активная ветка с обсуждением. Кстати, такая же ОС стоит во многих теликах Hisense. Поэтому в целом по этой операционной системе много чего пилят.

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

Более того, тут естественно есть Netflix и YouTube, на что намекают кнопки на пульте. Есть разные медиаплееры, приложения Яндекса, Gismeteo и даже разные музыкальные сервисы. В общем, жить можно.

В ТВ также есть Bluetooth, поэтому пультом не надо целиться в экран, чтобы сработало нажатие. Или можно подключить беспроводные наушники к ТВ, чтобы никому не мешать. Также тут поддерживается Wi-Fi 2.4 и 5 ГГц.

В общем, в телевизоре есть все основные функции Smart ТВ. Поэтому, если ищите недорогой 4К-телевизор, присмотритесь к этому варианту, предложение чрезвычайно серендипное.

Распродажа на Aliexpress стартует 11 ноября в 10 утра и продлится 48 часов. Но ТВ можно положить в корзину уже сейчас, а со скидкой купить 11 ноября! Я хоть и не алгоритм, но рекомендую присмотреться к этой модельке и сделать подарок себе или близким.

И точно также как Aliexpress предлагает вам разные интересные товары, так и современные алгоритмы рекомендаций, чтобы предоставить вам интересную подборку — это всегда комбинация из нескольких методов. Каких именно?

Коллаборативная фильтрация

Наиболее популярный метод рекомендаций — это коллаборативная фильтрация. Одни из первых кто её стали использовать — Netflix и Last.fm, а сейчас используют буквально все. Что это такое и как работает? Коллаборативная фильтрация работает так:

Составляется табличка со всеми пользователями и их оценками. Такая таблица называется матрицей оценок.

Дальше логика простая: у пользователей с похожими оценками — похожие вкусы. Поэтому, если одному пользователю нравится A и B, а другому A и С, то стоит порекомендовать первому С, а второму В. Всё вроде как логично, но есть проблема.

Во-первых, такие матрицы обладают огромной размерностью. Количество строк равно количеству пользователей, а столбцов — количеству объектов оценки. То есть, в случае со Spotify столбцов будет не меньше 60 миллионов: именно столько туда загружено треков. А с таким объемом данных сложно работать в реальном времени.

Во-вторых, непонятно, что рекомендовать новым пользователям, скупым на оценки ребятам.

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

Анализ аудиофайлов

В случае с рекомендациями музыки отлично работает метод основанный на глубоком анализе аудиофайлов. Такие сервисы как Spotify и Яндекс.Музыка препарируют на составляющие каждый трек, загруженный в систему.

В Spotify это работает так:

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

Вот так выглядит анализ 30 секунд отрезка песни «Around the World» Daft Punk.

Анализ ключевых характеристик тех или иных песен позволяет Spotify понять фундаментальную схожесть между различными треками. Это позволяет добавлять в рекомендации, песни от неизвестных исполнителей, по которым еще не была собрана статистика по оценкам и прослушиваниям.

Например, внедрение подобного алгоритма в Яндекс. Музыке позволило увеличить ежедневное время прослушивания на 1,5% и на 7,5% уменьшить количество дизлайков.

Благодаря такому подходу даже совсем новые исполнители без прослушиваний попадают в персональные рекомендации. Мне вот Spotify постоянно, что-то эдакое подкидывает. Вот и я вам подкину еще одну небольшую рекомендацию — смартфон realme 6 Pro с 6 камерами и экраном 90 Гц на распродаже 11 ноября будут отдавать всего за 17 тысяч рублей вместо 24 990. А в смартфоне есть вообще всё:

  • Дисплей диагональю 6.6 дюйма, разрешением 2400 x 1080 и поддержкой 90Гц
  • Быстрая зарядка 30 Вт
  • Селфи-камера разрешением 16 Мп и вторая камера со сверхширокоугольным объективом
  • Основная камера разрешением 64 Мп
  • Быстрый процессор Snapdragon 720G
  • Много памяти: 8 ГБ оперативной, накопитель на 128 ГБ + microSD
  • NFC
  • Поддержка двух SIM-карт
  • Сканер отпечатка в боковой кнопке

Еще Aliexpress будет разыгрывать коробки с подарками — АлиБоксы. Во время акции с 11 по 13 ноября, если наберете товаров больше чем на одну тысячу рублей, вы автоматически сможете выиграть этот «АлиБокс». Внутри будут смартфоны, наушники, купоны и прочие ништяки. В общем, если думали что-то взять на Али — идеальное время с 11 по 13 ноября.

Многорукий бандит

Но такой хак работает только с музыкой, поэтому стриминговые сервисы выкручиваются иначе. Например, Netflix использует метод “многорукого бандита”.

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

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

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

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

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

Идеальная рекомендация: CatBoost

Мы с вами выяснили, что для идеальной рекомендации нового фильма или трека нужно использовать разные алгоритмы, у каждого из которых своё мнение на этот счёт. Но в каких пропорциях учитывать разные результаты?

Алгоритм долже учитывать всё, ведь предпочтения пользователя постоянно меняются из-за массы факторов: как прошел его день, какая погода, самочувствие и прочее. До недавнего времени эта проблема была нерешаема. Но в 2017 году Яндекс выложил в открытый доступ собственную библиотеку на основе машинного обучения CatBoost. При помощи этой библиотеки Яндекс ранжирует поисковую выдачу, предсказывает осадки с точностью до 10 минут. А Европейская организация по ядерным исследованиям (CERN) использует CatBoost для анализа и объединения данных, полученных с разных детекторов Большого адронного коллайдера.

Что это за волшебный алгоритм такой? Этот алгоритм позволят брать массу дополнительных разнородных источников информации объединять эти данные и тем самым повышать точность рекомендации.

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

Основная фишка, что этот алгоритм может работать не только с числовыми значениями, но и с категориями, которые можно присваивать фильмам, трекам или пользователям.

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

CatBoost использует не только Яндекс. Его уже взяли на вооружение Netflix, Aviasales и другие компании.

Что в итоге? Если раньше вы могли получить классную рекомендацию только от своего друга, то теперь, что посмотреть и послушать вам рекомендует весь мир, обработанный алгоритмом. И это конечно же очень круто!