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

В этой статье мы представим подход, который использует представление мешок слов для выявления структур скрытых каналов ежедневных движений. Мы будем использовать представление каналов в виде набора слов в алгоритмах кластеризации, таких как k-среднее, и встраивание автокодировщика нейронной сети, чтобы продемонстрировать структуру близости каналов.

Мешок слов Представление

Представление "мешок слов" происходит из обработки естественного языка (NLP). Для данного текстового документа он заключается в игнорировании структуры фразы и сохранении только вхождений слов. Обоснование этого представления заключается в том, что контекст слов, захваченный их совместным появлением, несет достаточно информации, чтобы обеспечить извлечение семантического контента.

В случае каналов dailymotion набор слов получается следующим образом. Мы обозначим набор каналов dailymotion как 𝒟 = {𝒹m, m = 1,…, M} и предположим, что нам дано N словарь слов 𝒲 = {𝓌n, n = 1,…, N}.

Представление "мешок слов" состоит из матрицы C = C (𝒹m, 𝓌n), в которой каждая запись (m, n) представляет собой эмпирическую вероятность n -ое словарное слово, появляющееся в метаданных видео m -го канала. Каждая строка матрицы C представляет собой набор слов соответствующего канала.

Кластеризация каналов с помощью K-средних

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

1. Initialization: among the samples, randomly select K centroids to represent the K clusters
2. Iterate until convergence: assign each of the elements to the cluster of the closest among the K centroids, then update each one of the centroids as the barycenter of the samples inside it's class

Классически евклидово расстояние используется как мера несходства. Когда каналы представлены в виде набора слов, евклидово расстояние не подходит для сравнения различных каналов, поскольку набор слов представляет вероятности появления слов. Использование расстояний для сравнения вероятностных распределений, таких как расстояние Бхаттачарьи, более уместно.

Учитывая набор слов двух каналов Ci = (Cin, n = 1,…, N) и Cj = (Cjn, n = 1,…, N) расстояние Бхаттачарьи между ними определяется как:

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

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

Встраивание каналов с помощью нейронных автокодировщиков

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

В случае анализа структуры канала мы создаем нейронный автокодировщик с одним скрытым слоем, который принимает в качестве входных данных набор слов канала и реплицирует его через скрытый слой узкого места. Слой узкого места имеет размерность L, которая намного ниже, чем размерность входного набора слов N. Эта структура вынуждает сеть учиться встраиванию входных данных в более низкую размерность. Следовательно, сеть создает аналогичное представление более низкой размерности для каналов, имеющих аналогичное представление пакета слов.

Отображение нейронной сети выглядит следующим образом. Во-первых, набор слов каналов отображается в пространство вложения более низкого измерения как:

Затем встроенные представления отображаются обратно в пакет слов входного канала как:

где relu - функция активации выпрямленного линейного блока, а переменные W и b - параметры нейронной сети, которые обучаются с помощью обучающих выборок. На следующем рисунке показан графический вид автокодировщика.

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

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

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