- PVSM.RU - https://www.pvsm.ru -

Хакатон и зимняя научная школа по глубокому обучению и вопросно-ответным системам

Сегодня машины без труда “связывают два слова” (1 [1], 2 [2]), но пока не умеют гарантированно вести диалог на общие темы. Однако, уже завтра вы будете просить их правильно составить резюме и выбрать для ваших детей лучшую секцию по шахматам недалеко от дома. Хотите разобраться подробней, как в этом направлении работают ученые из Facebook, Google и др? Приходите их послушать.
Хакатон и зимняя научная школа по глубокому обучению и вопросно-ответным системам - 1

С 31 января по 5 февраля в Московском физико-техническом институте при научной поддержке Лаборатории нейронных систем и глубокого обучения пройдет второй международный хакатон по глубокому обучению и машинному интеллекту DeepHack.Q&A. В рамках научной школы хакатона ведущие мировые специалисты из Google Brain, Facebook AI Research, OpenAI, Skoltech, University of Oxford, Courant Institute of Mathematical Sciences в NYU, прочтут серию лекций по глубокому обучению и его применению к задачам обработки естественного языка. Большинство из них — удаленно, однако ожидается личное присутствие Роба Фергуса (Rob Fergus) и Фила Блансома (Phil Blunsom).

Про тему. Хакатон будет посвящен задаче The Allen AI Science Challenge [3]. От участников требуется разработать программу, способную самостоятельно обучиться отвечать на вопросы уровня 8 класса американской школы. Для этого участникам даны [4] тренировочный (2 500 вопросов) и валидационный (8 132 вопроса) наборы вопросов в формате csv-файла с 4-мя вариантами ответа. Для тестового набора известны правильные ответы. Валидационный набор необходим для того, чтобы определить уровень точности ответов вашей системы и, соответственно, ранжировать заявленные решения по этому критерию. В наборах присутствуют вопросы по основным предметам школьной программы: физика, биология, география и др.

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

Именно это сделали ребята из команды 5vision (кстати, победители летнего хакатона) и опубликовали свое решение на форуме [5] Kaggle и Github [6]. Инструкцию по установке вы найдете здесь [7]. Если вдруг есть непреодолимое желание использовать Linux, но под рукой его у вас нет, то можете бесплатно зарегистрироваться на koding.com [8] (или много еще где) и запустить все там. Теперь хотелось бы подробней остановится на том, что это решение делает.

Оно основано на одной из реализаций представления слов [9] в многомерном векторном пространстве — GloVe [10] (Global Vector for Word Representation), где близким по смыслу словам ставятся в соответствие близкие в евклидовой метрике вектора. Более известная реализация word2vec [11] уже освещалась на Хабре (1 [12],2 [13],3 [14] и др) (а один из авторов этой реализации Томас Миколов (Tomas Mikolov), будет читать лекции на хакатоне).

Применение GloVe (glove_predict.py [15]) к вопросу выглядит следующим образом:

  1. Предобработка вопроса:
    • выкидываем все, кроме заглавных и строчных букв английского алфавита и пробела.
    • выкидываем так называемые “стоп”-слова (слова, которые практически не влияют на смысл предложения).
  2. Задаем нулевое векторное представление вопроса q = 0.
  3. Проходим циклом по всем оставшимся словам вопроса и прибавляем к q векторное представление каждого слова.
  4. Проводим аналогичные вычисления векторного представления всех четырех ответов.
  5. Выбираем тот ответ, расстояние до которого от вектора q наименьшее.

Данная реализация дает 32% точности на валидационном наборе.

У 5vision есть и другая более “классическая” реализация (ck12_wiki_predict.py [16]), основанная на применении меры TF-IDF [17]. Работает она так:

  1. Парсим ключевые слова по основным темам с сайта www.ck12.org [18] (для примера тема “Физика”: http://www.ck12.org/physics/ [19]).
  2. Скачиваем документы из википедии по собранным ключевым словам.
  3. Вычисляем меры TF и IDF для данной коллекции документов и слов.
  4. Для каждого вопроса выбираем наиболее релевантную статью из коллекции.
  5. Для каждого ответа считаем его релевантность по отношению к данной статьи и выбираем тот, что дает максимальное значение.

Эта реализация дает 36% точности. Для представления масштаба результатов стоит отметить, что на текущий момент первое место в рейтинге [20] отвечает правильно на 56% вопросов.

Конкурс имеет ряд особенностей (здесь [21] можно найти обзор-выжимку с форума конкурса) — например, итоговое решение должно работать без доступа к интернету. И вообще, чтение форума [22] конкурса может дать очень много полезного.

Расписание мероприятие такое же как и на прошлом DeepHack’e.

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

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

Суббота: подведение итогов, награждение победителей.

Всем участникам также будет предоставлено проживание и вычислительные ресурсы. Но свой ноутбук надо принести с собой.

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

Автор: e777

Источник [23]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/programmirovanie/107625

Ссылки в тексте:

[1] 1: http://arxiv.org/abs/1506.05869

[2] 2: http://neurobot.deephack.me/chatbot/dialog2.php

[3] The Allen AI Science Challenge: https://www.kaggle.com/c/the-allen-ai-science-challenge

[4] даны: https://www.kaggle.com/c/the-allen-ai-science-challenge/data

[5] форуме: https://www.kaggle.com/c/the-allen-ai-science-challenge/forums/t/17932/baseline-solutions-glove-and-ir

[6] Github: https://github.com/5vision/kaggle_allen

[7] здесь: http://deepqa.tilda.ws/page80326.html

[8] koding.com: http://koding.com/

[9] представления слов: https://ru.wikipedia.org/wiki/%D0%92%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D0%BB%D0%BE%D0%B2

[10] GloVe: http://nlp.stanford.edu/projects/glove/

[11] word2vec: https://code.google.com/p/word2vec/

[12] 1: http://habrahabr.ru/post/249215/

[13] 2: http://habrahabr.ru/post/258983/

[14] 3: http://habrahabr.ru/post/263171/

[15] glove_predict.py: https://github.com/5vision/kaggle_allen/blob/master/glove_predict.py

[16] ck12_wiki_predict.py: https://github.com/5vision/kaggle_allen/blob/master/ck12_wiki_predict.py

[17] TF-IDF: https://ru.wikipedia.org/wiki/TF-IDF

[18] www.ck12.org: http://www.ck12.org/

[19] http://www.ck12.org/physics/: http://www.ck12.org/physics/

[20] рейтинге: https://www.kaggle.com/c/the-allen-ai-science-challenge/leaderboard

[21] здесь: https://docs.google.com/document/d/1L96Y2JnQ_iGNgnA8duH0kE0RxXuyohO_jS4RURY2b7U/edit?usp=sharing

[22] форума: https://www.kaggle.com/c/the-allen-ai-science-challenge/forums

[23] Источник: http://habrahabr.ru/post/274233/