Вообще, Amazon еще в далеком 1999 году писал о рекомендательных сервисах в своих годовых отчетах для акционеров – слово «recommendation» там появляется 10 раз. У нас в то время и интернет-магазинов толком не было. Amazon настолько крут, что статья Грега Линдена, который создавал там систему рекомендаций, «Две декады рекомендательных систем в Амазоне» [112] – одна из самых цитируемых статей, согласно сервису Google Scholar.
На меня большое впечатление произвела встреча в офисе Ozon.ru с Андреасом Вейгендом, который работал одним из ведущих аналитиков Amazon. Сейчас он преподает в Беркли и Стэнфорде, занимается консультированием гигантов e-commerce. Мне не давали покоя его слова: «Последний клик пользователя даст вам больше информации, чем вы о нем знали раньше». На тот момент я уже понимал, что социально-демографические данные ничто по сравнению с данными поведенческими. В своей статье [100] Вейгенд сказал, что наши поисковые фразы очень много говорят о нас. («We are what we search for… that a powerful compression of people’s lives is encoded in the list of their search queries».) Эта информация пригодилась мне в дальнейшем в Retail Rocket для написания «краткосрочных» персональных рекомендаций.
Итак, на сайте Ozon.ru на тот момент уже были какие-то рекомендации, созданные в свое время разработчиками, и мы решили расширить их функционал. Конечно, на тот момент отличным примером реализации рекомендаций был сайт Amazon.com. Там было очень много идей – например, выводить веса рекомендаций прямо в виджете, чтобы дать понять потенциальному покупателю, какой процент людей купили рекомендованный товар. Сейчас этого функционала на сайтах Ozon.ru и Amazon.com нет, но совсем недавно я обнаружил такой пример на немецком сайте по продаже электроники thomann.de, когда искал электронные барабаны.
В тот период были сделаны или доработаны следующие типы рекомендаций:
• с этим товаром часто покупают;
• те, кто смотрел эту страницу, затем купили;
• поисковые рекомендации;
• персональные.
С алгоритмом «C этим товаром часто покупают» произошла интересная история. Алгоритм статистически в лоб плохо работает. Тогда один из разработчиков нашел статью «Коллаборативная фильтрация товар-товар» [113] того же Грега Линдена и сам реализовал «косинус» на C#, используя мультипоточное программирование. Потому что на SQL-сервере писать косинус векторов интересов клиентов то еще удовольствие. После этого опыта я и уверовал в Великий Косинус в
Одной из сложных задач было измерить эффективность блоков рекомендаций, но у нас был уже купленный инструмент веб-аналитики Omniture Sitecatalyst (ныне Adobe Analytics), и с помощью анализа мерчандайзинга, о котором я писал выше, мы смогли с этим справиться. Именно это вы можете увидеть на 23-м слайде моей презентации о рекомендациях на Ozon.ru [115] – презентация не потеряла своей актуальности даже спустя 10 лет. Кстати, тогда мы достигли цифры 38 % от всех добавлений в корзину через рекомендательные блоки.
На некоторое время я забросил рекомендации, пока не оказался в Wikimart.ru – тогда поездка в офис Netflix и рассказ Эрика Колсона об их технологиях сподвигли меня на полную смену технологий. На самом деле Wikimart.ru это было не нужно, все мои старые наработки успешно работали и на базах данных. Но именно Hadoop на тот момент открыл для меня границы невозможного – масштабирование вычислений вплоть до тысячи компьютеров одновременно. Мне не нужно было переписывать алгоритмы, ускорять их – достаточно было просто добавить еще компьютеров в кластер. Примерно через два года, в октябре 2012-го, я написал текст, оригинал которого представлен ниже.