|
Программируем коллективный разум Создание интеллектуальных приложений для Web 2.0 |
Сегаран Т. |
год издания — 2008, кол-во страниц — 368, ISBN — 978-5-93286-119-6, 0-596-52932-5, тираж — 2000, язык — русский, тип обложки — мягк., масса книги — 460 гр., издательство — Символ-Плюс |
|
|
Programming Collective Intelligence Toby Segaran
O'REILLY 2007
Пер. с англ. А. Слинкина
Уровень подготовки читателя: средний
Формат 70x100 1/16. Печать офсетная |
ключевые слова — интеллект, интернет, самообуч, алгоритм, адапт, википед, youtube, myspace, google, pagerank, flickr, amazon, ebay, adsense, робот, кластеризац, оптимизац, байес, фильтрац, антиспам, индекс, ранжирован, обучен, генетическ, моделирован, libsvm, мутац |
Средства эффективной обработки информации в Интернете ещё никогда не были настолько важны и востребованы, как сегодня. Эта книга — первое практическое руководство по программированию интеллектуальных приложений для Web 2.0. Здесь вы найдёте все необходимое, чтобы научиться создавать самообучаемые программы, которые способны собирать и анализировать огромные массивы данных, имеющиеся в Сети. Вы научитесь пользоваться алгоритмами машинного обучения, адаптируя их под свои собственные нужды. Чтобы овладеть представленным материалом, от вас не потребуется никаких специальных знаний об анализе данных, машинном обучении или математической статистике. Однако предполагается, что вы имеете достаточный опыт программирования и знакомы с основными концепциями. В каждой главе вы найдёте практические примеры и задания, которые помогут вам быстро и легко освоить различные аспекты работы алгоритмов.
Когда журнал Time выбрал в качестве человека 2006 года «вас», он утвердил идею о том, что сущность Web 2.0 — это «контент, генерируемый пользователями», и что такие сайты, как Википедия, YouTube и MySpace, — это столпы революции, совершившейся с приходом Web 2.O. Но истина гораздо сложнее. Тот контент, который пользователи вводят в Web 2.0 явно, — лишь самая верхушка айсберга. А 80% существенной информации скрыто в тёмных водах неявно образующихся данных.
Во многих отношениях определяющим моментом революции Web 2.0 стало изобретение компанией Google «ранга страниц» (PageRank). Это стало результатом осознания того факта, что каждая ссылка во Всемирной паутине наполнена скрытым смыслом: ссылка — это голос в пользу важности сайта. Если принять во внимание сами голоса и относительную важность голосующих сайтов, то результаты поиска оказываются лучше, чем при анализе одного лишь содержимого страниц. Именно этот прорыв вывел Google на путь, следуя по которому она стала одной из наиболее авторитетных технологических компаний нового столетия. Ранг страницы — один из сотен неявно учитываемых факторов, которые Google оценивает, решая, как представить результаты поиска.
Никто не назовёт компанию Google «генератором пользовательского контента», и тем не менее она, безусловно, находится в самом сердце Web 2.0. Вот почему я предпочитаю считать краеугольным камнем этой революции «обуздание коллективного разума». Ссылка — это контент, генерируемый пользователями, a PageRank — способ извлечения смысла из этого контента. Это же относится и к алгоритму вычисления «интересности» на сайте Flickr, и к функции «те, кто купил этот товар, купили также» на Amazon, и к алгоритмам нахождения «похожих исполнителей» на Last.fm, и к системе репутационного рейтингования на eBay, и к рекламной системе Google AdSense.
Я определяю Web 2.0 следующим образом: «методика проектирования систем, которые путём учёта сетевых взаимодействий становятся тем лучше, чем больше людей ими пользуются». Привлечение пользователей — первый шаг. Второй — обучение на основе действий пользователей и адаптация сайта в зависимости от того, какие действия пользователи совершают и на что они обращают внимание.
В книге «Программируем коллективный разум» Тоби Сегаран рассматривает алгоритмы и методы извлечения смысла из данных, в том числе и пользовательских. Это инструментарий программиста, работающего в контексте Web 2.O. Теперь уже недостаточно знать, как создать сайт с хранением данных в базе. Если вы хотите добиться успеха, то должны знать, как из этих данных добывать информацию — явно или путём анализа поведения пользователей на вашем сайте.
С 2004 года, когда мы придумали термин Web 2.0, на эту тему уже написано очень много, но книга Тоби — первое практическое руководство по программированию приложений для Web 2.0.
Тим О'Рейли Предисловие Браво! Не могу представить себе нилучшего введения в рассматриваемые алгоритмы иметоды для разработчика, ни более подходящего способа освежить в своей памяти кое-какие детали (а я давненько занимаюсь искусственным интеллектом).
— Дэн Рассел, ведущий технический специалист, Google Тоби блестяще справился с задачей разбиения сложной темы — алгоритмы машинного обучения — на ряд простых и практически полезных примеров, которые позволяют сразу же приступить к анализу социальных взаимодействий в современной Всемирной паутине. Будь у меня эта книга пару лет назад, я мог бы сэкономить немало драгоценного времени, не блуждая по тропинкам, ведущим в никуда.
— Тим Уолтерc, технический директор, компания Collective Intellect Хотите знать, как реализуются ранжирование результатов поиска, рекомендование товаров, социальные закладки и онлайновый подбор пар? В этой захватывающей книге рассказывается, как построить приложение Web 2.0, которое будет извлекать полезную информацию из гигантского массива данных, создаваемых партнёрскими интернет-приложениями. Пользуясь описанными здесь изощрёнными алгоритмами, вы сможете писать интеллектуальные программы, которые получают интересные наборы данных с других сайтов или от пользователей ваших приложений и анализируют их на предмет выявления закономерностей.
Книга «Программируем коллективный разум» — это введение в мир машинного обучения и статистики. В ней объясняется, как делать полезные с точки зрения маркетинга выводы о поведении и предпочтениях пользователей на основе информации, ежедневно собираемой вашими и сторонними приложениями. Каждый алгоритм описан чётко и кратко и сопровождается кодом, который можно сразу же включить в собственный сайт, блог, Вики или какое-нибудь специализированное приложением. Рассмотрены следующие темы: - Методы коллаборативной фильтрации, позволяющие розничным продавцам рекомендовать товары или мультимедийную продукцию.
- Методы кластеризации, применяемые для обнаружения групп схожих образцов в большом наборе данных.
- Алгоритмы оптимизации, позволяющие рассмотреть миллионы возможных решений задачи и выбрать среди них наилучшее.
- Байесовская фильтрация, применяемая в антиспамных фильтрах для классификации документов на основе встречающихся слов и других признаков.
- Метод опорных векторов, применяемый для подбора пар на сайтах знакомств.
- Применение эволюционных методик для решения различных задач — компьютер обучается, улучшая собственный код после каждой сыгранной игры.
Каждая глава сопровождается практическими заданиями, направленными на овладение рассмотренных в ней алгоритмов. Выйдите за рамки простых приложений с хранением в базе данных и заставьте богатейшие россыпи данных в Интернете работать на вас.
|
ОГЛАВЛЕНИЕПредисловие | 9 | Введение | 10 | Благодарности | 18 | | 1. Введение в коллективный разум | 19 | | Что такое коллективный разум | 20 | Что такое машинное обучение | 22 | Ограничения машинного обучения | 23 | Примеры из реальной жизни | 23 | Другие применения обучающих алгоритмов | 24 | | 2. Выработка рекомендаций | 26 | | Коллаборативная фильтрация | 27 | Сбор информации о предпочтениях | 27 | Отыскание похожих пользователей | 29 | Рекомендование предметов | 35 | Подбор предметов | 37 | Построение рекомендателя ссылок с помощью API сайта del.icio.us | 39 | Фильтрация по схожести образцов | 43 | Использование набора данных MovieLens | 46 | Сравнение методов фильтрации по схожести пользователей | и по схожести образцов | 48 | Упражнения | 49 | | 3. Обнаружение групп | 50 | | Обучение с учителем и без него | 51 | Векторы слов | 51 | Иерархическая кластеризация | 54 | Рисование дендрограммы | 60 | Кластеризация столбцов | 63 | Кластеризация методом К-средних | 64 | Кластеры предпочтений | 67 | Просмотр данных на двумерной плоскости | 71 | Что ещё можно подвергнуть кластеризации | 75 | Упражнения | 76 | | 4. Поиск и ранжирование | 77 | | Что такое поисковая машина | 77 | Простой паук | 79 | Построение индекса | 82 | Запросы | 86 | Ранжирование по содержимому | 88 | Использование внешних ссылок на сайт | 93 | Обучение на основе действий пользователя | 99 | Упражнения | 109 | | 5. Оптимизация | 111 | | Групповые путешествия | 112 | Представление решений | 113 | Целевая функция | 114 | Случайный поиск | 117 | Алгоритм спуска с горы | 118 | Алгоритм имитации отжига | 120 | Генетические алгоритмы | 123 | Поиск реальных авиарейсов | 127 | Оптимизация с учётом предпочтений | 132 | Визуализация сети | 136 | Другие возможности | 142 | Упражнения | 142 | | 6. Фильтрация документов | 144 | | Фильтрация спама | 145 | Документы и слова | 145 | Обучение классификатора | 146 | Вычисление вероятностей | 149 | Наивная классификация | 151 | Метод Фишера | 155 | Сохранение обученных классификаторов | 159 | Фильтрация блогов | 161 | Усовершенствование алгоритма обнаружения признаков | 164 | Использование службы Akismet | 166 | Альтернативные методы | 168 | Упражнения | 168 | | 7. Моделирование с помощью деревьев решений | 170 | | Прогнозирование количества регистрации | 171 | Введение в теорию деревьев решений | 173 | Обучение дерева | 174 | Выбор наилучшего разбиения | 176 | Рекурсивное построение дерева | 178 | Отображение дерева | 180 | Классификация новых наблюдений | 183 | Отсечение ветвей дерева | 184 | Восполнение отсутствующих данных | 186 | Числовые результаты | 188 | Моделирование цен на недвижимость | 188 | Моделирование степени привлекательности | 191 | В каких случаях применять деревья решений | 194 | Упражнения | 196 | | 8. Построение ценовых моделей | 197 | | Построение демонстрационного набора данных | 198 | Алгоритм k-ближайших соседей | 199 | Взвешенные соседи | 203 | Перекрёстный контроль | 207 | Гетерогенные переменные | 209 | Оптимизация масштаба | 212 | Неравномерные распределения | 214 | Использование реальных данных — API сайта eBay | 220 | В каких случаях применять метод k-ближайших соседей | 227 | Упражнения | 227 | | 9. Более сложные способы классификации: | ядерные методы и машины опорных векторов | 229 | | Набор данных для подбора пар | 230 | Затруднения при анализе данных | 231 | Простая линейная классификация | 234 | Категориальные свойства | 238 | Масштабирование данных | 242 | Идея ядерных методов | 243 | Метод опорных векторов | 247 | Библиотека LIBSVM | 249 | Подбор пар на сайте Facebook | 252 | Упражнения | 258 | | 10. Выделение независимых признаков | 259 | | Массив новостей | 260 | Прошлые подходы | 264 | Неотрицательная матричная факторизация | 267 | Вывод результатов | 273 | Использование данных о фондовом рынке | 277 | Упражнения | 282 | | 11. Эволюционирующий разум | 284 | | Что такое генетическое программирование | 285 | Программы как деревья | 287 | Создание начальной популяции | 292 | Проверка решения | 293 | Мутация программ | 295 | Скрещивание | 298 | Построение окружающей среды | 300 | Простая игра | 303 | Направления развития | 308 | Упражнения | 311 | | 12. Сводка алгоритмов | 312 | | Байесовский классификатор | 312 | Классификатор на базе деревьев решений | 316 | Нейронные сети | 320 | Метод опорных векторов | 324 | k-ближайшие соседи | 329 | Кластеризация | 333 | Многомерное шкалирование | 336 | Неотрицательная матричная факторизация | 338 | Оптимизация | 341 | | Приложения | 344 | | A. Дополнительные библиотеки | 344 | | B. Математические формулы | 351 | | Алфавитный указатель | 358 |
|
Книги на ту же тему- Нейронное программирование диалоговых систем, Толкачёв С. Ф., 2006
- Системы искусственного интеллекта, Лорьер Ж. Л., 1991
- Автоматизация синтеза и обучение интеллектуальных систем автоматического управления, Макаров И. М., Лохин В. М., ред., 2009
- Непараметрические коллективы решающих правил, Лапко В. А., 2002
|
|
|