Важный аспект современных коммерчески успешных приложений - применение методик, позволяющих осуществлять обработку информации и добавлять средства интеллектуальной поддержки. Многочисленные примеры успешных проектов, основанных на применении таких методик, включают такие широко известные бренды, как Google, Netflix и Amazon. Эта книга о том, как построить алгоритмы, формирующие интеллектуальное ядро таких вебприложений.
В книге рассматриваются пять важных категорий алгоритмов: поиск, выработка рекомендаций, создание групп, классификация и ансамбли классификаторов. Исходный код написан на языке Java, тем не менее программистам, знающим другой объектноориентированный язык, вполне по силам разобраться в этом коде и использовать общие принципы с учетом своей специфики. Материал в равной степени применим к различным приложениям - от утилит мобильной связи до традиционных настольных приложений.
Издание в первую очередь адресовано программистам и вебразработчикам, однако множество примеров и новых идей будут полезны и руководителям разного уровня, желающим лучше разобраться в соответствующих технологиях и предлагаемых возможностях с точки зрения бизнеса.
Об авторах
Хараламбос (Бабис) Марманис - пионер в области применения на практике методик машинного обучения. Обладает 20-летним опытом профессиональной разработки программного обеспечения. В настоящее время - директор научно-исследовательского подразделения и главный архитектор решений, связанных с управлением расходами, в фирме Emptoris, Inc. Имеет степень PhD в области прикладной математики (Брауновский университет), магистр теоретической и прикладной механики (Иллинойский университет в Урбана-Шампейн), бакалавр и магистр гражданского строительства (университет Аристотеля в Салониках). В 2000 году получил награду международного научно-исследовательского общества Sigma Xi за инновационные исследования; автор многочисленных публикаций в международных научных журналах и в периодических технических изданиях.
Дмитрий Бабенко возглавляет инфраструктуру информационного хранилища в фирме Emptoris, Inc. Специалист по программному обеспечению и архитектуре с 13-летним стажем работы в ИТ-индустрии. Разработал и создал набор разнообразных приложений и фреймворков для фирм, специализирующихся в области банковской деятельности, страхования, управления цепочкой поставок и бизнес-аналитики. Магистр вычислительной техники (Белорусский государственный университет информатики и радиоэлектроники).
Отзывы
Интересный и познавательный обзор алгоритмов и методик, связанных с созданием интеллектуальных веб-приложений
Данная книга - не увесистый том по искусственному интеллекту. Напротив, это стимулирующее мыслительный процесс, поучительное, доставляющее удовольствие чтение. В книге рассматриваются многие повседневные задачи, с которыми сталкиваются веб-приложения: поиск, кластеризация, релевантность и так далее. Такие задачи включают большие объемы, как правило, неполных, многомерных данных.
Я работаю с подобными задачами уже не один десяток лет, и эта книга - одна из лучших среди тех, что мне встречались. Она особо значима для задач, с которыми обычно имеют дело разработчики веб-приложений в эпоху Web 2.0.
Робин Хилльярд (Карлайл, шт. Массачусетс, США)
Отличное проникновение в суть структур интеллектуального Интернета
У меня приличные познания в области краулинга и индексирования веб-сайтов. Эту книгу приятно было читать, она дает точное, строгое техническое руководство по методикам информационного анализа. Здесь в простой, логически ясной манере рассматривается большинство вопросов, связанных с краулингом и индексированием веб-контента.
В книге приводятся прекрасные примеры программного кода на Java, в которых легко разобраться. Безусловно, авторы знают, о чем говорят. Чтобы чтение этой книги было максимально полезным, нужны некоторые навыки программирования на языке Java.
SwDev (Нью-Йорк)
Искусно разграничены предоставление готовых наборов команд и изучение алгоритмов
Это книга для действующего профессионала, который уже знает Java и хочет не просто реализовать интеллектуальные алгоритмы, но и вникнуть в их теоретические основы. Весь программный код написан на Java, так что не зная этого языка, вам будет несколько сложнее. Также полезно иметь некоторые базовые знания об алгоритмах, вроде тех, что изложены в книге "Introduction to Algorithms".
Автор пытается одновременно обучить основным алгоритмам информационного поиска в веб-среде и показать реализацию этих алгоритмов на языке Java. Одновременно и учебник и справочник удачно интегрированы в единое целое, и результатом явилась книга, которую я охотно рекомендую. Автор щедро использует схемы и иллюстрации, сначала объясняя происходящее на высоком уровне и демонстрируя псевдокод перед тем, как показать собственно программный код на языке Java. За этим следует обсуждение внутренних механизмов работы алгоритмов.
Отмечу, что там, где это возможно, используются высокоуровневые библиотеки, такие как Lucene, поскольку это все же книга для профессионалов, да и ваш босс не придет в восторг, если, реализуя алгоритмы, вы раз за разом изобретаете колесо. Но не волнуйтесь, программный код получает объяснение и в этом случае. Подходящей парой для книги Марманиса является другая хорошая книга, независимая от языка программирования, - "Machine Learning" (Mcgraw-Hill International). Она не новая, но хорошая.
calvinnme
Быстро станет классической книгой по алгоритмам, применяемым для наращивания возможностей интеллектуальных веб-приложений
Меня всегда интересовали вопросы ИИ, машинного обучения и анализа данных, но вводные книги казались мне слишком насыщенными математикой и сфокусированными, главным образом, на решении скорее академических, чем реальных прикладных задач. И мне любопытно было взглянуть, что представляет собой эта книга.
Прежде чем написать этот отчет, я прочел ее от корки до корки (дважды!). Пару месяцев тому назад я начал читать электронную версию, а в выходные еще раз прочел бумажную. Это лучшая практическая книга по машинному обучению, которую вы можете купить сегодня, - и все тут. Все примеры написаны на языке Java, а все алгоритмы растолкованы нормальным человеческим языком. Стиль - великолепный! Один автор (Марманис) написал книгу, а его соавтор (Бабенко) внес свой вклад, создав исходный код, поэтому в изложении нет зазоров: оно увлекательно, приятно и плавно. Автор ведет читателя от азов к довольно сложным вопросам. Одни темы в книге рассмотрены подробнее, другие представлены в виде заданий, сформулированных в конце каждой главы (разделы "Сделать" - отличная идея!).
Книга охватывает четыре краеугольные задачи машинного обучения и искусственного интеллекта, то есть интеллектуальный поиск, рекомендации, кластеризацию и классификацию. В ней также рассматривается предмет, который сегодня можно найти только в научной литературе, - объединение методик. Это очень мощная вещь, и хотя автор представляет объединение методик в контексте классификаторов, понятно, что то же самое можно сделать для рекомендаций - как это сделала команда Белла и Корра, чтобы получить приз Netflix.
Я работаю в финансовой фирме, и несколько моих сослуживцев имеют научные степени по математике и компьютерным наукам. Эта книга привела меня в такой восторг, что я попросил их взглянуть на нее. Они ее только хвалили. Общее решение таково, что все объяснено насколько можно просто, ясно, но без ущерба для правильности понимания. Как сказал мне один из них, это важный шаг в обучении методикам ИИ и представлении этой области знаний миллионам разработчиков всего мира. Даже эксперты в этой области и опытные специалисты по программному обеспечению сделают для себя важные открытия почти в каждой главе.
Мы разработали библиотеку для небольшого проекта, цель которого - анализ файлов журналов и оценка ИТ-риска (то есть оценка вероятности несанкционированного вторжения; вывод предупреждений о проблемах производительности приложения и т. Д.), взяв за основу программный код из книги Марманиса. Всё работает!
Безусловно, я глубоко впечатлен. Это выдающаяся книга; она была не только полезна - она вдохновляла! Книга из разряда "обязательных к прочтению" для каждого Java-разработчика.
В этой книге рассматриваются:
- алгоритм PageRank; алгоритм, основанный на сходстве контента и аналогичный алгоритму PageRank, который автор назвал DocRank, потому что он применим к документам Word, PDF и другим, а не к веб-страницам; улучшенный поиск на базе вероятностных методов (наивный байесовский алгоритм); точность, полнота поиска, F1-оценка и ROC-кривые;
- коллаборативная фильтрация, а также выработка рекомендаций, основанная на сходстве контента;
- алгоритмы k-средних, ROCK, DBSCAN для кластеризации; лучшее из всех объяснение "проклятия размерности"! Наконец-то, я узнал, что означает это загадочное понятие!
- байесовская классификация; декларативное программирование (посредством процессора выполнения правил Drools); введение в нейронные сети; деревья решений;
- сравнение и объединение классификаторов: тест Макнемара; Q-тест Кохрана; F-тест; методики bagging и boosting; универсальные ансамбли классификаторов.
Купите эту книгу, читайте ее, наслаждайтесь ею и используйте ее!
Майкл Мимо (Нью-Йорк, шт. Нью-Йорк, США)
Автор ясно мыслит и излагает
Накануне вечером я присутствовал на встрече автора с группой пользователей New England Java User's Group, где рассматривалась та же самая тема, что и в книге. Автор - обаятельный чудак - излагает материал так, что сугубо математические аспекты вычисления рекомендаций на основе сходства вызывают интерес. Его примеры достаточно просты, чтобы их можно было легко понять, и вместе с тем достаточно полны, чтобы проиллюстрировать глубину и сложность решаемых задач.
Брайан Тарбокс (Литтлтон, шт. Массачусетс, США)
Книга понравилась, не жалею, что купила.
Написано не идеально, часть алгоритмов описаны довольно поверхностно, зато есть много ссылок на книги, названия алгоритмов, ресурсы в сети, для того, чтобы изучить тему более глубоко. Что, несомненно, большой плюс.
Но при всей не идеальности, книга - одно из лучших руководств по данном тематике на русском языке.
Гость
Алгоритмы, описанные в книге вовсе не не новы. Описание достаточно поверхностное. Порой много слов о совсем очевидных вещах. Код на Java, на мой взгляд, излишен и коряв ("Банда четырех" и Фаулер за такой код убили бы). Лучше было бы более подробно описать алгоритмы (со схемами, диаграммами и псевдокодом).
Тем не менее, книга достаточно интересная и стоящая. Цена явно завышена.
Эта книга - классика IT направления! Брала когда-то в друга ее в оригинале почитать, и не пожалею денег на перевод - она того стоит.
Гость
Очень наслышан об этой книге от иностранных читателей и обрадовался, когда узнал что Символ-плюс ее перевели. Вообще для России подобная книга - редкость. Советов на форумах - тысячи, а вот настоящие рекомендации и методики профессионалов в очч большом дефиците! Радует также то, что книгу могут использовать не только знатоки Java. Положил в корзину, буду ждать с нетерпением выхода!
Гость
Уже не первый раз натыкаюсь на эту книгу, но как-то не особо она меня привлекала, по крайней мере до тех пор пока не прочитал аннотацию и не узнал об авторах! Особенный интерес вызвал, рассматриваемый проект Netflix - в настоящее время мы разрабатываем подобный ресурс для рунета, и я уверен, что книга будет крайне полезна. Также с Java я знаком не по наслышке, так что жду книгу с нетерпением!!