Учебное видео

 

 

 

 

 

онтекст

 

Современная поисковая система, качество работы которой воспринимается как данность, является сложнейшим программно-аппаратным комплексом, создателям которого пришлось решить огромное количество практических проблем, начиная от большого объема обрабатываемых данных и заканчивая нюансами восприятия человеком поисковой выдачи. На курсе второго семестра Техносферы «Современные методы и средства построения систем информационного поиска» мы рассказываем об основных методах, применяемых при создании поисковых систем. Некоторые из них — хороший пример смекалки, некоторые показывают, где и как может применяться современный математический аппарат.

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

 

Лекция 1. «Введение в информационный поиск»


 


Алексей Воропаев, руководитель группы рекомендаций Поиска Mail.Ru, дает определение понятия информационного поиска и делает обзор существующих поисковых систем, рассказывает об индексации и поисковых кластерах. 

 

Лекция 2. «Особенности web-поиска. Архитектура поискового робота»


 


Из этой лекции вы узнаете об истории поисковых систем, современных основах веб-поиска, пользовательских предпочтениях и эмпирической оценке поисковой выдачи. Лекцию читает Ян Кисель, руководитель группы инфраструктуры Поиска Mail.Ru. 

 

Лекция 3. «Приоритезация краулера»


 


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

 

Лекция 4. «Применение самоорганизующихся карт в поисковой машине»


 


Дмитрий Соловьев решает задачи анализа и визуализации данных, говорит о вариантах использования самоорганизующихся карт в поисковой машине и проводит семинар по выделению и анализу сегментов для приоритезации.

 

Лекция 5. «Поиск дубликатов документов»


 


Ян Кисель дает определение дубликатам, их видам, показывает пример шинглирования (shingling: преобразование документов во множества). Рассматриваются все этапы для определения похожих документов, включая minhashing (преобразование больших множеств в короткие сигнатуры) и приемы для масштабирования. 

 

Лекция 6. «Поиск дубликатов документов. Часть 2»


 


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

 

Лекция 7. «Индексация и булев поиск»


 


Рассматривается подход к индексации и методам сжатия. Что является в поиске индексом, какие существуют подходы к быстрому пересечению списков, различные варианты сжатия в web. Лекцию читает Ян Кисель. 

 

Лекция 8. «Методы оптимизации обратного индекса»


 


Ян продолжает тему индексации. На этот раз речь пойдет о создании словаря индекса, сборе результатов в большом web, и о том, какие особенности существуют при работе с памятью и написании демонов. 

 

Лекция 9. «Очистка поискового индекса: антиспам»


 


Первая лекция, посвященная фильтрации контента. Эта часть касается методов воздействия спама на поисковик и способов противодействия. Дмитрий Соловьев показывает методы выявления спам-сайтов и детекции спама на основе анализа контента страниц. 

 

Лекция 10. «Очистка поискового индекса: антипорн»


 


Вторая часть фильтрации: на этот раз боремся с порно. Задача требует других подходов, в отличие от методов борьбы со спамом. Рассматриваются методики фильтрации запросов, web-страниц и картинок, включая способы на основе работы сверточной нейронной сети. 

 

Лекция 11. «Микроразметка. Детектор концов предложений»


 


Прикладной лингвист Игорь Андреев посвятил свою лекцию сниппетам (фрагменты текста, использующиеся в качестве описания ссылки в результатах поиска). Игорь говорит о дизайне поисковой выдачи, семантическом вебе, RDF (resource description framework), микроразметке и том, как это все сочетается со сниппетами. 

 

Лекция 12. «Построение снипетов»


 


Вторая часть разговора о сниппетах: автоматическое реферирование (automatic text summarization), переход на формирование органических сниппетов, краткое устройство прямого индекса и в последней части дается оценка качества сниппетов. 

 

Лекция 13. «Исправление опечаток. Саджесты. Переформулировки»


 


Руководитель группы анализа запросов Евгений Чернов две лекции посвятил исправлению опечаток в поисковых запросах. Евгений говорит о типах ошибок, простом поиске опечаток, расстоянии Левенштейна, статистике модели языка, генерации вариантов замены и разных типов исправлений. 

 

Лекция 14. «Саджесты, переформулировки, классификаторы»


 


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

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

 

 

  •  

     

 

 

 

Лингвистические основы работы поисковых систем

 

 

Лекция 1. Введение в информационный поиск. Обзор архитектуры поисковых систем

Определение задачи информационного поиска. Примеры поисковых систем. Задачи, связанные с поиском информации. История развития поисковых систем. Логическая модель информационного поиска, его задачи. Принципы булева поиска. Матрица «термин-документ». Обратный индекс. Словарь и координатные блоки. Создание обратного индекса. Разбиение на токены и сортировка. Словари и координатные блоки.


Лекция 2. Лингвистика

Что такое лингвистика, каковы её задачи. История зарождения и развития лингвистики как науки. Задачи, решаемые лингвистикой, её разновидности. Общая лингвистика: фонетика, фонология, морфология, синтаксис, семантика, прагматика. Историческая лингвистика. Лингвистическая типология. Социолингвистика. Диалектология. Лексикография. Психолингвистика. Математическая лингвистика. Статистическая лингвистика. Подходы к языку: рационалистический и эмпирический. Морфология. Корпусная лингвистика. Конкорданс, законы Ципфа, поправки и формула Мандельброта.



Лекция 3. Основы обработки текста

Критерии документа, кодировки. Уровни лингвистического анализа. Токены и термины. Детекция языка: графематический, N-граммный и лексический подходы. Нормализация. Проблемы токенизации. Наличие и отсутствие пробелов. Китайский, японский, арабский языки. Ударение и диакритика. Классы эквивалентности. Понижение регистра. Стоп-слова. Лемматизация. Стемминг. Предиктор. Виды языков. Статистическое снятие омонимии. Разбиение текста на предложения. Расширение поискового запроса.



Лекция 4. Коллокации

Методы подсчёта вероятности: параметрический и непараметрический подходы, стандартные и биноминальные распределения, мультиноминальное и нормальное распределения, аппроксимирование. Байесовский подход к статистике. Определение коллокаций, их признаки. Частотность биграмм. Фильтр по частям речи. Отклонения, гистограммы отклонений. Поиск коллокаций, примеры применения t-критерия. Поиск отличий в словоупотреблении. Критерий Пирсона. x2-критерий. Критерий отношения правдоподобия. Относительные частоты. Взаимная информация. Разреженность данных. F-мера.



Лекция 5. Языковые модели. N-граммы. Цепи Маркова

Цели распознавания языка. Языковые модели. Поиск с использованием языковых моделей. Фундаментальная проблема нехватки данных. Построение N-грамм. Метод максимального правдоподобия. Сглаживание. Валидация моделей. Линейное смешение моделей. Цепь Маркова. Матрица переходов. Последовательность состояний. Скрытые марковские модели. Три задачи HMM. Алгоритмы вперёд и назад. Алгоритмы Витерби, Баума-Уэлша. Применение НММ Таггер. Анализ поведения пользователя.



Лекция 6. Машинный перевод

Определение и задачи машинного перевода. История развития машинного перевода. Подходы к машинному переводу: rule-based, corpora-based, hybrid. Три основные методологии. RBMT, его сравнение с SMT, их преимущества и недостатки. Параллельный корпус. Выравнивание по предложениям. Word-based модели. Модели IBM Model, их ограничения. Фразовые модели: фразовый статистический перевод, вычисление вероятности перевода, модель языка, модель перевода, построение фразовой таблицы. Декодирование. Оценка машинного перевода. BLEU (Bilingual evaluation understudy). Эволюция машинного перевода.



Лекция 7. Индексация

Общая схема базы поиска. Назначение обратного индекса. Технические ограничения и дисковая подсистема. Cостав обратного индекса и варианты его построения. Оптимизация пересечения блоков. Сжатие координатных блоков: сравнение побитовых и побайтовых подходов: код Фибоначчи, VarByte, гамма-коды, Simple9. Практические советы по уменьшению объема индекса. Структуры данных, используемые для построения словаря. Подходы к хранению стоп-слов. Проблемы индексации больших объемов. Распределение документов и балансировка баз. Архитектура индексатора.



Лекция 8. Архитектура web-поиска. Текстовое ранжирование

Логическая схема поисковой машины. Поисковый кластер. Индексация. Булев поиск. Вычисление веса. Коэффициент Жаккара. Частотная матрица. Модель «мешка слов». Частота термина. Логарифмическое взвешивание. Документная частота. IDF. Документы как векторы. Методы оптимизации текстового ранжирования. Термины с большим IDF. Документы с большим количеством терминов из запроса. Статические веса, общий вес. Эшелоны. Кластеризация индекса. Параметрические индексы и зоны. Поля (числовые зоны). Индексы для зон. Компактность вхождения. Вероятностный поиск. Использование языковых моделей при поиске. Варианты сравнения моделей. Правдоподобие запроса и документа. Сравнение моделей. Обратная связь по релевантности. Бинарная вероятностная модель. Байесовы сети в задаче ранжирования.



Лекция 9. Дизайн поисковой выдачи. Сниппеты. Оценка качества поиска

Примеры дизайнов страниц поисковых выдач разных ресурсов. Компоненты SERP. Органические результаты. Выделение параграфов. Разбиение на предложения. Формирование сниппета, общий алгоритм формирования. Обогащение сниппетов. Метрики сниппетов. Оценка асессорами. Метрики качества поисковой системы. Качество поиска. Стандартные коллекции. TREC. Точность/полнота. Критика чистой релевантности. Маркерные тесты. Поиск периферийных сайтов. Региональная навигация. Тематический поиск. Общее качество поиска. Асессорская служба. Оценка релевантности документа. Кросс-валидация. SOM-карты. Автопоиск ошибок. Онлайн-метрики. Оценка гипотез. Кликовые метрики. Корреляция с асессорами.



Лекция 10. Особенности web-поиска. Спайдер

Популярность пользования поиском. История поисковых систем. Основы web-поиска. Потребности пользователей. Эмпирическая оценка поисковых результатов пользователем. Коллекция web-документов. Поисковая реклама, как она ранжируется, каковы её плюсы и минусы. Спайдер, его задачи. Очередь URL’ов. Поисковые роботы. Основная архитектура спайдера. Парсинг: нормализация URL. Распределённый спайдер. Взаимодействие серверов. Схема Mercator. Front queues, back queues. Свежесть базы. Deep Web (труднодоступные сайты). Карты сайтов. Хранение документов. Удаление шума.



Лекция 11. Поиск дубликатов в Web

Сравнение документов: точные и неточные дубликаты, почти дубликаты, версии для печати. Три этапа определения похожих документов. Шинглы (shingles), опция сжатия. Множественная модель, матричная модель. Поиск похожих колонок. Сигнатуры. Выявление похожего множества (minhashing). Поиск похожих пар. Отбор кандидатов из сигнатур Minhash. Locality-sensitive hashing. Распределение по частям и по корзинам. LSH-компромиссы. Поиск дубликатов в Web.



Лекция 12. Применение самоорганизующихся карт в поисковой машине

Лекция разбита на две части. Первая часть: вопросы приоритезации спайдера поисковой машины, алгоритмы сегментации больших сайтов на части и распределение приоритетов обкачки сегментов. Вторая часть: алгоритмы анализа и визуализации больших объемов данных при помощи самоорганизующихся карт Кохонена (SOM), применение этого инструмента в задаче анализа структуры веба и приоритезации поискового робота, возможность применения SOM для анализа данных в различных областях разработки поискового движка.



Лекция 13. Выявление спам-сайтов на основе анализа контента страниц

Различные аспекты очистки поискового индекса от мусора. Вопросы построения классификаторов. Базовые темы машинного обучения: правильное построение обучающего множества, генерация признаков, выбор алгоритмов классификации. Проблематика построения классификаторов для различных классов данных.



Лекция 14. Поведенческое и ссылочное ранжирование

Вычисление поведенческой релевантности. Индексация анкорного текста. Алгоритм HITS, Page Rank. Метод блочной структуры. Системы для обработки графов.



Лекция 15. Ранжирование с машинным обучением

Классическое ранжирование. Факторы ранжирования. Ранжирование на основе машинного обучения. Специфика задачи машинного обучения ранжированию. Формальная постановка задачи. Градиентный спуск. Деревья решений. «Невнимательные» деревья решений. Алгоритмические композиции над деревьями решений (bagging, boosting). Стакинг. Алгоритм BagBoo. Вопросы построения обучающих данных. Активное обучение. Сэмплирование неопределённости. Комитетные методы активного обучения. Применение самоорганизующихся карт для сэмплирования обучающих данных. Алгоритм SOM+QBag для активного обучения ранжированию.

 

Ссылка на весь курс: https://sphere.mail.ru/curriculum/program/discipline/38/