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

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

Версия от 10:35, 13 сентября 2014; Mfigurnov (Обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск
Задание проверено


Внимание! Изменились сроки сдачи задания.


Внимание! В связи с возникшими у некоторых студентов проблемами с mallet, были внесены изменения в текст задания (опциональные, если у вас не возникло проблем, то не нужно ничего переделывать), а также срок сдачи был также перенесен на 2-е суток.


Содержание


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

ПРЕДУПРЕЖДЕНИЕ. Настоятельно рекомендуется не затягивать с выполнением задания, так как на обучение модели LDA уходит некоторое ненулевое время, зависящее от мощности вашего компьютера, количества ядер и т.д.

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

В рамках данного задания студентам предлагается самостоятельно провести исследование по применению метода скрытого размещения Дирихле (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, а с большим интервалом, если это позволяет сделать все необходимые выводы. Опционально: студенты могут также выполнить исследование и с параметром \alpha, задаваемым как 50 / T, где T - это число топиков.
  2. Зависимость качества модели от параметров одного из априорных распределений (в зависимости от варианта) при различном количестве тем, включая оптимальное из предыдущего пункта (в случае если оно было найдено). Можно ли сделать вывод о том, что какие-то значения параметров на данном корпусе текстов достаточно стабильно дают лучшую модель по сравнению с другими значениями? Чем можно объяснить оптимальность этих значений?
  3. Как изменяется зависимость, исследуемая в пункте 1, при оптимизируемых параметрах \alpha и \beta? Можно ли объяснить оптимальные значения параметров при оптимальном числе тем? В отчете следует привести темы, полученные при оптимальном наборе параметров. Уточнение: допускается оптимизация как симметричных параметров \alpha, так и несимметричных.
  4. Выводы о том, подходит ли, в целом, LDA для анализа данного корпуса текстов, и какие задачи можно было бы решать с помощью этого инструмента на данном корпусе?

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

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

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

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

  • Задать значения гиперпараметров \alpha и \beta можно, соответственно, с помощью параметров --alpha ЗНАЧЕНИЕ и --alpha ЗНАЧЕНИЕ при выполнении команды mallet train-topics. ВАЖНО: значение параметра ---alpha разделяется на число тем, таким образом, при передаче данного параметра следует предварительно умножать нужное вам значение \alpha на число тем.
  • Команда 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 5
4 Юкова - 203 2 5
5 Швец - 416 1
6 Кульпинов - 202 2
7 Чабаненко - 204 1 5
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 5
17 Кондрашкин - 517 1 4.9
18 Ибадов - 420 2
19 Чепарухин - 214 1
20 Панкратов - 205 2
21 Борисов - 525 1
22 Дремов - 205 2
23 Щемирова - 205 1
24 Нижибицкий - 517 2 5
25 Горячих - 210 1
26 Захаров - 317 2
27 Ямшинин - ВВО 1

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

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

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

Личные инструменты