[БЕЗ_ЗВУКА] В этом видео мы рассмотрим внешние критерии качества тематических моделей. Если внутренние критерии оценивают матрицы Φ и Θ построенной тематической модели, то внешние критерии используют конечную прикладную задачу и пытаются измерить полезность тематической модели для пользователя или для того или иного приложения. Мы рассмотрим 2 основных приложения тематических моделей: это классификация и поиск. Классификация документов — это задача машинного обучения, обучения с учителем. И типичное применение: первое — определить жанр документа (художественный, научный, учебный, рекламный). Такая задача возникает при обработке потоков документов, полученных краулерами из Интернета. Например, мы можем упростить эту задачу до двух классов, если нас интересует только научный контент. Следующий пример задач — это определение тематики сообщения в новостном потоке, например политика, экономика, наука, здоровье, спорт и так далее. Приходящие новости раскладываем по папкам. И есть целый класс задач чуть более сложных — задача категоризации или рубрикаризации, когда есть некая иерархическая структура — папки, подпапки, в которые нужно складывать приходящие документы, например те же новостные потоки. Ну вот здесь приведены 2 примера, что папки высшего уровня — это наука, спорт — такие большие темы, крупные. Наука делится на области науки: физика — в физике могут быть новости про большой адронный коллайдер, в футболе могут быть новости про чемпионат мира, ну и другие какие-то подразделы. И поток новостей нужно разбить на вот такие рубрики и подрубрики, при том что обучающая информация, которая, собственно, используется для построения модели классификации, это результат раскладывания документов экспертами. И мы здесь считаем, что во всех этих типах задачи у нас есть обучающая выборка, в которой эксперты указали, к какой рубрике, жанру, тематике принадлежит каждый документ. И вот эта информация может быть использована для оценивания качества тематической модели. Итак, как же строить классификаторы с помощью тематической модели? Есть тонкий момент, который здесь должен быть объяснен в явном виде. Конечно, мы можем применить наш механизм мультимодальных моделей и использовать две модальности. Первая — это слова или термины, вторая — это классы. Тонкость заключается в том, что у нас чуточку разная модель работает на этапе обучения и на этапе классификации. На этапе обучения на входе мы имеем коллекцию документов. И здесь для каждого документа нам известен не только состав его слов, но еще и множество классов, к которому этот документ относится. И это далеко не всегда один-единственный класс. Например, в задачах рубрикации очень часта ситуация, когда один и тот же документ может быть отнесен в несколько рубрик. Например, он может быть и про футбол, и про экономику. И про адронный коллайдер, и опять-таки про экономику или про политику Евросоюза в отношении адронного коллайдера. И вот такие вот случаи множественной принадлежности документов к классам нам тоже необходимо рассматривать. На выходе мы должны построить тематическую модель, которая описывает распределение слов в каждой теме и распределение классов в каждой теме. Вот по этим двум матрицам мы сможем классифицировать новые документы, для которых исходно никаких классов не известно. На этапе классификации нам на входе подают документ, и подается модель классификации, которую мы построили на этапе обучения. Про этот документ известны только слова, а нам нужно определить, к каким темам принадлежит этот документ. Поэтому первым делом определяем тематику данного документа. Для этого нам достаточно распределения слов в этом документе, а затем мы используем модель, которая была построена на этапе обучения, для того чтобы определить условные вероятности каждого класса для данного документа. И дальше можем разными способами работать с этим распределением классов, чтобы указать, к каким из этих классов документ принадлежит. Теперь, если у нас есть алгоритм, который выдает по данному документу вероятности принадлежности к каждому из классов, то можно разными способами оценивать качество такого классификатора. Ну во-первых, можно задать порог на эту вероятность, считать, что если вероятность больше этого порога, то документ принадлежит к данному классу, и просто подсчитывать число ошибок классификации. Это не очень хорошая мера, поскольку классы могут иметь разную важность и разную мощность или численность. Поэтому чтобы работать с несбалансированными выборками, можно использовать критерии чувствительности и специфичности, о которых мы уже рассказывали в других курсах. Есть также критерий площади под кривой чувствительность-специфичность, который уже нечувствителен к тому, какой именно порог мы выберем для классификации документов. Наконец, есть критерий точности и полноты и, соответственно, площадь под кривой точность-полнота. Вот давайте точность и полноту рассмотрим чуть поподробнее в связи с тем, что у нас, как правило, в задачах категоризации классов много. Как действовать в такой ситуации? Ну напомню, что для того чтобы определить, что такое точность (precision) и полнота (recall), нам нужно определить число верных положительных классификаций (положительными считаются те классификации, которые отнесли данный документ к классу c), ложные положительные классификации (это когда документ отнесен к классу c, но это ошибка, на самом деле в обучающей выборке сказано, что документ не принадлежит к данному классу) и ложные отрицательные. Ложные отрицательные — это когда алгоритм говорит, что данный документ не принадлежит к классу c, а на самом деле он ему принадлежит. И точность определяется как доля релевантных документов среди всех найденных, если считать, что мы вот хотели найти документы класса c, а релевантные — это те, которые действительно класса c. Полнота, или recall, — это, наоборот, доля найденных документов среди релевантных. Это характеристика определена для данного конкретного класса c. Если классов много, как мы поступаем с этими величинами? Есть 2 способа, 2 стратегии. Первый называется «микроусреднение», когда мы суммируем по классам отдельно величины верных положительных, ложных положительных и ложных отрицательных классификаций. Другая стратегия заключается в том, что мы сначала высчитываем точность и полноту для каждого класса, а потом их усредняем. В чем принципиальная разница? В том, что макроусреднение более чувствительно к качеству классификации маломощных классов. Оно потребует от нас примерно одинаковой работы на... одинакового качества работы на всех классах, независимо от их мощности. А при микроусреднении, когда мы складываем число верных или ложных положительных или отрицательных классификаций, то малочисленные классы теряются на фоне многочисленных. Следующая задача, которая часто используется для оценивания качества тематических моделей, — это тематический поиск. Здесь на входе нам также подается коллекция документов в виде матрицы слов в документах, а на выходе строится тематическая модель коллекции. Но если в случае классификации у нас есть еще модальность классов, и нас интересует распределение классов в темах, распределение слов в темах, то в данном случае нас интересует распределение тем в документах. Когда мы делаем тематический поиск, мы ищем документы, которые были в коллекции, по документу, который является поисковым запросом. И те и другие документы должны быть представлены в виде компактного векторного описания, то есть в виде распределения по множеству тем. Итак, на этапе поиска мы имеем входной запрос. Это текст произвольной длины. И это важный момент, который отличает тематический поиск от того поиска, к которому мы все привыкли в поисковых системах типа Google или Yandex. Тематический поиск открывает перед нами новую возможность — искать длинные документы по длинным документам. Итак, первым делом мы должны тематизировать наш запрос, то есть построить для данного запроса q распределение тем в запросе. А далее мы должны посмотреть на все документы нашей коллекции и найти из них те, которые имеют тематические профили, близкие к тематическому профилю нашего запроса, то есть мы будем сравнивать условные распределения тем у запроса документа и у тех документов, которые лежат в нашем поисковом индексе. Как их сравнивать? Как сравнивать два вероятностных распределения? В информационном поиске принято использовать несколько мер — конечно же, их гораздо больше, но эксперименты на многих задачах показали, что наиболее эффективно работают следующие. Косинусная мера — это просто косинус угла между двумя векторами в пространстве размерности t. Первый вектор — это вектор документа, значит, распределения по всем темам, второй — это вектор запроса тоже распределения по всем темам. И просто по известной всем формуле — косинус угла между двумя векторами — вычисляется вот эта мера. Чем она больше, тем ближе друг к другу два вектора. Значение косинусной меры заключено от 0 до 1. Следующая мера, которая тоже принимает значения от 0 до 1, — но это уже функция расстояния, то есть она меряет не близость, а расстояние; чем меньше это значение, тем ближе друг к другу два вектора — называется расстояние Хеллингера. Оно очень похоже на евклидово расстояние, только вместо самих условных вероятностей — координат сравниваемых векторов, — стоят их квадратные корни. Ну и, наконец, KL-дивергенция — тоже очень полезная мера близости вероятностных распределений, но эта мера несимметричная в отличие от двух предыдущих. И здесь мы меряем, насколько запрос подходит под данный документ, насколько он хорошо вкладывается в данный документ. И эта мера, в общем-то, лучше подходит для тех случаев, когда запросы все-таки у нас в среднем короче, чем документы. Например, когда мы по небольшим аннотациям пытаемся найти научные статьи или по кратким резюме пытаемся найти какие-то длинные документы по этим темам. Конечно же, какую из этих мер выбрать — сильно зависит от прикладной задачи и от свойств коллекции, и от того, какие запросы мы собираемся обрабатывать. Еще один момент, который здесь можно упомянуть — это что на косинусную меру и на расстояние Хеллингера может сильно влиять такой прием, как обрезание хвостов распределений. Потому что темы — это все-таки распределения наиболее часто встречающихся слов в темах, и точно так же и документы — это распределения наиболее часто встречающихся тем в документах. Редкие темы нас мало интересуют. И когда строят тематический поиск, часто обнуляют маловероятные темы в документах или, например, берут сколько-то топовых тем, а остальные полагают равными 0. Это иногда повышает качество поиска, а иногда повышает его скорость, потому что получается разреженное распределение. Итак, каким же образом, научившись вычислять меры близости между запросом и документом, дальше оценивать качество тематической модели? Но поиск — это всегда ранжированная поисковая выдача, и оценивать надо список выдачи. Самая простая распространенная оценка — это попытаться оценить точность первых k позиций выдачи. Но для этого нужно привлекать эксперта, который возьмет по каждому запросу просмотрит эти k первых позиций выдачи и отметит, какие из них релевантные, какие нерелевантные. После этого можно будет применить тот самый критерий точности, о котором мы говорили выше. Можно упростить эту оценку и сделать ее полностью автоматической, если искать среднюю позицию документа, в случае когда мы ищем документ по его аннотации или по его коротким фрагментам. Обобщение этого поиска — это когда мы режем документ на фрагменты и пытаемся понять, насколько хорошо одни фрагменты могут быть найдены по другим фрагментам. Чем хорош такой способ организации измерительного эксперимента — тем, что здесь не надо привлекать асессора и здесь мы заранее знаем, какие результаты поиска релевантны, какие — нет. Если мы взяли из документа фрагмент и хотим найти по нему фрагменты того же документа, то мы знаем класс, который мы ищем целиком, и можем оценить как полноту, так и точность. Ну и есть всякие специфические приложения, например кросс-язычный поиск, когда мы по документу на одном языке ищем его переводы или переводы тематически схожих документов на других языках, то в данном случае для организации эксперимента по измерению точности тематической модели в качестве запроса может быть дан документ, а искать мы будем его переводы на другой язык. И средняя позиция в поисковой выдаче — это как раз и есть мера точности поисковой системы, которая построена по тематической модели, и, следовательно, это мера качества тематической модели. Итак, мы с вами рассмотрели как внутренние, так и внешние оценки качества тематических моделей. Внешние оценки связаны с теми или иными приложениями тематических моделей. Мы рассмотрели два, ну пожалуй, основных приложения: это классификация, или категоризация, и второе приложение — это тематический поиск. Но есть также и другие приложения тематических моделей: сегментация текстов, аннотирование текстов, суммаризация, то есть составление кратких выжимок по отдельному документу либо по подколлекциям документов. Мы эти критерии рассматривать не будем — по ним есть обширная литература в области тематического моделирования.