Глубокое обучение для поисковых систем
Покупка
Тематика:
Программирование и алгоритмизация
Издательство:
ДМК Пресс
Автор:
Теофили Томмазо
Перевод:
Беликов Дмитрий Анатольевич
Год издания: 2020
Кол-во страниц: 318
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
ВО - Специалитет
ISBN: 978-5-97060-776-3
Артикул: 739780.01.99
В книге рассказывается о том, как использовать глубокие нейронные сети для создания эффективных поисковых систем. Рассматривается несколько компонентов поисковой системы, дается представление о том, как они работают, и приводятся рекомендации по использованию нейронных сетей в разных контекстах поиска. Особое внимание уделено практическому объяснению методов поиска и глубокого машинного обучения на базе примеров, большинство которых включает фрагменты кода. Автор освещает основные проблемы, связанные с поисковыми системами, и указывает пути решения этих проблем. Он раскрывает принципы тестирования эффективности нейронных сетей, а также измерения их затрат и выгод. Издание предназначено для читателей, владеющих программированием на среднем уровне и отлаживающих поисковые системы с целью повышения их эффективности, то есть выдачи наиболее релевантных результатов.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.03: Прикладная информатика
- 09.03.04: Программная инженерия
- ВО - Специалитет
- 09.05.01: Применение и эксплуатация автоматизированных систем специального назначения
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Интернет-магазин: www.dmkpress.com Оптовая продажа: КТК “Галактика” books@alians-kniga.ru www.дмк.рф Глубокое обучение поисковых систем решает самые сложные задачи, в частности позволяет получать релевантные результаты при неточных условиях поиска и плохо проиндексированных данных, извлекать изображения с минимальными метаданными. С помощью таких современных инструментов, как DL4J и TensorFlow, вы сможете применять мощные методы глубокого обучения, не обладая специальными знаниями в области науки о данных или обработки естественного языка. Книга покажет вам, как это сделать. Вы узнаете, как глубокое обучение связано с основами поиска, такими как индексация и ранжирование, и изучите подробные примеры, позволяющие улучшить поиск, используя библиотеки Apache Lucene и Deeplearning4j. В ходе чтения вы освоите сложные темы: поиск по изображениям, перевод пользовательских запросов, проектирование поисковых систем, совершенствуемых по мере обучения. «Практический подход, показывающий современное состояние использования нейронных сетей, искусственного интеллекта и глубокого обучения при разработке поисковых систем». Крис Мэттман, NASA JPL «Глубокий синтез принципов традиционного поиска и последних достижений в области глубокого обучения». Грег Занотти, Marquette Partners «Пристальное погружение в новейшие технологии, которые выведут вашу поисковую систему на новый уровень». Эндрю Уилли, Thynk Health «Практические упражнения научат вас применять глубокое обучение для создания поисковых продуктов». Антонио Маньаги, System1 В книге рассматриваются: • генерация синонимов; • точное и релевантное ранжирование; • поиск по языкам; • поиск изображений на базе содержимого; • поиск с использованием рекомендательных систем. Издание предназначено для разработчиков, имеющих опыт работы с Java или похожим языком программирования и получивших представление об основах поиска. Специальные знания в области глубокого обучения или обработки естественного языка не требуются. Томмазо Теофили – инженер-программист, работающий с открытым исходным кодом и искусственным интеллектом. Он состоит в организации Apache Software Foundation и участвует в проектах по поиску информации, обработке естественного языка и распределенным вычислениям. Глубокое обучение для поисковых систем 9 785970 607763 ISBN 978-5-97060-776-3 Глубокое обучение для поисковых систем Томмазо Теофили Глубокое обучение для поисковых систем
Томмазо Теофили Глубокое обучение для поисковых систем
Deep Learning for Search TOMMASO TEOFILI Foreword by CHRIS MATTMANN
Глубокое обучение для поисковых систем ТОММАЗО ТЕОФИЛИ Предисловие КРИСА МЭТТМАННА Москва, 2020
УДК 004.891 ББК 32.972.13 Т339 Теофили Т. Т339 Глубокое обучение для поисковых систем / пер. с анг. Д. А. Беликова. – М.: ДМК Пресс, 2020. – 318 с.: ил. ISBN 978-5-97060-776-3 В книге рассказывается о том, как использовать глубокие нейронные сети для создания эффективных поисковых систем. Рассматривается несколько компонентов поисковой системы, дается представление о том, как они работают, и приводятся рекомендации по использованию нейронных сетей в разных контекстах поиска. Особое внимание уделено практическому объяснению методов поиска и глубокого машинного обучения на базе примеров, большинство которых включает фрагменты кода. Автор освещает основные проблемы, связанные с поисковыми системами, и указывает пути решения этих проблем. Он раскрывает принципы тестирования эффективности нейронных сетей, а также измерения их затрат и выгод. Издание предназначено для читателей, владеющих программированием на среднем уровне и отлаживающих поисковые системы с целью повышения их эффективности, то есть выдачи наиболее релевантных результатов. УДК 004.891 ББК 32.972.13 Original English language edition published by Manning Publications USA, USA. Copyright © 2019 by Manning Publications Co. Russian-language edition copyright © 2020 by DMK Press. All rights reserved. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. ISBN 978-1-617-29479-2 (анг.) Copyright © 2019 by Manning Publications Co ISBN 978-5-97060-776-3 (рус.) © Оформление, издание, перевод, ДМК Пресс, 2020
Посвящается Маттие, Джакомо и Микеле «Счастье реально только тогда, когда есть с кем разделить его». – Кристофер МакКэндлесс
Содержание Предисловие ...........................................................................................................10 От автора ..................................................................................................................11 Благодарности ........................................................................................................13 Об этой книге ..........................................................................................................14 Об авторе .................................................................................................................18 Об иллюстрации на обложке ..............................................................................19 Часть I. Поиск встречается с глубоким обуче нием ........................................20 Глава 1. Поиск на основе нейронных сетей ....................................................21 1.1. Нейронные сети и глубокое обуче ние ...............................................................23 1.2. Что такое машинное обуче ние? .........................................................................25 1.3. Что глубокое обуче ние может сделать для поиска ...........................................27 1.4. Глубокое обуче ние: дорожная карта ..................................................................30 1.5. Получение полезной информации ....................................................................31 1.5.1. Текст, токены, термы и основы поиска .......................................................33 1.5.2. Релевантность прежде всего........................................................................41 1.5.3. Классические модели поиска ......................................................................42 1.5.4. Точность и полнота ......................................................................................43 1.6. Нерешенные проблемы ......................................................................................43 1.7. Открываем черный ящик поисковой системы .................................................45 1.8. Глубокое обуче ние спешит на помощь ..............................................................46 1.9. Индекс, пожалуйста, познакомьтесь с нейроном .............................................50 1.10. Обуче ние нейронной сети ................................................................................51 1.11. Перспективы поиска на базе нейронных сетей ..............................................54 Резюме ........................................................................................................................54 Глава 2. Генерируем синонимы ..........................................................................56 2.1. Расширение синонимов. Введение ....................................................................57 2.1.1. Почему синонимы? ......................................................................................58 2.1.2. Сопоставление синонимов на базе словаря ...............................................60 2.2. Важность контекста ............................................................................................69 2.3. Нейронные сети прямого распространения .....................................................71 2.4. Использование word2vec ....................................................................................75 2.4.1. Настройка word2vec в Deeplearning4j .........................................................83 2.4.2. Расширение синонимов на базе Word2vec .................................................84 2.5. Оценки и сравнения ...........................................................................................87 2.6. Соображения относительно продукционных систем .......................................88 2.6.1. Синонимы против антонимов ....................................................................90
Содержание 7 Резюме ........................................................................................................................91 Часть II. Подключение нейронных сетей для использования их в поисковой системе........................................................................................92 Глава 3. От простого поиска к генерации текста ............................................93 3.1. Информационная потребность в сравнении с запросом: преодоление разрыва ................................................................................................94 3.1.1. Генерация альтернативных запросов .........................................................95 3.1.2. Подготовка данных ......................................................................................97 3.1.3. Подведем итог ............................................................................................104 3.2. Обуче ние на последовательностях ..................................................................105 3.3. Рекуррентные нейронные сети ........................................................................107 3.1.1. Внутреннее устройство и динамика РНС .................................................110 3.3.2. Долгосрочные зависимости ......................................................................113 3.3.3. LSTM-сети ...................................................................................................114 3.4. LSTM-сети для генерации текста без контроля ..............................................115 3.4.1. Неуправляемое расширение запроса .......................................................122 3.5. От неконтролируемой до контролируемой генерации текста ......................126 3.5.1. Создание моделей sequence-to-sequence .................................................126 3.6. Соображения относительно продукционных систем .....................................129 Резюме ......................................................................................................................130 Глава 4. Более чувствительные поисковые подсказки ..............................132 4.1. Генерация поисковых подсказок .....................................................................133 4.1.1. Подсказки при составлении запросов ......................................................133 4.1.2. Подсказчики на базе словаря ....................................................................134 4.2. Lookup API .........................................................................................................135 4.3. Проанализированные подсказчики.................................................................138 4.4. Использование языковых моделей ..................................................................145 4.5. Подсказчики на базе контента .........................................................................149 4.6. Нейронные языковые модели ..........................................................................150 4.7. Нейронная языковая модель на базе символов для создания подсказок .....152 4.8. Настройка языковой модели ............................................................................155 4.9. Вносим разнообразие в подсказки, используя векторные представления слов .................................................................................................164 Резюме ......................................................................................................................166 Глава 5. Ранжирование результатов поиска с помощью векторных представлений слов .......................................................................167 5.1. Важность ранжирования ..................................................................................168 5.2. Модели поиска ..................................................................................................170 5.2.1. TF-IDF и модель векторного пространства ..............................................172 5.2.2. Ранжирование документов в Lucene ........................................................175 5.2.3. Вероятностные модели ..............................................................................178 5.3. Поиск информации на базе нейронных сетей ................................................180 5.4. От векторов слов к векторам документов .......................................................180
Содержание 5.5. Оценки и сравнения .........................................................................................186 5.5.1. Класс Similarity, основанный на усредненных векторных представлениях слов ...........................................................................................188 Резюме ......................................................................................................................191 Глава 6. Векторные представления документов для ранжирования и рекомендаций ..............................................................192 6.1. От векторных представлений слов к векторным представлениям документов ..............................................................................................................193 6.2. Использование векторов абзацев в ранжировании .......................................196 6.2.1. ParagraphVectorsSimilarity .........................................................................198 6.3. Векторные представления документов и сопутствующий контент ..............199 6.3.1. Поиск, рекомендации и сопутствующий контент ...................................200 6.3.2. Использование частых термов для поиска похожего контента .............201 6.3.3. Извлечение аналогичного контента с помощью векторов абзаца .........210 6.3.4. Извлечение аналогичного контента с помощью векторов из моделей «кодер–декодер» ..............................................................................212 Резюме ......................................................................................................................214 Часть III. Шаг за пределы....................................................................................215 Глава 7. Поиск по языкам ...................................................................................216 7.1. Обслуживание пользователей, говорящих на нескольких языках ................216 7.1.1. Перевод документов в сравнении с переводом запросов .......................218 7.1.2. Поиск по нескольким языкам ....................................................................220 7.1.3. Запросы на нескольких языках поверх Lucene ........................................221 7.2. Статистический машинный перевод ...............................................................223 7.2.1. Выравнивание ............................................................................................225 7.2.2. Перевод на основе фраз .............................................................................226 7.3. Работа с параллельными корпусами ................................................................227 7.4. Нейронный машинный перевод ......................................................................229 7.4.1. Модели кодер–декодер ..............................................................................230 7.4.2. Модель «кодер–декодер» для машинного перевода в DL4J .....................233 7.5. Векторные представления слов и документов для нескольких языков ........240 7.5.1. Монолингвальные векторные представления с использованием линейной проекции ............................................................................................241 Резюме ......................................................................................................................246 Глава 8. Поиск изображений на основе контента .......................................247 8.1. Содержимое изображения и поиск ..................................................................248 8.2. Взгляд назад: поиск изображений на базе текста ..........................................251 8.3. Понять изображения .........................................................................................253 8.3.1. Представления изображений ....................................................................255 8.3.2. Извлечение признаков ..............................................................................257 8.4. Глубокое обуче ние для представления изображений ....................................266 8.4.1. Сверточные нейронные сети ....................................................................267 8.4.2. Поиск изображений ...................................................................................275
Содержание 9 8.4.3. Локально-чувствительное хеширование .................................................280 8.5. Работа с непомеченными изображениями .....................................................283 Резюме ......................................................................................................................288 Глава 9. Взглянем на производительность ....................................................289 9.1. Производительность и перспективы глубокого обучения .............................290 9.1.1. От проектирования модели до производства ..........................................291 9.2. Индексы и нейроны работают вместе .............................................................306 9.3. Работа с потоками данных ...............................................................................309 Резюме ......................................................................................................................315 Глядя вперед .............................................................................................................315 Предметный указатель .......................................................................................317