БММО (курс лекций)/2013осень/Задание 2

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
Строка 6: Строка 6:
'''Начало выполнения задания''': 3 ноября 2013 г.<br>
'''Начало выполнения задания''': 3 ноября 2013 г.<br>
-
'''Срок сдачи''': {{важно|19 декабря 2013 г., 23:59.}} За каждый день просрочки оценка за задание будет снижаться на 0.1 балла.
+
'''Срок сдачи''': {{важно|18 декабря 2013 г., 23:59.}} За каждый день просрочки оценка за задание будет снижаться на 0.1 балла.
== Анализ текстов на естественном языке с помощью скрытого размещения Дирихле ==
== Анализ текстов на естественном языке с помощью скрытого размещения Дирихле ==

Версия 20:04, 4 декабря 2013

Описание задания завершено. Можно приступать к выполнению


Содержание


Начало выполнения задания: 3 ноября 2013 г.
Срок сдачи: 18 декабря 2013 г., 23:59. За каждый день просрочки оценка за задание будет снижаться на 0.1 балла.

Анализ текстов на естественном языке с помощью скрытого размещения Дирихле

В рамках данного задания студентам предлагается самостоятельно провести исследование по применению метода скрытого размещения Дирихле (LDA) на реальном корпусе текстов и получить интерпретируемые результаты в виде описаний тем (топиков). Используя готовую реализацию LDA, необходимо изучить зависимость меры качества от параметров модели и получить качественные выводы об их влиянии как на формальные критерии качества, так и на субъективные, подразумевающие интерпретируемость полученных тем с точки зрения человека.

В качестве формального критерия качества используется правдоподобие тестовой выборки p(\mathbf{w}_{\text{test}} | \mathbf{w}_{\text{train}}) (см. напр. конспект лекции). Рекомендуется выбрать реализацию LDA, входящую в состав пакета Mallet, однако студент может выбрать и любую другую на свой страх и риск, если ее функциональности достаточно для проведения данного исследования.

В дальнейшем используются обозначения, совместимые, как с конспектом, так и с документацией Mallet: \alpha обозначает значение параметра априорного распределения, отвечающего за пропорции тем в документе; \beta аналогично обозначает параметр априорного распределения для тем. Оба априорных распределения полагаются симметричными (все соответствующие параметры равны между собой), если не указано обратное.

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

Исследование должно включать в себя следующие пункты:

  1. Зависимость качества модели от числа тем при фиксируемых значениях \alpha = 0.1 и \beta = 0.01. Необходимо построить график, а также привести качественные выводы о полученной зависимости. Удалось ли с помощью данного критерия уверенно определить оптимальное число тем в модели? Допускается перебор числа тем не через 1, а с большим интервалом, если это позволяет сделать все необходимые выводы.
  2. Зависимость качества модели от параметров одного из априорных распределений (в зависимости от варианта) при различном количестве тем, включая оптимальное из предыдущего пункта (в случае если оно было найдено). Можно ли сделать вывод о том, что какие-то значения параметров на данном корпусе текстов достаточно стабильно дают лучшую модель по сравнению с другими значениями? Чем можно объяснить оптимальность этих значений?
  3. Как изменяется зависимость, исследуемая в пункте 1, при оптимизируемых параметрах \alpha и \beta? Можно ли объяснить оптимальные значения параметров при оптимальном числе тем? В отчете следует привести темы, полученные при оптимальном наборе параметров.
  4. Выводы о том, подходит ли, в целом, LDA для анализа данного корпуса текстов, и какие задачи можно было бы решать с помощью этого инструмента на данном корпусе?

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

Вопросы по выполнению задания можно оставлять на странице обсуждения.

Памятка по использованию Mallet

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

  • Задать значения гиперпараметров \alpha и \beta можно, соответственно, с помощью параметров --alpha ЗНАЧЕНИЕ и --alpha ЗНАЧЕНИЕ при выполнении команды mallet train-topics
  • Команда mallet train-topics имеет также параметр --optimize-interval ЗНАЧЕНИЕ, позволяющий указать число итераций, после которых будет произведена автоматическая оптимизация гиперпараметров. Разумно выбирать значение 5-10 итераций. По умолчанию оптимизации гиперпараметров не проводится.
  • Для последующего измерения тестовой выборки при обучении модели с помощью команды mallet train-topics следует сохранить специальное представление модели с помощью параметра --evaluator-file ФАЙЛ, после чего указывать путь к данному файлу в параметре --evaluator ФАЙЛ команды mallet evaluate topics. Рекомендуется также устанавливать число итераций при подсчете тестовой выборки --num-iterations ЗНАЧЕНИЕ в районе 200-500.
  • С помощью параметра --output-topic-keys ФАЙЛ можно сохранить наиболее важные слова для каждой темы, порог важности и максимальное число слов можно так же проконтролировать соответствующими параметрами.
  • Команда mallet infer-topics --inferencer ФАЙЛ --input ФАЙЛ строит для каждого входного документа (упакованного во один входной файл в специальном формате) его профиль (распределение по темам, \theta). Для использования этой команды при построении модели необходимо указать параметр --inferencer-file ФАЙЛ.
  • При обучении модели рекомендуется использовать число итераций не менее 1000 (значение по умолчанию). Большее число итераций позволяет получить более надежные результаты. С помощью параметра --num-threads ЗНАЧЕНИЕ можно распараллелить процесс обучения на несколько потоков.

Распределение студентов по вариантам

Первый вариант использует набор данных NIPS (оригинальные данные входят в комплект) и настраивает параметр \beta. Второй вариант использует набор данных 20 newsgroups (оригинальные данные доступны здесь) и настраивает параметр \alpha.

№ п/п Студент Вариант Оценка
1 Жмудь - 203 1
2 Коняхин - 203 2
3 Молчанов - 203 1
4 Юкова - 203 2
5 Швец - 416 1
6 Кульпинов - 202 2
7 Чабаненко - 204 1
8 Галков - 205 2
9 Тавыриков - 205 1
10 Казорин - ВВО 2
11 Колосков - 204 1
12 Комалов - 210 2
13 Белоусов - 210 1
14 Чиркова - 210 2
15 Даулбаев - 205 1
16 Иванов - 203 2
17 Кондрашкин - 517 1
18 Ибадов - 420 2
19 Чепарухин - 214 1
20 Панкратов - 205 2
21 Борисов - 525 1
22 Дремов - 205 2
23 Щемирова - 205 1
24 Нижибицкий - 517 2
25 Горячих - 210 1
26 Захаров - 317 2

Кто не обнаружил себя в списках, пожалуйста, отпишитесь нам (bayesml@gmail.com). Если чью-то фамилию не разобрал, не взыщите - сообщите и мы исправим :)

Оформление задания

Результаты выполнения задания в виде отчета в формате PDF следует присылать на адрес bayesml@gmail.com с темой «[БММО13] Задание 2 <ФИО>». Убедительная просьба присылать выполненное задание только один раз с окончательным вариантом.