Курс “Введение в информационный поиск” и немного истории
Меня зовут Павел Браславский, я научный сотрудник JetBrains Research и доцент Питерской Вышки.
Осенью прошлого года я после большого перерыва прочитал курс «Введение в информационный поиск», на этот раз — для студентов академических программ JetBrains в Питерской Вышке и ИТМО. Come-back получил продолжение — зимой я прочитал мини-курс с обзором моделей информационного поиска и подходов к оценке для сотрудников Tinkoff, а весной — обзорную лекцию про информационный поиск в рамках курса по обработке естественного языка. В этой статье я кратко расскажу о курсе и его «исторических предпосылках».
В 2000-x Веб бурно развивался, а вместе с ним — поисковые машины. Информационный поиск получил мощный стимул для развития в виде сложных задач, денег и притока специалистов из смежных областей. К этому моменту основными учебниками по информационному поиску были Ian Witten «Managing Gigabytes» и Ricardo Baeza-Yates, Berthier Ribeiro-Neto «Modern Information Retrieval», выпущенные в 1990-е годы. В 2008 появился отличный современный учебник Christopher Manning, Prabhakar Raghavan, Hinrich Schütze «Introduction to Information Retrieval» (в 2009 вышло второе издание). Вместе с Ильей Сегаловичем я участвовал в переводе и редактировании русского перевода, который вышел в 2010 году при поддержке Яндекса. В то время вокруг семинара РОМИП и школы RuSSIR сформировалось активное сообщество людей, интересующихся задачами информационного поиска, многие из них участвовали в переводе терминологии. Работа над книгой помогла мне лучше разобраться в дисциплине, и начиная с 2009 я читал одноименный курс в ШАДе и Уральском университете. В 2014/15 учебном году благодаря гранту фонда «Династия» я прочитал курс в ИТМО и СПбГУ, потом был большой перерыв.
После того, как мне предложили прочитать курс, я решил освежить знания и просмотрел много учебных материалов по теме. Отличный обзор ресурсов можно найти в статье Ilya Markov, Maarten de Rijke «What Should We Teach in Information Retrieval?». (Кстати, Илья Марков читал курс по информационному поиску в Санкт-Петербурге до меня — в 2017 и 2018.) В итоге я взял за основу материалы Стэнфордского курса, логика и содержание которого мне хорошо знакомы (а основной учебник курса — все тот же «Introduction to Information Retrieval»). Курс знакомит студентов с базовыми понятиями — структурами данных и моделями информационного поиска, оптимизацией индексирования и поиска, методами оценки, а также с более «продвинутыми» темами — машинным обучением ранжированию, анализом ссылочной структуры Веба и вопросно-ответным поиском. В качестве «добавок» я включил, например, русскую морфологию и генерацию сниппетов. Практическая часть состояла из трех заданий: обработка большой текстовой коллекции, индексирование коллекции и поиск по ней с помощью Elasticsearch, а также обучение функции ранжирования.
Практические задания базировались на коллекции РОМИП By.Web и данных «Интернет-математики 2009». Это хороший пример того, как открытые данные помогают в исследованиях и образовании даже через много лет после их создания. РОМИП (Российский семинар по Оценке Методов Информационного Поиска) был организован в 2003 году. Во многом РОМИП ориентировался на Text REtrieval Conference (TREC) и видел свою задачу в проведении открытой оценки информационно-поисковых систем на русскоязычных данных. By.Web — самая большая коллекция РОМИПа, она содержит примерно 1,5 млн страниц белорусского домена .by и, что самое важное, оценки релевантности документов примерно для 1,500 поисковых запросов. В феврале 2020 коллекция стала свободно доступной. Количество размеченных запросов и простая процедура получения — существенные преимущества по сравнению с коллекциями TREC.
Участники семинара РОМИП 2004 года в Пущино. Нижний ряд: Марина Некрестьянова, Илья Сегалович, Михаил Маслов, Игорь Некрестьянов, Макс Губин, Владимир Плешко. В верхнем ряду Дмитрий Панкратов, Лев Гершензон, Владислав Шабанов, Александр Антонов, Андрей Федоровский, Борис Добров, Елена Козеренко, Михаил Агеев.
Для задачи обучения функции ранжирования использовались данные конкурса «Интернет-математика 2009», организованного Яндексом. Набор содержит векторы 245 признаков и оценки релевантности примерно для 20,000 пар «запрос-документ». В рамках подготовки курса эти данные, которые пропали в череде переделок корпоративных сайтов Яндекса, удалось найти и вновь сделать доступными (отдельное спасибо Наташе Осташевой). В 2010 Yahoo! провела аналогичные соревнования с набором данных бОльшего размера, но, опять же, доступ к ним не так прост.
Дополнительные материалы и ссылки можно найти на странице курса. Я хотел бы поблагодарить Владислава Кораблинова, который был учебным ассистентом курса, Илью Маркова за возможность познакомиться с материалами предыдущего курса по информационному поиску и Святослава Демидова (auto.ru) за гостевую лекцию в рамках курса. Спасибо Яндексу и лично Михаилу Агееву, Максу Губину и Игорю Некрестьянову за поддержку коллекций и предоставление доступа к ним. Ну и, конечно, спасибо студентам — за любознательность и настойчивость.