Первый раз пишу обзор на книжку, не дочитав ее до конца. Но реально не терпится, потом может дополню. Когда я заказывал ее на books.ru, я не думал, что она будет какой-то особенной. Просто в начале лета, когда отдыхал на сессии, я рылся по каталогу в поисках интересной литературы и набрел на эту. Больше всего удивила надпись сверху обложки "создание интеллектуальных приложений для web 2.0". Как-то мне сначала казалось, что книга больше алгоритмическая. Но нет, никаких алгоритмов поиска пути А*, да еще и все листинги на Python. Надо было брать.
Сначала даже читать ее не стал, полистал, понял, что вроде бы что-то интересное и положил на стек. Когда пришло ее время я внезапно обнаружил - да она ахуенна. Нет, в ней в отличие от учебника матанализа, не разобраны сложнейшие формулы, не приведены выкладки. В ней дано именно то, что действительно важно и нужно. Представьте себе все, что вы учили по терверу, матанализу, матлогике и дискретной математике, возьмите оттуда только то, что действительно применяется на практике и напишите об этом книжку. Вы получите "коллективный разум". Да, ребятки с факультета прикладной теории вероятностей тихо хихикают в сторонке, мол, это все бред, не зря же мы 10 лет учили как выводить ебейшие формулы и доказывать теоремы Байеса. Действительно, не зря, это развивает мозги, но только вот на практике совершенно не нужно. У вас никто никогда не спросит как выводить коэффициент корреляции Пирсона, но вот построить с помощью него систему рекомендаций музыки или книг по тому, что раньше слушал или покупал пользователь - иногда реально необходимая задача.
Но вернемся назад. Почему такое странное название "коллективный разум" (в оригинале: collective intellegence) и чему, собственно, посвящена книга? Все мы живем в эпоху, когда вокруг нас дохуя информации. Возьмите, хотя бы, любимые всеми социальные сети. Люди добровольно выкладывают о себе столько подробностей, сколько никогда не рассказали бы добровольно при встрече. Огромные сервисы как google, last.fm, delicious, facebook, на которых люди делятся информацией или просто оставляют ее для себя - это и есть коллективный разум. На основе этого можно строить столько интересных вещей. Начиная от примитивной таргетированной рекламы, типа "отметил юзер в интересах linux, значит интересуется компьютерами, значит ему нужна новая книжка из серии Windows 7 для дегенератов", и кончая общемировой статистикой. Или спам-фильтры. Все же задумывались как они работают. Даже строили догадки о каком-нибудь "черном листе слов" и тому подобное. Да, такие фильтры были, но не сегодня. Сегодня модно самообучающиеся, умные. Нейронные сети сегодня тоже модное слово. Алгоритм PageRank, на котором основаны все поисковики, слышали? А собрать генеологическое дерево из профилей facebook слабо? А как реализован полнотекстовый поиск в том же гугле? Для самых одиноких даже есть глава, посвященная тому, как найти пару на facebook, написав парсер по интересам.
Ни в одной книге я не встречал сразу столько интересно разобраных реальных примеров. Не отвлеченных "вероятность гипотезы А при удовлетворении условия В", а реально существующих спам фильтров, построенных на этом. Надо было читать эту книжку год назад, тогда я бы не так часто спал на тервере. Потому что реально - половина из того, что нам так скучно читали на лекциях, под наши унылые "да зачем оно нам вообще нужно" - там используется в самых разнообразных целях. Да, в школьных стенах так важны огромные формулы с 20 переменными, которые невозможно запомнить, но тут каждой из них дают свой очевидный смысл. Вот эта непонятная P(А|B) - это просто количество спам-сообщений в ящике, а вот это - вероятность того, что слово плохое.
Думаю у некоторых сейчас кладывается ощущение, что эта книжка - эдакий "тервер для быдлокодеров", там так все просто разобрано. А вот хуй. Во-первых, в листинги реально приходится вчитываться, благо написаны они на питоне, который можно читать с листа, не заботясь о том "а что значит эта переменная". Во-вторых в ней таки приводятся названия теорем и формул, которые используются при написании. Особо чуткие особи могут с легкостью навикипедить их и погрузиться в любимый мир интегралов. Кстати, в конце книги есть приложение "для пацанов" с любимыми знаками суммы на пол страницы, четырехэтажными дробями и интегралами. Там же звучат такие умные слова как теорема Гаусса, дисперсия и условная вероятность. Короче краткий курс тервера на 7 страниц. Так что не надо думать, что жизнь так прекрасна и удивительна, и любой сможет создать свой google с неоконченными 6-классами средней школы. На задней обложке написано "уровень подготовки читателя: средний" и я бы сказал, что это они занизили. Что бы просто прочитать и попробовать, да, подойдет средний, но вот действительно понять это можно только после курса тервера и дискретной математики.
В общем жалко, что у меня так мало времени, чтобы ее дочитать. Да и не сказал бы, что читается она быстро. Это вам не дизайнерские писульки, тут думать надо :)
Теперь для тех, кому лень все читать. Коротко:
Читать: далеко не всем, а тем, кто занимается вебом и не уровня "визитка на РНР за 2000р".
Описано: нейронные сети, в частности для анализа спама, рекомендации на основе выбора многих пользователей (тут достаточно много алгоритмов, 3 по-моему), в том числе рекомендации ссылок через API сайта delicious, алгоритм PageRank и написание своего поисковика (нет, это не С++ за 21 день), алгоритмы полнотекстового поиска, задачи на оптимизацию (ой, а мы с этого семестра ее изучаем), например, оптимизации перелетов для семьи с минимизацией ожидания в аэропорту, алгоритмы на графах, ядерные машины и машины опорных векторов, деревья решений, и на мой взгляд одно из самых вкусных - генетическое программирование. Создание потомства, потом отбор сильнейших, мутации и... вы не поверите, получается поисковик :D
Короче практически каждой главе этой книги посвящены сотни томов научных работ. Так что учтите :)
Обзор на хабре: http://habrahabr.ru/blogs/books/79151/
Ссылка на буксру: http://www.books.ru/shop/books/586615 (дешево-то смотрите как)