Bigdata, машинное обучение и нейросети – для руководителей. Биг дата битрикс


Подходы и инструменты работы с BigData — все только начинается, начи-на-ет-ся

Вы еще не сохраняете десятки миллионов событий в день? К вам еще не забегают менеджеры с кричащим вопросом — когда твой дорогущий кластер на «надцати» машинах посчитает агрегированную статистику по продажам за неделю (а в глазах читается: «чувак, ребята на php/python/ruby/go решают задачу за час, а ты со своей Бигдатой тянешь время днями, доколе?»)? Вы еще не вскидываетесь ночью в холодном поту от кошмара: «разверзлось небо и на вас, ваших коллег и весь нафиг город вывалилось огромная куча… Бигдаты и никто не знает, что с этим всем теперь делать»? :-)

Есть еще интересный симптом — в компании скапливается много-много логов и кто-то, по фамилии, отдаленно звучащей как «Сусанин», говорит: «коллеги, а в логах на самом деле сокрыто золото, там есть информация о путях пользователей, о транзакциях, о группах, о поисковых запросах — а давайте это золото начать извлекать»? И вы превращаетесь в «извлекателя» добра из терабайт (и их десятков) информационного водопада под мотивирующие советы: «а разве нельзя в потоке получать ценную для бизнеса информацию, зачем гонять часами кластера?».

Если это не о вас, тогда и не заходите под кат, ибо там — треш и жесткий технологический трепет… Зря вы зашли под кат. Но мужчины — не отступают и бьются до конца. На самом деле, цель поста: сориентировать читателя и сформировать ему минимальный и эффективный «армейский паек» знаний и умений, которые пригодятся на самом сложном начальном этапе внедрения Бигдаты в компании.

Итак, разминка.

Что знает и чего еще не знает разработчик

Говоря «по чесноку» мы, разработчики, бываем двух видов (я вижу, что пунктов ниже три):

В ВУЗе обычно (не все, конечно, говорю за себя) мы боремся с гормональным взрывом, знакомимся с красивыми девушками, спим на парах, кодим ночью что хотим, учимся перед сессией и в конце концов запоминаем список книг, куда нужно если что — глянуть. И еще в ВУЗе мы можем встретить преподавателей или коллег, которые своей энергией, отношением к делу, стремлением к компетенции и жизненной позицией могут стать нашими ориентирами на всю жизнь и подогревать нас и мотивировать в различных обстоятельствах (ну вот, снова довел себя до слез).

Если после ВУЗа системно тратить по паре часов в день на теорию в метро (автобусе, маршрутке) и по 8 часов на практику «проектирования и создания программного обеспечения» и прочитать минимально необходимые для общей грамотности книжечки, то вы выдохните с чувством выполненного долга лет в 40, а если еще и спать ночами — то лет в 50. Вот что я имею в виду:

Коллеги, это только то, что касается «проектировать ПО и писать хороший код».

А математика для разработчика — это отдельный мир. Дело в том, что, чтобы хорошенько понять рассматриваемые ниже алгоритмы и подстраивать их под нужды компании — нужно, как бы помягче сказать, неплохо разбираться в следующих областях математики:

А если вам повезет столкнуться с кластеризацией данных (сгруппируй похожих Покупателей, Товары и т.п.), то:

Ну да, конечно можно и не разбираться и скопипастить. Но если вам придется адаптировать и смешивать алгоритмы под свои нужды — фундаментальные знания, безусловно, нужны и тут лучше всего наверно работать совместной командой, у участников которой достаточно знаний чтобы понимать, куда идти.

Нужен аналитик?

И вы спросите — а нужен проекту математик, который живет математикой, спит с математикой и наизусть помнит доказательство теоремы Пифагора 20 способами и с постером «Бином Ньютона» над ложем — для понимания и организации процесса работы с Бигдатой? А он хороший код писать умеет — быстро, в релиз? А он не будет зависать перед монитором на 15 минут с гримасой ужасного страдания, созерцая быстро сделанный объектно-дизориентированный алогичный, но сексуальный хак? Ответ на этот вопрос мы знаем — ибо невозможно (кроме гениев и джедаев) одинаково хорошо преуспеть в служении светлой и темной сторонам.

Видимо поэтому умные от природы дяденьки и тетеньки усердно занимаются Computer Science и пишут только им понятные, написанные языком формул статьи, а трудолюбивые от природы разработчики лишь успевают поцеловать перед сном так и не открытый, но стоящий на самом видном месте дома многотомник Кнута :-)

Ну конечно бывают и исключения! А еще говорят, что люди иногда самовозгараются и он них остается кучка пепла.

Алгоритмы

Итак, коллеги, перечислим, с чем вам придется столкнуться в первых боях с Бигдатой.

Коллаборативная фильтрация

Алгоритмы это области сначала кажутся очень очень простыми и хорошо «идут под водочку с огурчиками».

Ну что сложного? Никакой математики, только физика и химия. Матрица Пользователи*Товары и ищи похожие строчки, используя изучаемые в старшей группе детского сада формулы похожести векторов:

Но на самом деле все гораздо хуже. Если у вас миллионы Пользователей и Товаров (как у нас), научно-популярные книжечки по построению рекомендательных систем, а также 99% имеющейся в сети информации и научных статей — можно смело выкинуть. Не-под-хо-дит :-)

Тут выползает скрытый монстр под названием "проклятие размерности", начинаются серьезные вопросы по масштабируемости, скорости работы алгоритмов (все же знают, что Amazon придумал Item2Item алгоритм не от хорошей жизни, а потому — что User2Item алгоритм просто начал тормозить), превентивной оценки качества моделей и др. А присовокупив настойчивую просьбу отдела маркетинга изменять коллаборативную фильтрацию в онлайне… — вы понимаете, что становится жарко.

Content-based рекомендательные системы

Принцип построения ну тоже до боли простой. Мы формируем профили объектов, будь то Пользователи, Группы или Товары и затем ищем похожие объекты методом хоть всем известного косинуса угла между векторами.

Чувствуете запах? Именно, запахло миром поисковиков…

Последнее время даже сам Mahout стал рассказывать о большой роли поисковых движков в построении рекомендательных систем.

И тут от вас уже требуются знания алгоритмов IR — ну если проект не очень очень простой. Хотя бы отличать «precision» от «recall» и «F1» — нужно уметь.

И конечно все это можно сжечь, когда данных становится много, ибо многое перестает работать и нужно самим выполнять реализацию IR-алгоритмов с пониманием их сути, например в NoSQL и/или памяти.

Но будьте осторожны! Вас сама команда может объявить Еретиком и сжечь за инакомыслие прямо на кухне :-)

Обработка, фильтрация, агрегирование

Про инструменты мы поговорим позже. А в качестве алгоритмов нам сейчас предлагается не очень много вариантов: Со вторым поинтереснее. Если вы еще не поняли принцип MapReduce — это нужно сделать, он простой как «трусы за 1 руб 20 коп» и мощный.

Есть, например, даже глава в известном Стенфордском курсе по обработке больших данных о том, как перевести на язык MapReduce любую операцию реляционной алгебры (и гонять по данным SQL!!!).

Но тут подвох. Нужные вам известные простые алгоритмы из популярных книг нужно перевести в распределенный вид для использования MapReduce — а как сделать это, не сообщается :-) Распределенных алгоритмов, получается, гораздо меньше и они нередко… другие. Можете столкнуться еще с потоковыми алгоритмами обработки больших данных, но это отдельная тема другого поста.

Кластеризация

У вас несколько миллионов документов или пользователей и нужно найти группы. Либо склеить похожих. В лоб задача — не решается, слишком долго и дорого сравнивать каждого с каждым либо гонять итерации k-means.

Поэтому и придумали трюки с:

Если у вас много данных, то ни k-means, ни c-means, ни, тем более, классическая иерархическая кластеризация — вам не помогут. Нужно «хакать» технологии и математику, искать решения в научных статьях и экспериментировать.

Тема интересная, обширная, полезная — но требует иногда серьезного знания вышеуказанных разделов математики.

Машинное обучение

С одной стороны, стороны бизнесовой, тут довольно понятно — вы учите модель на заранее подготовленных данных угадывать новые данные. Например, у нас 10000 писем и для каждого известно, спам это или нет. А затем мы подаем в модель новое письмо и, о чудо, модель говорит нам, спам это или нет.

По «силе угадывания» модели делятся на:

А вот алгоритмов — очень много, вот полезный ресурс.

И конечно это только малая часть алгоритмов, с которыми вам, вероятно, придется иметь дело.

Инструменты

Вот мы и дошли до инструментов. Что есть готового, что поможет нам в борьбе с Бигдатой?

Многие начинают со старого и доброго Hadoop MapReduce. В принципе сам Hadoop — это сборная солянка разных подпроектов, которые так между собой переплелись, что их уже родная мать не отделит.

Из наиболее востребованных:

Немного в сторонке находится Spark. Этот фреймворк выглядит, как бы мягко сказать, более современным, и позволяет обрабатывать данные, размещая их по возможности в памяти, а также выстраивать цепочки запросов — что, конечно, удобно. Мы сами его активно используем.

Хотя впечатления от Spark очень противоречивые. Он покрыт машинным маслом и торчащими проводами под напряжением — видимо его еще долго будут шлифовать, чтобы можно было разумными способами контролировать использование Spark оперативной памяти, не вызывая для этого духов Вуду.

А если вы в облаке Амазон, то HDFS вам, скорее всего, не понадобиться и можно напрямую использовать облачное объектное хранилище s3.

К сожалению, развернуть Spark в Амазоне — достаточно непросто. Да, есть известный скрипт, но — не стоит. Мало того, что он загружает половину кода Университета Беркли в Калифорнии вам на сервер, так еще потом если его неаккуратно запустить (добавить хотите новую машину в кластер или обновить) — ваш кластер Spark будет нещадно изуродован и сломан и ближайшую ночь вы проведете не в объятиях подруги, а занимаясь любовью с bash/ruby/копипастами конфигурации в 100-500 местах :-)

А, чтобы сохранился позитивный осадок, посмотрите, как классно очень недавно Амазон стал продавать новый облачный сервисмашинного обучения, основанный на старом и добром «industry-standard logistic regression algorithm» (и никаких «лесов» и танцев с инопланетянами).

В добрый путь!

Вот наверно и все, что хотелось рассказать в вводном посте про алгоритмы и технологии обработки больших данных, с которыми разработчику вероятнее всего в ближайшие 3-6 месяцев придется вступить в бой. Надеюсь, информация и советы окажутся полезными и сэкономят вам, уважаемы коллеги, здоровье и манну.

А напоследок, ну чтобы понимать, как это может быть устроено изнутри, вид с птичьего полета нашего нового облачного сервиса: Ну это так, упрощенно, если что :-) Поэтому — спрашивайте в комментах.

habr.com

часть 1 – Григорий Добряков

Я не очень симпатизирую людям, которые размахивают bullshit-терминами на конференциях, однако до сих пор не сделали банальные миграции БД и деплойку в своём продукте. Поэтому, услышав громкие заявления о новом сервисе Битрикса, мне стало за державу обидно захотелось рассказать о том, как такие вещи устроены изнутри.

Сей пост для тех, кто уже владеет сеткой коммерческих сайтов и хочет трекать деятельность посетителей кросс-доменно (т.е. идентифицировать поведенческие факторы по всей сети), однако по счастливой случайности ещё не стал очередным адептом Битрикса.

Технологическая суть

Кратко говоря, технологическая суть укладывается в 5 простых шагов:

1. Трекаем события в пользовательском пространстве (на сайтах).2. Собираем данные в общую кучу, объединяя данные со всех источников.3. Перекладываем кучу в стройную систему хранения, по которой можно делать а-ля-SQL-выборки.4. Анализируем, собираем статистику, проводим коллаборативную фильтрацию.5. Выдаём посчитанные данные про пользователя обратно на сайты.

С чего начать кросс-доменный трекинг пользователей

Как вы понимаете, скорее мир перевернётся, чем я предложу использовать проприетарный софт. Поэтому идём вот сюда SnowPlow и читаем ридми.

Документация по SnowPlow довольно качественная, но пока можно не пытаться осилить её всю целиком. В первую очередь нам нужно взять код счётчика и разместить ответную часть где-то на наших серверах.

В реальном продакшене SnowPlow предлагает использовать Amazon как CDN для иконки счётчика и кластер для логирования запросов (между прочим, они официальные партнёры Амазона). Нам для тестирования изначально подойдёт простейший VDS, куда можно положить php-скрипт и посмотреть его принцип действия. Я выложил на github простой пример.

Javascript-трекер SnowPlow основан на известном Piwik и поставляется под той же лицензией. На каждое событие он порождает HTTP-запрос к иконке счётчика, перечисляя в GET-параметрах данные о событии и о пользователе. Из коробки доступны события типа page view, page ping, link click, social actions (лайки, ретвиты), а так же произвольные события типа “категория-действие-параметры” и отправка произвольного JSON.

Отвечающая сторона (серверный скрипт) владеет кукой, на основе которой пользователь идентифицируется кросс-доменно, и добавляет её значение ко всем логируемым запросам. Для этого в скрипте на серверной стороне определяется политика P3P “NOI DSP COR NID PSA OUR IND COM NAV STA”. Содержимое политики я скопировал из документации, – пожалуйста, не спрашивайте меня, что означают все эти буквы.

Логи

В результате мы имеем логи запросов, в которых каждая строка означает одно событие. При этом, благодаря данным из кук, мы можем идентифицировать действия пользователя в рамках одного сайта, в рамках всей сети, действия пользователей над одним объектом, над группой объектов на разных сайтах и т.д.

Сами логи для анализа малопригодны. Их следует трансформировать в SQL-подобное хранилище, чтобы проводить по ним выборки. Замечу, что не смотря на маркетинговые заявления SnowPlow-цев, у них данные достигают возможности анализа только через 30-60 минут (задержку вносит Amazon, собирая данные со всех нодов своих хранилищ). В нашем упрощенном примере данные доступны фактически “сразу”.

Анализ и коллаборативная фильтрация

Welcome в гугл и на хабр. Лично мне импонирует технологический опыт Ivi.Ru про user-based и item-based фильтрацию, описанный здесь.

Возврат посчитанных данных о пользователе

После того, как мы посчитали данные и подобрали персональные рекомендации каждому пользователю, нужно отдать их обратно на сайты, чтобы те могли персонифицировать своё поведение для каждого пользователя. Один из простых способов это сделать – выставить HTTP-JSON API, в котором идентификатором ресурса будет идентификатор пользователя на конкретном домене (duid в терминологии нашего трекера).

Поскольку мы знаем матрицу соответствий duid-nuid (второе – кросс-доменный идентификатор), нам достаточно легко кэшировать эти данные на серверной стороне, “подкладывая” одни и те же данные под всеми значениями duid, которые нам известны по этому пользователю.

Продолжение следует.

www.dobryakov.com

Bigdata, машинное обучение и нейросети – для руководителей

Если менеджеру попытаться разобраться в этой области и получить конкретные бизнес-ответы, то, скорее всего, страшно заболит голова и екнет сердце от ощущения ежеминутно упускаемой выгоды.

"AlphaGo обыграл чемпиона по Go" впервые за всю историю человечества, скоро наши улицы заполонят беспилотные автомобили, распознавание лиц и голоса теперь в порядке вещей, а в квартиру к нам завтра постучатся AI-секс-куклы с грудью наивысшего размера с шампанским под мышкой и настраиваемым уровнем интенсивности и продолжительности оргазма.

Все оно так, но что делать-то прямо сейчас. Как на этом заработать в краткосрочной перспективе? Как заложить прочный фундамент на будущее?

Постараюсь дать исчерпывающие ответы на все мучающие вас вопросы, «вскрыть» подводные камни и, главное — здраво оценить риски в AI и научиться ими правильно управлять. Ведь то, что не понимаем, то и не “танцуем”.

Много «мути» и сложных слов

Это, пожалуй, самое страшное – когда бизнесмен «попадает на науку».

Если у человека от квадратного уравнения в школе до сих пор болит голова и подергивается правое ухо на левой ноге, то от слова «перцептрон» может вообще произойти потеря сознания и неконтролируемое мочеиспускание.

Поэтому дальше – говорим только понятными словами. Чтобы было легче – представим, что мы сидим в баньке, пьем пиво и рассуждаем человеческим языком.

«Умные» коробочки с очень высокими амбициями

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

Решать такие задачи в лоб — нереально. Машине нужно буквально прописать миллионы правил и исключений – поэтому так никто не делает.

Делают иначе – «умные» коробочки обучают на данных, например о ваших клиентах. А если BigData у вас уже есть, то «умная» коробочка потенциально может стать еще «умнее» — опережая «коробочки» конкурентов или обычных сотрудников не только по скорости, но и по качеству решений.

Итого, делаем глоток пива и запоминаем – чем больше данных вы сможете достать, тем более «умной» станет ваша робо-коробочка.

Сколько нужно данных?

Комично, но у человечества до сих пор нет точного ответа на этот вопрос. Но зато известно, что чем больше «качественных» данных— тем лучше.

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

На пальцах — принято считать, что различные алгоритмы НЕ на нейросетях способны обучаться на десятках, сотнях и тысячах (и даже больше) примеров. И даже неплохо работать. Но обучать их на реально больших объемах данных — часто бессмысленно и бесполезно. Подобные алгоритмы просто не в состоянии "впитать" в себя знания, сколько бы мы не пытались в них засунуть.

Нейросети же, особенно «глубокие», содержат каскады нейронных слоев и килограммы сложно объяснимых алгоритмических "потрохов". Им, часто, гораздо лучше «скармливать» сотни тысяч и миллионы примеров из BigData. Но… десятки и сотни примеров им не подойдут — они их просто запомнят и не смогут адекватно предсказывать будущее на новых данных.

Поэтому. Делаем глоток пива, обнимаем девушку за талию и запоминаем — если данных мало – то НЕ нейросети (а, например, catboost), если много – нейросети, а если данных очень много – то ТОЛЬКО нейросети. Сложные, интересные, привлекательные и «глубокие» (deep learning).

Какие нужны данные?

Комично до слез, но разумного ответа на этот вопрос пока тоже нет: cобирайте все, что можно и нельзя. За примером не нужно далеко ходить: крупные вендоры типа Google, Facebook, Amazon, Яндекс, Mail.ru успешно делают это уже многие годы, почти нас не спрашивая. Дальше — будет еще хуже.

Активность людей, интересы, пристрастия, перемещения, знакомые – все это фиксируется в часто достаточно обезличенной форме. Но… с привязкой к идентификатору человека. Банально — по кукам в браузере или по номеру мобильного телефона. А когда к вам на сайт приходит кто-то в интернете, вы легко можете достать цифровую историю следов этой личности — и не важно, это Иван Иванович или "abh5756shja" — он интересуется ритуальными топорами, так покажем ему все их разновидности!

Если говорить более конкретно, то, например, от клиентов компании обычно собирают такую статистику:

Интернет-магазины обычно фиксируют посещенные страницы и их названия. заказанные товары, поисковые запросы, обращения в чат поддержки.

В итоге, забираемся на полочку повыше, там, где в баньке погорячее. Ибо дальше будет еще жарче. И фиксируем в голове – нужно собирать/покупать все что МОЖНО о наших клиентах. Все, что характеризует их активность, динамику и интересы.

Чем больше всякой биометрии и телеметрии мы соберем — тем лучше мы сможем потом обучить "умную коробочку" и дальше сможем оторваться от наших конкурентов.

Риски – качество данных

Рассмотрим пример. Допустим, мы пытаемся определить — беременна ли сотрудница нашей компании? Для этого предварительно собираем несколько параметров:

Если соберем десятки, а желательно сотни (тысячи) примеров и они не будут повреждены багами программистов то, скорее всего, наша предиктивная модель обучится хорошо. Но если мы решили собирать 500 параметров по каждой беременности, а статистики по поведению беременных сотрудниц у нас всего на 10 примеров из реальной жизни — это не сработает. Даже ребенок поймет — так «умная» коробочка ничему толковому не научится, т.к. данные будут сильно разряженными.

А бывает еще так, особенно в крупных компаниях. Вы — большой босс или маленький боссик, отвечающий за крупный рост конверсии (так тоже иногда бывает). Аналитики приносят вам данные о покупателях. Но глаза «дающих» спрятаны или бегают. Или выпучены в безумной отваге. В общем, вы сомневаетесь в качестве этой бигдаты. И это — правильно.

Чтобы распознать подвох — разузнайте об использовании инженерных практик в подразделениях разработки у технического директора:

Пишут ли команды программистов модульные и интеграционные тесты к коду?

К сожалению, часто бывает так: программист увольняется, а те, кто остался, не понимают «как оно работает». А дальше разработчики легко могут поломать код. В любой момент. Пока не узнают об этом из жалоб от разгневанных клиентов. Или об этом узнаете вы, когда не сможете обучить нейронку из-за «кривой» бигдаты.

Настроено ли автоматизированное тестирование и мониторинг инфраструктуры, которая собирает данные о ваших покупателях? Ведется ли точный учет и отработка ошибок? Или определить процент потерянных данных без экзорциста невозможно?

Если все это есть — то, скорее всего, вам принесли качественную bigdata, иначе — толку от собранных данных будет мало, но, все же, попробовать стоит.

Данные есть. Что дальше?

Хотите на пальцах понять, что умеет обученная на собранных данных "предиктивная" модель? В большинстве случаев она может ответить «да» или «нет», уверенно или не уверенно и … всё. Обязательно, прямо сейчас, напишите фразу "предиктивная" модель несколько раз на спине загорелой девушки, сидящей рядом на банной полке, затем нанесите несколько шлепков дубовым веником. Повторите.

Пример. Вы — интернет-провайдер. У вас есть условно-бесплатный клиент. Вы хотите предсказать, перейдет ли он на платный тариф или нет? Ведь если вы сможете заранее знать будущее и еще не проявленные склонности клиентов — вы сможете более эффективно использовать маркетинговый бюджет, работая с потенциальными и не обращая внимания на тех, кто и нас скоро уйдет от вас.

«Нейронка», в лучшем случае, после обучения на данных, ответит вам либо уверенное «да», либо неуверенное «да», либо уверенное «нет», либо неуверенное «нет». И тут нужно очень хорошо понять, как же правильно работать с понятием "уверенности" классификатора и потренироваться.

Допустим, вы отбираете только «уверенные» ответы модели – и вот тут может оказаться, что из 100 ваших клиентов, машина уверенно определит склонность стать платным только для 7 пользователей. А на самом деле у вас 50 потенциально платных клиентов. Т.е. модель, из-за вашей осторожности, не продемонстрировала весь свой предсказательный потенциал.

Если же вы снизите порог "уверенности" и начнете принимать менее уверенные ответы модели — она, скорее всего, вернет вам почти всех действительно потенциально платных клиентов, но и немало других, не платных — а что вы хотите получить, понизив точность?

Т.е. либо применяем высоко-точное оружие и поражаем 5% злодеев, не нанося ущерб мирному населению, либо бахаем кассетными бомбами, уничтожаем всех злодеев, но вместе с ними всю флору, фауну и низколетящие НЛО.

И вот мы уперлись в понимание качества предиктивной модели или бинарного классификатора. Без него — дальше ну никак. На этой фразе вы можете подавиться, но ничего страшного — дальше будет только хуже ;) Важно понять, что чем лучше вы натренировали модель, чем более адекватную архитектуру вы подобрали для нейросети, чем больше вы достали bigdata — тем точнее предсказательная модель приблизится к идеалу: предсказывать правильно. В понимании этого принципа — залог вашего успеха.

Сделайте глоточек пива и разберем еще один пример.

Качество бинарного классификатора

Допустим, вы собрали данные по 120 клиентам и вы точно знаете — 60 клиентов стали платными, 60 человек ничего не купили. Берем 100 примеров для обучения модели и 20 — для контроля.

Обучаем «умную» коробочку с помощью бесплатного софта и хотим проверить — а как она будет предсказывать поведение НОВЫХ клиентов? Задержитесь на этой фразе и прочувствуйте – бинарный классификатор уже обучен на статистике с уже известным исходом. Клиент или стал «платником», или нет. Ваша цель теперь — применить его на новых клиентах, которых Скайнет в глаза не видел, и заставить его предсказать – купит он ваш продукт или нет?

Поняли идею? У вас получился оракл, мать его за ногу! Оно действительно работает! В этом — сила и суть машинного обучения. Обучиться на исторических данных и предсказывать будущее!

Итак, вернемся на грешную землю.

Вы обучили «нейронку» на 100 клиентах. Берем оставшиеся 20, которые «умная» коробочка еще не видела и проверяем — что она скажет?

Вам заранее известно — 10 клиентов из оставшихся стали платными, а 10 – не стали.

В идеале классификатор должен «уверенно» ответить «да» по 10 и «уверенно» ответить «нет» по 10 оставшимся клиентам.

Порог «уверенности» установим в >=90% или >=0.9 из 1.0.

На этом этапе можно начать «крутить» порог уверенности вверх, часто получая гораздо меньше уверенных ответов, зато без ошибок (предсказание платника, когда на самом деле нужно было предсказать бесплатника): нужно было предсказать 10 платников из 10, а предсказали только 4.

И наоборот, если покрутить порог уверенности вниз – «коробочка» начнет делать больше предсказаний, но будет больше ошибаться и говорить на черное-белое и наоборот.

Еще раз: по порогу уверенности есть 2 варианта «выкручивания громкости»:

  1. AI будет выдавать вам меньше ответов, но с максимальной «уверенностью» и точностью = высоко-точное оружие
  2. Получаем больше ответов, но точности — меньше и начнутся ложные срабатывания = ковровые бомбардировки

Чтобы не сойти с ума в оценке качества бинарных классификаторов, придумали простой параметр AUC. Чем он ближе к 1, тем ближе ваша модель к идеалу. И тем ближе вы к идеальному предсказанию покупок клиентов.

Еще раз, только проще, но теперь с KPI и премиями:

  1. Разработчики «учат» ваш бинарный классификатор
  2. Если на выходе его AUC больше 0.9 – люди идут в отпуск с премиями
  3. Если AUC меньше 0.9 — «ночь работе не помеха» и все думают, где собрать больше данных о клиентах, как выбрать лучшую архитектуру для модели и где еще остались баги в коде сбора данных и обучения нейросети

В общем, самое простое тут: установите вашей команде целевой KPI по качеству классификатора AUC — максимально приблизиться к показателю 1.0 и вы наверняка обойдете конкурентов!

Бизнес-применение «умных» коробочек

Вы еще живы? Правильно, дальше будет самое интересное.

Окунувшись в леденящую воду математики и протрезвев, предлагаю вернуться к девушкам и естественным удовольствиям.

Теперь вы знаете, что нужно для получения качественной «нейронки». А где их сейчас применяют? Да везде, где нужно получить ответ «да» или «нет»:

В «Битрикс24» мы успешно применяли и применяем бинарные классификаторы для предсказаний:

А еще весь этот хайтек сейчас активно применяют и в персонализации товаров и услуг, и в задачах CRM и где только не применяют и дальше будет хуже.

Персонализация услуг и автоматизация работы маркетинга

Я веду вас к одному правильному выводу: на кой крендиль делать лишнюю работу своими руками, если ее можно автоматизировать? Для этого — созданы программисты и для этого созданы предсказательные модели.

«Умные» коробочки и другие виды предиктивных моделей можно легко внедрить для автоматизации рутины, например, отдела маркетинга: авто-таргетирование рекламных предложений на сайте или в email-рассылке.

Так сделайте же это скорее! Интегрируйте в ваш интернет-магазин робота, который будет предлагать вашим посетителям персонализированные товары и услуги. Конверсия и лояльность ваших клиентов гарантированно вырастет.

Самый простой способ это сделать — обучение нескольких бинарных классификаторов для каждой группы товаров. А еще лучше — для каждой предлагаемой услуги на основе бигдаты покупок ваших клиентов.

Потом, когда клиент вернется на ваш сайт, AI сразу «поймет» чем его можно «зацепить». Это же так просто.

Видите, сколько появилось простых и эффективных способов увеличить конверсию. Так реализуйте их скорее.

В чем подвох?

Да, это все просто. На самом деле.

Внедрить предиктивные модели, нарастить проектную мощность маркетинга и конверсию в CRM – действительно несложно. Более того – возможно вам вообще не придется ничего покупать. Софт для обучения «Скайнетов» сейчас совершенно бесплатный. И его полно.

Если совсем лень в пень – можно поднять модель в облаке и оплачивать лишь хостинг, например в Amazon Machine Learning.

Но почему мы видим такие технологии в основном только в западных компаниях, решениях и продуктах? Ответ прост – инертность, нежелание менеджмента среднего звена развивать эффективность компании. В конце концов, просто… всем пофиг.

Я искренне убежден, в ближайшее время нас захлестнет поток решений на базе предиктивной аналитики и «нейронного» маркетинга. Это хорошо видно по скорости внедрения машинного обучения в рекламные сервисы Facebook, Google, Яндекс и Mail.ru. Кто не внедрит — уступит место конкурентам.

Достаточно вспомнить относительно недавние возможности по выгрузке в Facebook или Google хэшей от емейлов и телефонов ваших клиентов и математическое расширение рекламной аудитории чтобы понять, что дальше будет только … лучше и веселее

Еще одна причина – маркетологи часто просто не понимают, что дает им машинное обучение! Сколько времени у них освободится на креатив, если закрыть рутинное таргетирование и персонализацию рекламных предложений и email-рассылок с помощью «Скайнетов»!

Поэтому я и пишу такие подробные обзорные статьи для менеджмента. Кто, кроме топ-менеджеров или инициативных сотрудников, сможет продвинуть в компаниях настолько революционные проекты?

План действий

В принципе, теперь вы знаете достаточно, чтобы эффективно внедрить машинное обучение, предиктивный маркетинг, повысить конверсию и автоматизировать кучу рутины.

Давайте я опишу конкретные шаги к цели:

Раз. С помощью подразделения разработки или руками одного талантливого инженера – собираете данные о клиентах или покупаете их. Начните со сбора данных на сайте или в мобильном приложении. 5 строк правильно работающего г… нокода — и вы начнете получать статистику уже через 72 часа

Срок: 2-3 дня

Два. Руками одного аналитика создаете несколько предиктивных моделей, они же – бинарные классификаторы. Можно вообще ничего не программировать, а сразу загрузить данные в Amazon Machine Learning (https://aws.amazon.com/aml/details/).

Срок: 2-3 дня

Три. Внедряете «Скайнет» в ваши бизнес-процессы на сайт и в мобильное приложение

Срок: 7 дней

ЧеРтыре. Собираете обратную связь по качеству работы предиктивных моделей. Например, через статистику, голосование, анкеты. Цель – убедиться, что ваш обученный AI нормально работает с реальными данными.

Есть очень простое правило – обновлять эти модели раз, скажем, в PI (пи) — месяцев. Кому-то чаще, кому-то реже.

Если конверсия выше, чем без использования моделей – значит можно модели не обновлять. Упала – обновляйте.

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

Теперь таргетированием и персонализацией у вас занимаются роботы, а творчеством – люди – как и задумано в «первый день творения».

Шесть. Наслаждайтесь эффективностью, ищите новые точки бизнеса, где предиктивные бинарные классификаторы смогут защитить людей от рутины!

Друзья, на этом у меня пока все. Удачи вам, успешной автоматизации рутины, послушных роботов и хорошего настроения!

habr.com

Big Data - персонализация выдачи

Конкуренция на рынке электронной торговли нарастает. Для того, чтобы интернет-магазин был успешным, необходимо уметь при том же количестве трафика получать больше выручки, то есть лучше конвертировать его в продажи. Технологии персонализации позволяют увеличить выручку на 10-30%. Мы разработали сервис 1С-Битрикс BigData, чтобы интернет-магазины на нашей платформе были более эффективны по сравнению с конкурентамигенеральный директор «1С-Битрикс» Сергей Рыжиков

В конце октября прошлого года в бету, а в последствии и в финальный релиз, вышел новый сервис от 1С-Битрикс под модным названием Big Data. В основу сервиса стал анализ поведения и предпочтений пользователя, на основе которых строится рекомендательная система сайта, которая повышает конверсию в продажи. Предлагаем вам посмотреть небольшой промо-ролик, чтобы понять на сколько это классный сервис.

Расскажем немного своими словами о том, как работает данный сервис, кратко и только важное. С сайтов на последней версии 1С-Битрикс собирается некий хеш данных на серверах 1С-Битрикс, где обрабатывается и по не разглашаемым алгоритмам обрабатываются эти данные. Затем, когда пользователь заходит на сайт с включенной и настроенной Big Data ему уже подбираются товары, исходя из его предпочтений. Важно! Стоит понимать, что 1С-Битрикс не собирает какие-либо личные данные, пароли или другую персональную информацию, в целом не получает открытых данных, а лишь хеш слепки.

Для того чтобы бигдата заработала на сайте необходимо установить и настроить специальный компонент на своем сайте. Настройка достаточно простая и гибкая, а сам шаблон компонента не сильно отличается от стандартных компонентов каталога.

Big Data - персонализация выдачи

Вот так выглядит результат за 2 дня работы модуля Big Data, который мы установили и настроили на одном из клиентских сайтов, которые мы обслуживаем.

Другой прекрасной особенностью введения данной технологии является то, что Битрикс умудрился объединить оффлайн и онлайн продажи. Теперь магазины, у которых правильно настроен обмен с 1С могут получить более точную персонализированную выдачу товаров для клиентов.

На первый год модуль Big Data Персонализация Битриксом будет бесплатным, но о дальнейшей его тарификации станет известно уже ближе к концу текущего года. Обслуживание такого сервиса требует больших расходов со стороны 1С-Битрикс, и наверняка он станет платным.

mit24.ru

MissShop&MisterShop: Внедрение сервиса 1С-Битрикс BigData

Здравствуйте, уважаемые владельцы интернет-магазинов на платформе 1С-Битрикс. Сегодня мы хотели бы вам рассказать об эффективном способе решения таких важных проблем интернет - магазинов как рост уровня продаж, повышение уровня конверсии и среднего чека. Одним из классических решений данных проблем является использование на страницах сайта вспомогательных блоков, предлагающих пользователям дополнительно приобрести сопутствующие или рекомендованные товары. Несмотря на то, что данный способ хорошо себя зарекомендовал, существуют некоторые проблемы, решение которых позволило бы значительно повысить его эффективность.

Главная проблема заключается в несовершенстве алгоритма, производящего подбор рекомендованных для пользователя товаров. Как правило, подбор товаров осуществляется путем простого анализа страниц товаров, которые посетил пользователь, или же путем простого поиска товаров со схожими характеристиками. К сожалению, данный метод не всегда будет эффективен и вероятность того, что посетитель увидит в рекомендациях действительно интересные для него товары не высока. Было бы намного лучше, если бы функционал подбора рекомендуемых товаров обладал более «умным» алгоритмом, учитывающим вкусы и предпочтения каждого индивидуального пользователя, анализируя сразу большие объемы разнообразных данных, а также сегментируя и сравнивая предпочтения разных посетителей. Разумеется, для своей реализации, такая непростая задача требует больших вычислительных мощностей и большого объема дискового пространства для хранения данных, но решение есть и оно уже интегрировано в наши решения MissShop&MisterShop!

Теперь стало возможным выводить рекомендации пользователям с учетом их личных вкусов и предпочтений, отметив всего несколько опций в панели администратора вашего сайта. Использование данного функционала никак не отразится на быстродействии и производительности вашего сайта, так как весь сложный анализ и вычисления осуществляются облачным сервисом «1C-Битрикс BigData», входящим в поставку системы 1С-Битрикс. Работая индивидуально для каждого сайта, сервис «1C-Битрикс BigData» анализирует посетителей, зашедших на ваш сайт: их интересы, совершенные покупки, сходство с другими покупателями, сохраняя при этом полную анонимность данных.

Преимущества использования сервиса «1С-Битрикс BigData» на вашем проекте:

Для проверки работоспособности сервиса в административном интерфейсе сайта присутствует специальная страница, доступная по адресу Маркетинг > Персонализация.

Если сервис «1С-Битрикс BigData» на вашем сайте отключен, то вам его необходимо включить. Для этого на странице сервиса вам нужно нажать кнопку «Приступить», после чего вы будете перенаправлены на страницу настроек главного модуля.

Или же вы можете сразу перейти на страницу настроек по адресу Настройки > Настройки продукта > Настройки модулей > Главный модуль. Чтобы включить работу сервиса, во вкладке «Настройки» страницы настроек главного модуля в блоке настроек «Сервис рекомендаций» установите галочку в поле «Использовать сервис рекомендаций товаров» и сохраните изменения нажатием кнопки «Применить».

Теперь для вывода персональных рекомендаций на страницах вашего сайта остается лишь отметить соответствующие опции в настройках решения «Миссшоп/Мистершоп». Перейдите на страницу настроек решения по адресу Miss Shop(Mister Shop) > Общие настройки. На странице общих настроек решения перейдите во вкладку «Настройка сайта», где в блоках настроек «Настройки главной страницы», «Настройки списка каталога», «Настройки детальной страницы» вы увидите опцию «Отображать блок BigData "Рекомендуем"», отмечая которую, вы активируете отображение блока персональных рекомендаций на соответствующих страницах сайта.

Блок персональных рекомендаций на главной странице сайта:

Блок персональных рекомендаций на странице списка товаров:

Обратите также внимание, что в блоке настроек «Настройки детальной страницы» доступны сразу несколько опций отображения блока персональных рекомендаций: «Отображать блок BigData "Рекомендуем" под детальной карточкой товара» и «Отображать блок BigData "Рекомендуем" в правой части детальной карточки товара». С помощью этих опций вы также определяете место расположения блока персональных рекомендаций на детальной странице товара. Соответственно, отмечая первую опцию, вы выведите блок под детальной карточкой товара:

Отмечая вторую опцию, вы отображаете блок в правой части детальной карточки товара:

Таким образом, сегодня мы рассказали вам о таком мощном и полезном нововведении в нашем решении «МиссШоп/МистерШоп», как внедрение сервиса «1C-Битрикс BigData». Использование данного сервиса позволит вам персонализировать рекомендации товаров для ваших посетителей, и тем самым значительно повысить показатели вашего интернет - магазина, приложив к этому минимум усилий.

Уважаемые клиенты, ждите наших новых обновлений и не забывайте следить за новостями и рассылками!

www.sotbit.ru

«1С-Битрикс BigData»: Персонализация - Новости - Блог

Сервис анализирует посетителей, зашедших на ваш сайт - их интересы, покупки, сходство с другими покупателями, при этом сохраняя полную анонимность данных. Работает индивидуально для каждого сайта.

Преимущества использования сервиса

  • Бесплатно для клиентов «1С-Битрикс»
  • Встроен в каждый интернет-магазин
  • Рост продаж от 10 до 30 %
  • Большой охват интернет-магазинов
  • Универсальный компонент для персонализации
  • Персональные рекомендации в «админке»
  • Открытый API для разработчиков
  • Конвертируйте в продажи лучше конкурентов!

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

    Возьмем обычный интернет-магазин. С 1000 посетителей вы получаете выручку 100000 рублей, но с такого же трафика можно получить на 10-30 процентов больше, если сделать интернет-магазин персональным для покупателя.

    Рост продаж от 10 до 30% - с новым сервисом!

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

    Повысить отдачу от интернет-магазина!

    Песонализация - один из самых важных факторов, повышающих конверсию интернет-магазина. Увеличить продажи на том же самом сайте, с тем же количеством клиентов - вот основная цель персонализации.

    По оценкам экспертов продажи в интернет-магазине можно увеличить на 5-10% только благодаря персонализации. Это отличный способ развить свой бизнес и заработать больше в условиях конкуренции.

    Виджеты в публичной части

    Универсальный компонент для персонализации

    Универсальный компонент персонализации может быть легко размещен на главной странице вашего интернет-магазина, в списке товаров, в детальной карточке товара, в корзине и на странице оформления заказа.Компонент является универсальным и легко поддается кастомизации - содержит открытый API для разработчиков.

    Виджет в карточке товара

    Виджет в списке товаров

    Виджет в корзине

    Персонализация на очереди! Скоро

    В дальнейшим рекомендации могут быть использованы для персонализированных рассылок вашим клиентам. Система будет добавлять к товару связанные с ним, потом выдавать клиентам подсказки. Например, при покупке мобильного телефона предлагать к нему чехол, зарядку и т.д.: «Возможно, вам понравится».

    Персонализация в «админке»

    Повышение эффективности работы менеджеров

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

    Получение такой информации непосредственно в карточке заказа значительно повышает эффективность работы менеджеров магазина.

    Как оценить эффективность сервиса?

    Значки у товаров в карточках заказа

    Эффективность использования сервиса подсчитывается по количеству товаров, проданных по персональным рекомендациям. Такие товары помечаются специальным значком в карточках заказов. Процент таких персонализированных продаж от общего количества легко подсчитать.

    Продажи с персонализацией

    Фактом покупки по персональной рекомендации считаются только непосредственные переходы с виджетов на главной странице, в списке или в карточке товара. Учитывается только текущая сессия. Возвраты того же клиента на сайт через некоторое время и покупки - не в счет. Сервис самонастраивается, подбирая самый эффективный алгоритм для каждого типа торгового каталога.

    Как обрабатывается Big Data

    Сложные вычисления!

    Анализ Big Data, персонализация и автоматизация - один из современных трендов. И одновременно, одна из самых сложных математических задач. За этим стоит довольно много вычислений, обернутых в понятную для пользователя оболочку-интерфейс облачного сервиса.

    Учитываются специфика бизнеса

    При создании облачного сервиса разработчиками учитывалась специфика бизнеса и цели интернет-торговли. Сервис умеет выбирать из огромных массивов Big Data именно ту информацию, которая поможет стать ближе к целевой аудитории интернет-магазина.

    Информация анонимна!

    Во всех операция при обработке Big Data особое внимание уделяется обеспечению технической безопасности этих данных, носителей, доступа к базам данных и т.д. Например, даже оставленный клиентом номер телефона не используется в явном виде - он хэшируется. 

    web-me.ru


    Prostoy-Site | Все права защищены © 2018 | Карта сайта