Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Рекомендательные системы на практике

Покупка
Артикул: 748317.01.99
Доступ онлайн
999 ₽
В корзину
Книга посвящена рекомендательным системам, которые собирают данные о пользователе и выводят для него персональные рекомендации, основываясь на его предпочтениях. Ким Фальк, специалист по обработке и анализу данных, предоставляет читателю самые важные сведения о рекомендательных системах - начиная с общего обзора и описания ключевых алгоритмов до рассмотрения тонких нюансов работы, благодаря которым система с максимальной точностью учитывает интересы пользователя. Помимо прочего, обсуждаются методы оценки рекомендательной системы вне интернета и возможности совмещения различных рекомендательных систем. Книга снабжена многочисленными примерами программного кода. Издание предназначено для широкого круга разработчиков и специалистов по анализу данных.
Фальк, К. Рекомендательные системы на практике : практическое руководство / К. Фальк ; пер. с англ. Д. М. Павлова. - Москва : ДМК Пресс, 2020. - 448 с. - ISBN 978-5-97060-774-9. - Текст : электронный. - URL: https://znanium.com/catalog/product/1210627 (дата обращения: 30.04.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Интернет-магазин: www.dmkpress.com

Оптовая продажа: КТК “Галактика”
books@alians-kniga.ru
www.дмк.рф

Рекомендательные системы на практике

Рекомендательные системы на практике

Рекомендательные
системы
             на практике

9 785970 607749

ISBN 978-5-97060-774-9

Онлайновые рекомендательные системы помогают находить в сети фильмы, работу, рестораны… и даже любовь! Опираясь на статистические и демографические данные, а также 
на поисковые запросы, эти системы выдают 
результат, интересный пользователю, – и это 
настоящее искусство. Научитесь создавать 
правильные рекомендательные системы: от 
них зависит успех приложения!
В книге показано, как устроены рекомендательные системы, как создать их и внедрить 
на сайт. Сначала вы познакомитесь с основными понятиями, а затем научитесь собирать 
данные о пользователях и предоставлять персональные рекомендации. Вы узнаете, как 
функционируют самые популярные алгоритмы рекомендательных систем, и увидите примеры их работы на таких сайтах, как Amazon 
и Netflix. Также в книге рассматриваются 
проблемы, связанные с увеличением посещаемости, и другие сложности, с которыми вы 
можете столкнуться, когда сайт начнет разрастаться.

«В книге предоставлена техническая база и приводятся примеры 
из практики, реализованные 
в простом и понятном коде на 
Python».
Эндрю Кольер, Exegetic

«Хотите знать, как Amazon и 
Netflix догадываются, какие 
товары и фильмы вас заинтересуют, и рекомендуют именно то, 
что нужно? Прочтите книгу – и 
все поймете!»
Амит Ламба, Tech Overture

«Все о рекомендательных системах – от самых азов до сложнейших моментов».
Яромир Д.Б. Немец, DBN

«Потрясающее и максимально 
полезное погружение в рекомендательные системы!»
Питер Хэмптон, 
Университет Ольстера

В книге рассматриваются:
• сбор и анализ данных о поведении пользователей;
• совместная фильтрация и фильтрация на основе контента;
• алгоритмы машинного обучения;
• реальные примеры на Python.

Читатель должен владеть навыками программирования 
и работы с базами данных на среднем уровне.

Ким Фальк – опытный специалист по обработке и анализу 
данных. Занимается машинным обучением, регулярно работает с рекомендательными системами.

Ким Фальк

Ким Фальк

Рекомендательные 
системы  
на практике

Practical 
Recommender 
Systems

Kim Falk

Москва, 2020

Рекомендательные 
системы  
на практике

Ким Фальк

УДК 004.594
ББК 32.972
 
Ф19

 
Ким Фальк
Ф19 Рекомендательные системы на практике / пер. с англ. Д. М. Павлова. – М.: 
ДМК Пресс, 2020. – 448 с.: ил.

            ISBN 978-5-97060-774-9

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

 
  
 
 
 
 
 
 
      УДК 004.594
 
 
 
 
 
 
 
 
      ББК 32.972

Original English language edition published by Manning Publications. Copyright 
© 2019 by Manning Publications. Russian language edition copyright © 2020 by 
DMK Press. All rights reserved.

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

ISBN 978-1-61729-2705 (англ.)                 Copyright © 2019 by Manning Publications Co.
ISBN 978-5-97060-774-9 (рус.)                        © Оформление, перевод, издание, ДМК Пресс, 2020

Посвящается любви всей моей жизни: 

моей жене Саре и моему сыну Питеру, 

маленькому супергерою

Оглавление

Предисловие от издательства ..................................................................................13

Предисловие ....................................................................................................................14

Благодарности .................................................................................................................16

О книге ................................................................................................................................17

Об авторе ...........................................................................................................................20

Об обложке .......................................................................................................................21

ЧАСТЬ I. Подготовка к рекомендательным системам ..................................23

Глава 1. Что такое рекомендательная система? ...............................................25

1.1. Рекомендации в реальной жизни .................................................................. 25

1.1.1. Рекомендательные системы дома в интернете .................................. 27
1.1.2. Длинный хвост ...................................................................................... 28
1.1.3. Рекомендательная система Netflix ...................................................... 28
1.1.4. Определение рекомендательной системы .......................................... 35

1.2. Таксономия рекомендательных систем ........................................................ 38

1.2.1. Специализация ..................................................................................... 39
1.2.2. Задача .................................................................................................... 39
1.2.3. Контекст ................................................................................................. 40
1.2.4. Степень персонализации ..................................................................... 40
1.2.5. Чье мнение ............................................................................................ 42
1.2.6. Конфиденциальность и надежность .................................................... 42
1.2.7. Интерфейс .............................................................................................. 43
1.2.8. Алгоритмы ............................................................................................. 46

1.3. Машинное обучение и Netflix Prize ............................................................... 48
1.4. Интернет-сайт MovieGEEKs ............................................................................ 49

1.4.1. Оформление и характеристики ........................................................... 51
1.4.2. Архитектура ........................................................................................... 51

1.5. Создание рекомендательной системы .......................................................... 53
Резюме .................................................................................................................... 54

Глава 2. Поведение пользователя, и как собирать о нем данные .............55

2.1. Как (по моему мнению) Netflix собирает факты,  
пока вы пользуетесь сервисом ....................................................................... 56
2.1.1. Какие факты собирает Netflix............................................................... 58

Оглавление  7

2.2. Поиск полезных данных о поведении пользователя ................................... 60

2.2.1. Как узнать мнение посетителя ............................................................ 61
2.2.2. Что можно узнать по поведению обозревателя в магазине .............. 62
2.2.3. Совершение покупки ............................................................................ 67
2.2.4. Пользование товаром ........................................................................... 68
2.2.5. Оценки посетителей  ............................................................................ 69
2.2.6. Знакомство с клиентами по (старому) методу Netflix ........................ 73

2.3. Идентификация пользователей ..................................................................... 73
2.4. Получение данных о посетителях из других источников ............................ 74
2.5. Сборщик данных ............................................................................................. 74

2.5.1. Создание файлов проекта .................................................................... 76
2.5.2. Модель данных ...................................................................................... 76
2.5.3. Сборщик данных на стороне клиента ................................................. 77
2.5.4. Интеграция сборщика в MovieGEEKs .................................................. 78
Регистрация наведения курсора .................................................................... 80
Регистрация просмотра подробностей ......................................................... 80
Регистрация «сохранения на потом» ............................................................ 80

2.6. Какие пользователи есть в системе,  
и как их моделировать .................................................................................... 81

Резюме .................................................................................................................... 84

Глава 3. Мониторинг состояния системы..............................................................85

3.1. Почему панель аналитики – это круто .......................................................... 86

3.1.1. Ответ на вопрос «Как там дела у сайта?» ............................................ 86

3.2. Реализация аналитики ................................................................................... 88

3.2.1. Веб-аналитика ....................................................................................... 88
3.2.2. Базовые статистические данные ......................................................... 88
3.2.3. Конверсии .............................................................................................. 89
3.2.4. О пути к конверсиям............................................................................. 92
3.2.5. Путь конверсии ..................................................................................... 94

3.3. Архетипы ......................................................................................................... 97
3.4. Панель сайта MovieGEEKs  ............................................................................ 100

3.4.1. Автоматическая генерация данных в журнале ................................. 100
3.4.2. Характеристики и дизайн панели аналитики ................................... 101
3.4.3. Основа панели аналитики .................................................................. 101
3.4.4. Архитектура ......................................................................................... 102

Резюме .................................................................................................................. 104

Глава 4. Оценки, и как их рассчитывать ............................................................ 105

4.1. Предпочтения элементов пользователями ................................................. 106

4.1.1. Определение оценок ........................................................................... 106
4.1.2. Матрица пользователь–элемент ........................................................ 107

4.2. Явные или неявные оценки ......................................................................... 109

4.2.1. Как мы используем доверенные источники 
для составления рекомендаций .................................................................. 110

 Оглавление

4.3. Переоценка .................................................................................................... 111
4.4. Что такое неявные оценки? .......................................................................... 111

4.4.1. Предложения людей ........................................................................... 113
4.4.2. Что учитывать при расчете оценок ................................................... 113

4.5. Расчет неявных оценок ................................................................................. 116

4.5.1. Просмотр поведенческих данных...................................................... 117

4.6. Как реализовать неявные оценки ................................................................ 122

4.6.1. Добавление учета времени ................................................................ 126

4.7. Более редкие элементы имеют  
бо́льшую ценность ......................................................................................... 128

Резюме .................................................................................................................. 131

Глава 5. Неперсонализированные рекомендации ........................................ 132

5.1. Что такое неперсонализированные рекомендации? ................................. 133

5.1.1. Что такое реклама? ............................................................................. 133
5.1.2. Что делает рекомендация? ................................................................. 134

5.2. Как сделать рекомендации, когда у вас нет данных ................................... 135

5.2.1. Топ-10: диаграмма элементов ........................................................... 136

5.3. Реализация диаграмм и основы для рекомендатора ................................. 138

5.3.1. Компонент рекомендательной системы ........................................... 138
5.3.2. Код MovieGEEKs на сайте GitHub ....................................................... 139
5.3.3. Рекомендательная система ................................................................ 140
5.3.4. Добавление диаграмм на MovieGEEKs .............................................. 140
5.3.5. Заставим контент выглядеть более привлекательно ....................... 142

5.4. Выборочные рекомендации ......................................................................... 144

5.4.1. Часто покупаемые элементы, похожие на тот,  
который вы просматриваете ............................................................... 144

5.4.2. Ассоциативные правила ..................................................................... 145
5.4.3. Реализация ассоциативных правил ................................................... 150
5.4.4. Сохранение ассоциативных правил в базе данных .......................... 154
5.4.5. Запуск калькулятора ассоциаций ...................................................... 155
5.4.6. Использование различных событий для создания  
ассоциативных правил ........................................................................ 157

Резюме .................................................................................................................. 158

Глава 6. «Холодные» пользователи и контент ................................................ 159

6.1. Что такое холодный старт? ........................................................................... 159

6.1.1. Холодные товары ................................................................................ 161
6.1.2. Холодный посетитель ......................................................................... 161
6.1.3. Серые овцы .......................................................................................... 163
6.1.4. Посмотрим на примеры из реальной жизни .................................... 163
6.1.5. Что вы можете сделать с холодным стартом? ................................... 164

6.2. Отслеживание посетителей .......................................................................... 165

6.2.1. Анонимные пользователи .................................................................. 165

Оглавление  9

6.3. Решение проблемы холодного старта алгоритмами .................................. 165

6.3.1. Использование ассоциативных правил для создания  
рекомендаций для холодных пользователей ..................................... 166

6.3.2. Использование знаний предметной области  
и бизнес-правил ................................................................................... 168

6.3.3. Использование сегментов .................................................................. 168
6.3.4. Использование категорий с целью обойти проблему  
серых овец и холодных продуктов ...................................................... 170

6.4. Кто не спрашивает, тот не будет знать ........................................................ 172

6.4.1. Когда посетитель уже не новый ......................................................... 173

6.5. Использование ассоциативных правил с целью ускорить показ 
рекомендаций ................................................................................................ 173
6.5.1. Поиск собранных элементов .............................................................. 174
6.5.2. Получение ассоциативных правил и сортировка  
в соответствии со значениями уверенности ...................................... 174

6.5.3. Отображение рекомендаций.............................................................. 176
6.5.4. Оценка реализации ............................................................................. 179

Резюме .................................................................................................................. 179

Часть II. Рекомендательные алгоритмы ............................................................ 181

Глава 7. Выявление общих черт у пользователей и контента .................. 183

7.1. Что за сходство? ............................................................................................. 184

7.1.1. Что такое функция подобия? .............................................................. 185

7.2. Основные функции подобия ........................................................................ 185

7.2.1. Расстояние Жаккара ............................................................................ 187
7.2.2. Измерение расстояния с помощью Lp-норм..................................... 189
7.2.3. Коэффициент Отиаи ........................................................................... 192
7.2.4. Вычисление сходства с помощью коэффициента  
корреляции Пирсона ............................................................................ 194

7.2.5. Испытание сходства коэффициентом Пирсона ................................ 195
7.2.6. Коэффициент корреляции Пирсона на коэффициент Отиаи .......... 198

7.3. Кластеризация k-средних  ............................................................................ 198

7.3.1. Алгоритм кластеризации k-средних .................................................. 199
7.3.2. Реализация кластеризации k-средних на Python ............................. 201

7.4. Реализация вычисления сходства ................................................................ 206

7.4.1. Реализация вычисления сходства на сайте MovieGEEKs .................. 208
7.4.2. Реализация кластеризации на сайте MovieGEEKs ............................ 210

Резюме .................................................................................................................. 214

Глава 8. Совместная фильтрация в окрестностях .......................................... 215

8.1. Совместная фильтрация: историческая справка ........................................ 217

8.1.1. Когда начали использовать совместную фильтрацию ..................... 217
8.1.2. Взаимопомощь .................................................................................... 217
8.1.3. Матрица оценок .................................................................................. 219

 Оглавление

8.1.4. Процедура совместной фильтрации .................................................. 220
8.1.5. Нужно использовать совместную фильтрацию пользователь–
пользователь или элемент–элемент? ................................................. 221

8.1.6. Требования к данным ......................................................................... 222

8.2. Расчет рекомендации .................................................................................. 222
8.3. Расчет сходства ............................................................................................ 223
8.4. Алгоритм вычисления сходства элементов с Amazon ............................... 223

Если проблема повторяется – берегись! .................................................... 227

8.5. Способы выбора окрестности ..................................................................... 228
8.6. Поиск правильной окрестности ................................................................. 230
8.7. Методы прогнозирования оценок .............................................................. 230
8.8. Прогнозирование с фильтрацией по элементам ....................................... 232

8.8.1. Вычисление прогнозов...................................................................... 233

8.9. Проблема холодного старта ........................................................................ 233
8.10. Пара слов о терминах машинного обучения ........................................... 234
8.11. Совместная фильтрация на сайте MovieGEEKs ........................................ 235

8.11.1. Фильтрация элементов ................................................................... 236

8.12. В чем разница между правилами ассоциации и совместной 
фильтрацией? ............................................................................................... 242

8.13. Эксперименты с совместной фильтрацией ............................................. 242
8.14. Преимущества и недостатки совместной фильтрации ........................... 244

Резюме ................................................................................................................ 245

Глава 9. Оценка и тестирование рекомендательной системы ................246

9.1. Бизнесу нужен подъем, перекрестные продажи, рост продаж  
и конверсии .................................................................................................. 247

9.2. Зачем оценивать? ........................................................................................ 248

Гипотеза ....................................................................................................... 249

9.3. Как интерпретировать поведение пользователей .................................... 249

9.4. Что измерять ................................................................................................ 249

9.4.1. Понимание вкусов пользователя:  
сведение к минимуму ошибки предсказания ................................... 250

9.4.2. Разнообразие ..................................................................................... 251
9.4.3. Охват .................................................................................................. 252
9.4.4. Приятные неожиданности ................................................................ 254

9.5. Перед реализацией рекомендатора... ........................................................ 255

9.5.2. Регрессионное тестирование  ........................................................... 256

9.6. Виды оценки ................................................................................................ 257

9.7. Офлайн-оценка ............................................................................................ 257

9.7.1. Что делать, если алгоритм не дает рекомендаций .......................... 258

9.8. Офлайн-эксперименты ............................................................................... 259

Оглавление  11

9.8.1. Подготовка данных для эксперимента ............................................ 264

9.9. Реализация эксперимента в MovieGEEKs................................................... 270

9.9.1. Список дел ........................................................................................... 271

9.10. Оценка тестового набора ............................................................................ 274

9.10.1. Начнем с базовых прогнозов ........................................................... 275
9.10.2. Поиск правильных параметров ....................................................... 277

9.11. Онлайн-оценка ............................................................................................ 278

9.11.1. Контролируемые эксперименты ...................................................... 279
9.11.2. А/В-тестирование .............................................................................. 279

9.12. Непрерывное тестирование с использованием/исследованием ............. 280

9.12.1. Петли обратной связи ....................................................................... 281

Глава 10. Фильтрация по контенту ...................................................................... 283

10.1. Описательный пример ............................................................................... 283
10.2. Фильтрация на основе контента ................................................................ 286
10.3. Анализатор контента .................................................................................. 288

10.3.1. Выделение признаков для профиля элемента ................................ 288
10.3.2. Редко встречающиеся данные  ......................................................... 290
10.3.3. Преобразование года в сопоставимую функцию ............................ 290

10.4. Извлечение метаданных из описаний ...................................................... 291

10.4.1. Составление описаний ..................................................................... 291

10.5. Поиск важных слов методом TF-IDF.......................................................... 295
10.6. Моделирование темы с использованием LDA ........................................... 297

10.6.1. Какими крутилками настраивать LDA? ........................................... 303

10.7. Поиск подобного контента ......................................................................... 306
10.8. Создание профиля пользователя ............................................................... 307

10.8.1. Создание профиля пользователя с помощью модели LDA ............ 307
10.8.2. Создание профиля пользователя с помощью модели TF-IDF ....... 308

10.9. Рекомендации на основе контента  
на сайте MovieGEEKs ..................................................................................... 310
10.9.1. Загрузка данных ................................................................................ 310
10.9.2. Обучение модели .............................................................................. 313
10.9.3. Создание профилей элементов ........................................................ 314
10.9.4. Создание пользовательских профилей ........................................... 314
10.9.5. Отображение рекомендаций ............................................................ 316

10.10. Оценка рекомендатора на основе контента ........................................... 317
10.11. Плюсы и минусы фильтрации на основе контента ................................ 319
Резюме .................................................................................................................. 320

Глава 11. Определение скрытых жанров с помощью матричной 
факторизации ............................................................................................................... 321

11.1. Иногда чем меньше данных, тем лучше .................................................... 322
11.2. Пример задачи ............................................................................................ 324

 Оглавление

11.3. Немножко линейной алгебры .................................................................... 327

11.3.1. Матрица ............................................................................................. 327
11.3.2. Что за факторизация? ....................................................................... 329

11.4. Выполнение факторизации с использованием SVD ................................. 331

11.4.1. Добавление новых пользователей путем складывания ................. 336
11.4.2. Как формировать рекомендации с помощью SVD ......................... 338
11.4.3. Базисные предикторы ...................................................................... 339
11.4.4. Временная динамика ........................................................................ 342

11.5. Построение факторизации с помощью Funk SVD .................................... 342

11.5.1. Корень средней квадратичной ошибки  .......................................... 343
11.5.2. Градиентный спуск ........................................................................... 344
11.5.3. Стохастический градиентный спуск ................................................ 347
11.5.4. Перейдем, наконец, к факторизации .............................................. 347
11.5.5. Добавление отклонений ................................................................... 349
11.5.6. Как начать и когда остановиться ..................................................... 350

11.6. Генерация рекомендаций с помощью Funk SVD ...................................... 354
11.7. Реализация Funk SVD на MovieGEEKs ........................................................ 356

11.7.1. Что делать с неподходящими рекомендациями ............................. 361
11.7.2. Поддержание актуальности модели  ................................................ 362
11.7.3. Более быстрая реализация ................................................................ 363

11.8. Явные данные против неявных данных .................................................... 363
11.9. Оценка ......................................................................................................... 363
11.10. Эксперименты с моделью Funk SVD ........................................................ 365

Резюме .................................................................................................................. 367

Глава 12. С каждого по способностям – реализуем гибридный  
алгоритм рекомендательной системы ............................................................... 368

12.1. Сложности мира гибридов ......................................................................... 369
12.2. Монолитные рекомендаторы ..................................................................... 370

12.2.1. Смешивание функций контента с поведенческими данными для 
улучшения алгоритмов на основе совместной фильтрации  ............ 371

12.3. Смешанный гибридный рекомендатор .................................................... 372
12.4. Ансамбль ...................................................................................................... 372

12.4.1. Переключаемый ансамбль рекомендаторов ................................... 374
12.4.2. Взвешенная ансамбль рекомендаторов .......................................... 375
12.4.3. Линейная регрессия .......................................................................... 376

12.5. Признако-взвешенное линейное сочетание (FWLS) ................................ 377

12.5.1. Представляем веса в виде функций ................................................. 378
12.5.2. Алгоритм............................................................................................ 380

12.6. Реализация .................................................................................................. 387
Резюме .................................................................................................................. 396

Оглавление  13

Глава 13. Ранжирование и обучение ранжированию .................................. 397

13.1. Обучение ранжированию на примере Foursquare .................................... 398
13.2. Переранжирование ..................................................................................... 402
13.3. Еще раз – что такое обучение ранжированию? ........................................ 403

13.3.1. Три типа алгоритмов LTR  ................................................................ 403

13.4. Байесовское персонализированное ранжирование ................................. 405

13.4.1. Ранжирование с BPR ......................................................................... 407
13.4.2. Магия математики (продвинутое колдовство) ............................... 409
13.4.3. Алгоритм BPR .................................................................................... 412
13.4.4. BPR с матричной факторизацией .................................................... 413

13.5. Реализация BPR ........................................................................................... 413

13.5.1. Генерация рекомендаций ................................................................. 419

13.6. Оценка ......................................................................................................... 421
13.7. Эксперименты с BPR ................................................................................... 423
Резюме .................................................................................................................. 424

Глава 14. Будущее рекомендательных систем ............................................... 425

14.1. Вся книга в паре предложений................................................................... 426
14.2. Темы для дальнейшего изучения  .............................................................. 429

14.2.1. Дальнейшее чтение ........................................................................... 429
14.2.2. Алгоритмы ......................................................................................... 430
14.2.3. Контекст ............................................................................................. 430
14.2.4. Взаимодействие «Человек–Машина» .............................................. 431
14.2.5. Выбор подходящей архитектуры ..................................................... 431

14.3. Что ждет рекомендательные системы в будущем? .................................. 432
14.4. Послесловие ................................................................................................. 436

Предметный указатель ............................................................................................. 438

Предисловие от издательства

Отзывы и пожелания

Мы всегда рады отзывам наших читателей. Расскажите нам, что вы думаете 
об этой книге – что понравилось или, может быть, не понравилось. Отзывы 
важны для нас, чтобы выпускать книги, которые будут для вас максимально 
полезны.
Вы можете написать отзыв прямо на нашем сайте www.dmkpress.com, зайдя 
на страницу книги, и оставить комментарий в разделе «Отзывы и рецензии». 
Также можно послать письмо главному редактору по адресу dmkpress@gmail.
com, при этом напишите название книги в теме письма.
Если есть тема, в которой вы квалифицированы, и вы заинтересованы в написании новой книги, заполните форму на нашем сайте по адресу 
http://dmkpress.com/authors/publish_book/ или напишите в издательство 
по адресу dmkpress@gmail.com.

Список опечаток

Хотя мы приняли все возможные меры для того, чтобы удостовериться в качестве наших текстов, ошибки все равно случаются. Если вы найдете ошибку в одной из наших книг – возможно, ошибку в тексте или в коде, – мы будем очень 
благодарны, если вы сообщите нам о ней. Сделав это, вы избавите других читателей от расстройств и поможете нам улучшить последующие версии этой книги.
Если вы найдете какие-либо ошибки в коде, пожалуйста, сообщите о них 
главному редактору по адресу dmkpress@gmail.com, и мы исправим это 
в следующих тиражах.

Нарушение авторских прав

Пиратство в интернете по-прежнему остается насущной проблемой. Издательство «ДМК Пресс» очень серьезно относится к вопросам защиты авторских прав и лицензирования. Если вы столкнетесь в интернете с незаконно 
выполненной копией любой нашей книги, пожалуйста, сообщите нам адрес 
копии или веб-сайта, чтобы мы могли применить санкции.
Пожалуйста, свяжитесь с нами по адресу электронной почты dmkpress@
gmail.com со ссылкой на подозрительные материалы.
Мы высоко ценим любую помощь по защите наших авторов, помогающую 
нам предоставлять вам качественные материалы.

Предисловие

Когда в 2003 году я окончил университет, были опасения, что в Европе программисты будут не востребованы, поскольку все разработки будут проводиться в странах с гораздо более низким уровнем зарплат. К счастью, по множеству причин эти опасения не сбылись. Как я предполагаю, одной из главных 
проблем было то, что компании недооценивали следующую проблему: разработчики не понимали культурных реалий тех мест, где будут применяться их разработки. Разрабатывалось необходимое программное обеспечение, 
но функциональные возможности не соответствовали ожиданиям.
В настоящее время аналогичная проблема возникла в сфере машинного 
обучения и анализа данных. Разница лишь в том, что у ее истоков не низкие 
зарплаты, а программное обеспечение как услуга (SaaS), система, в которую 
вы загружаете данные и которая делает за вас всю остальную работу.
Меня, как и всех остальных, беспокоит тот факт, что машины не понимают 
домены и людей. Машины еще не настолько умны, чтобы можно было исключить человека из задачи. Развитие идет быстрыми темпами, но я рискну 
предположить, что любой, кто читает эту книгу, сможет работать с рекомендательными системами вплоть до завершения своей трудовой деятельности.
Как я попал в эту сферу? Я работал разработчиком ПО в Италии и собирался 
переезжать в Англию, где мне хотелось получить работу поинтереснее простого управления данными в базе. К счастью, на меня вышел замечательный сотрудник кадрового агентства RedRock Consulting Ltd. Агентство связало меня 
с компанией, занимающейся разработкой рекомендательных систем, куда 
меня взяли для работы над базовым программным обеспечением. И все – 
я с головой ушел в машинное обучение (мне было невероятно интересно). 
Помимо работы над рекомендательными системами, я начал изучать информацию об интернете и читал множество книг по этой и схожим тематикам.
Сейчас и чихнуть нельзя без того, чтобы как минимум десять человек не попытались поведать вам какие-то знания из области машинного обучения. Мне 
очень удивительно видеть одностраничные или одночасовые учебные курсы, 
авторы которых заявляют, что научат вас всему, что нужно знать о машинном 
обучении. С таким же успехом я могу написать руководство, как стать летчиком-истребителем:
«Взлетайте и управляйте полетом с помощью штурвала. Если вам нужно 
стрелять, нажмите кнопку. Прежде чем у вас закончится топливо, необходимо 
совершить посадку…»
Подобное руководство, возможно, станет для вас неплохой отправной точкой – я начинал точно так же. Но не пытайтесь себя обмануть: для понимания 
машинного обучения необходимы комплексные знания. Добавьте сюда человеческий фактор, который всегда еще больше все усложняет.
Возвращаясь к моей истории: я работал над рекомендательными системами и получал от этого удовольствие, а затем сменил работу. На новой должно
 Предисловие

сти я должен был продолжить работу над рекомендательными системами, но 
этот проект был отложен. Тогда я стал переживать, что больше мне не представится возможность работать с рекомендательными системами, и именно 
в этот момент издательство Manning предложило мне написать о них книгу. 
Конечно же, я с радостью взялся за это задание. Как только контракт был подписан, проект по рекомендательным системам все-таки начался. Работая над 
этой книгой, я существенно обогатил свои знания, и надеюсь, что и вам она 
принесет пользу.
Задача этой книги – познакомить вас с рекомендательными системами: 
не только с алгоритмами, но и со всей экосистемой. Алгоритмы не отличаются особой сложностью, но, чтобы их понимать и применять, необходимо понимать пользователей, для которых система будет предлагать рекомендации. 
Содержание книги менялось в процессе ее написания, поскольку я пытался 
включить в нее как можно больше информации. Надеюсь, что, прочитав эту 
книгу, вы получите все необходимые знания, чтобы начать работать с рекомендательными системами, и у вас появится база для дальнейшего обучения.

Благодарности

Я хочу отметить и поблагодарить две группы людей: тех, кто активно работал 
над книгой, и тех, кому приходилось терпеть и поддерживать меня в течение 
последних трех лет, пока я работал, не обращая внимания ни на что вокруг.
Хотя на обложке «Рекомендательных систем на практике» стоит мое имя, 
эта книга не появилась бы на свет без активного участия замечательных 
специалистов из издательства Manning. Я хочу отдельно поблагодарить редактора-консультанта Хелен Стергиус (Helen Stergius) за постоянную помощь 
и содействие. Она и другие сотрудники превратили мой несколько несвязный 
текст в руководство, обучающее людей создавать рекомендательные системы.
Также я хочу поблагодарить технических редакторов Фуркана Камаси (Furkan Kamaci) и Валентина Креттаза (Valentin Crettaz), а также всех рецензентов, которые нашли время прочитать первые варианты книги и помогли мне 
отточить текст, в их числе: Адхир Рамджиаван (Adhir Ramjiavan), Александр 
Мильцев (Alexander Myltsev), Элвин Радж (Alvin Raj), Амит Ламба (Amit Lamba), Эндрю Колльер (Andrew Collier), Фазел Кешткар (Fazel Keshtkar), Джаред 
Дункан (Jared Duncan), Яромир Немец (Jaromir Nemec), Мартин Бир (Martin 
Beer), Маюр Патил (Mayur Patil), Майк Далримпл (Mike Dalrymple), Норин 
Дертинджер (Noreen Dertinger), Оливье Дукаттеу (Olivier Ducatteeuw), Питер 
Хэмптон (Peter Hampton), Симеон Лейзерзон (Simeon Leyzerzon), Серен Линд 
Кристиансен (Søren Lind Kristiansen), Стивен Парр (Steven Parr), Тобиас Бергер 
(Tobias Bürger), Тобиас Гетрост (Tobias Getrost) и Випул Гупта (Vipul Gupta).
Работая над книгой, я обращался ко множеству различных библиотек, систем и баз данных, и очень благодарен всем сообществам, которые мне помогали. Также я благодарен сообществам разработчиков ПО с открытым исходным кодом, которые создали ряд инструментов, избавив нас от необходимости делать все с нуля.
И в первую очередь я благодарю свою жену, сына и тещу, остальных родственников, а также близких друзей за поддержку, любовь и, самое главное, 
терпение. Им было нелегко жить с членом семьи, который все время норовит 
ускользнуть и засесть за написание книги, пока вся семья переезжает в новый 
дом и лицезреет, как наши дома в Италии разрушаются до основания в результате землетрясений. Не говоря уже о том, что при этом новоиспеченный 
писатель взялся одновременно за две новые работы. Спасибо вам, и я обещаю, 
что хотя бы пару лет не буду начинать новые проекты. Люблю вас всех!

Доступ онлайн
999 ₽
В корзину