Я написал этот пост, когда работал в Dailymotion, впервые он появился в их инженерном блоге. Вы также можете ознакомиться со статьей Коломба Томаса Развертывание PHP7 в Dailymotion здесь, на Medium.

О каком языке мы говорим?

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

© Якуб Мариан (наложение), Тиндо — fotolia.com (пустая карта) — детали

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

  • контент-ориентированная проблема : понимание того, на каком языке написано видео и имеет ли язык решающее значение (например, язык не имеет решающего значения, когда вы смотрите футбольный матч, но может иметь значение, если вы смотрите политические дебаты);
  • вопрос, ориентированный на пользователя : знание языков, которые понимает пользователь.

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

Определение языка

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

Анализ языка метаданных с помощью нашего специального инструмента обнаружения: BubbleTea API

Чтобы определить язык текстовых метаданных, мы полагаемся на несколько хорошо известных процессов классификации машинного обучения, таких как Langdetect и CLD2. Эти классификаторы были обучены на тщательно отобранных веб-страницах. Затем мы создали BubbleTea наш собственный API для определения языка. Используя систему голосования, нам удается избежать большинства ложных срабатываний и классифицировать текст на определенном языке только тогда, когда мы уверены в этом.

Хотя это дает нам язык метаданных и то, подходит ли он для презентации, это не гарантирует, что сам видеоконтент написан на этом обнаруженном языке. В приведенном ниже случае метаданные на французском языке, но само содержание на английском.

Определение языка видеоконтента

Для внутреннего видеоконтента, если мы хотим понять разговорный язык, есть несколько решений, таких как анализ аудиопотока с помощью сервисов определения разговорного языка или инструментов voice2text, таких как Watson, Microsoft Translator или Библиотека распознавания речи Uberi. и расшифровывать аудиоконтент или использовать OCR в игре, чтобы получить субтитры или идентифицировать любые написанные слова в видеокадре. Эти инструменты очень интересны, но они также затратны с точки зрения вычислительной мощности или времени, и, поскольку нам нужно будет запускать их для всех наших видео, это добавит значительную нагрузку на наш рабочий процесс.

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

Подход метаданных x знаний об использовании

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

После некоторого первоначального анализа, чтобы определить происхождение наших посетителей и какие характеристики были наиболее значимыми (их страна и их язык), мы наблюдали, насколько вовлечена была наша аудитория при просмотре видео. Используя вариант индекса Герфиндаля, называемый сглаженным индексом Герфиндаля (SHerf), мы определили, где происхождение аудитории было наиболее сконцентрировано. Этот отзыв позволил нам лучше понять, где видео может быть просмотрено и оценено. Sherf применяет пользовательские веса к исходным значениям концентрации. Затем мы могли бы начать отвечать на такие вопросы, как:

  • Верен ли язык, предоставленный загрузчиком видео?
  • Зависит ли этот видеоконтент от языка?

После определения порога концентрации мы выделили два основных типа контента: контент с высокой концентрацией — подходящий для одного основного источника и контент с низкой концентрацией — контент, не зависящий от конкретного языка и, следовательно, подходящий для многих источников. Ниже вы найдете начальное Определение индекса Герфиндаля, где si — рыночная доля фирмы i на рынке, а n — количество фирм.

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

Что мы получаем

Чтобы проиллюстрировать наш подход, мы рассмотрели результаты самых просматриваемых видео Dailymotion за месяц. Итак, что дает подход использования метаданных x и что мы нашли?

Верен ли язык, предоставленный загрузчиком видео?

Что касается нашего набора видео, мы обнаружили, что в 1 из 4 случаев язык, предоставленный владельцем видео, не соответствовал языку, рассчитанному BubbleTea. Это доказывает необходимость не полагаться только на предоставленные метаданные. Этот коэффициент ошибок 1 из 4 является верхней границей, поскольку проанализированные нами видео считаются в целом хорошего качества. Для большей части остального каталога частота ошибок, связанных с языком в метаданных, предоставленных владельцем, выше (в основном «английский по умолчанию»).

Когда мы сравниваем заявленные языки и языки, обнаруженные BubbleTea, с тем, что, по словам пользователей, они на самом деле понимают, мы обнаруживаем, что заявленный язык соответствует языкам, используемым зрителями, менее чем в 40% случаев. Языки, обнаруженные BubbleTea, работали немного лучше, это указывает на то, что в этом случае обнаружение языка метаданных превосходит заявленный язык. Однако сам по себе BubbleTea по-прежнему не является оптимальным решением для определения всех подходящих языков для видео.

Более чем в 60% наших случаев знание метаданных x показывало альтернативные подходящие языки, отличные от заявленного.

Это видео зависит от языка?

Благодаря знаниям об использовании метаданных x мы теперь можем определить, насколько тесно видео коррелирует с данным языком с точки зрения понимания аудитории. Видео с низкими значениями SHerf очень слабо связаны с определенными языками. Видеоролики Low Sherf — это сборники неудачных видеороликов, спортивных видеороликов, популярных музыкальных клипов, детских песенок и трейлеров к блокбастерам. Видео с высоким значением Sherf более тесно связаны с определенной аудиторией, например, с сегментами телевизионных новостей, документальными фильмами не на английском языке, видео региональных событий, таких как дебаты, местные спортивные состязания или ситкомы.

Кроме того, мы обнаружили, что можем расширить целевую аудиторию этих видео с одного конкретного языка почти до трех (хорошо, 2,9, если быть точным). Это означает, что большинство видео не ориентированы на один конкретный язык аудитории. Охват аудитории видео не ограничивается языком, на котором на нем говорят. Теперь мы можем расширить охват этого видео, чтобы почти втрое увеличить количество потенциальных зрителей. У нас есть способ автоматически идентифицировать такой контент и даже квалифицировать его благодаря подходу «метаданные x использование». Здесь, например, мы знаем, что футбольные голы и лучшие моменты не зависят от языка.

Бонус!

С подходом использования метаданных x мы также сталкиваемся с неожиданными выводами. Мы обнаружили, что при нашем подходе всплывают видео на языке А с субтитрами на языке Б, что означает, что они подходят для обоих языков А и Б. Это явно увеличивает потенциальную аудиторию видео, и нам даже не нужно было вводить OCR в игра. Кроме того, мы обнаружили тенденции распространения видео, которые не являются местными для данного места, например, английские детские стишки, популярные на Ближнем Востоке. Это интересно как для понимания подходящих языков для видео, так и для выявления новых трендов.

Убери это

С помощью этой методологии мы объединили внутренние атрибуты видео и наши знания о поведении зрителей, чтобы получить дополнительные сведения о нашем контенте. Мы получаем лучшее из обоих миров, так как мы получаем язык видеоконтента, И мы также увеличиваем потенциальную аудиторию видео (низкие SHerf) или сужаем их аудиторию, если они очень специфичны для языка (высокие SHerf). Этот процесс принес нам понимание языка, используя рабочий процесс от аудитории к контенту. Это также может пойти наоборот.

В этой статье мы хотели показать, как хорошо иметь данные, но определение работы, которую необходимо выполнить, не менее важно, чем сами данные. Вы не будете знать, что делать с вашими данными, если тщательно не поймете и не опишете свою проблему. Когда мы выявили различные языковые проблемы, мы смогли решить каждую из них с помощью соответствующего ответа. При наивном подходе мы бы просто решили классифицировать язык метаданных и посчитали бы этот результат истиной. Интегрируя в процесс поведение аудитории, нам удалось превратить эту «правду» в нечто более реалистичное и интересное для работы. Короче говоря: иметь данные — это хорошо, но нестандартное мышление, позволяющее объединить знания и доступные инструменты, — еще лучше!