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

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

Я не пытаюсь убедить вас использовать свой подход. Скорее я хочу подробнее объяснить, что именно имелось в виду в первоначальном выступлении в Twitter.

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

Некоторое время назад в тренде были машинное обучение и искусственный интеллект. Каждый новый стартап занимался ML/AI. Не дай бог запустить проект без упоминания AI. Серьёзно, ты правда в бизнесе? Но вообще так быть не должно. Одной из технологий, которую я до сих пор высоко ценю, является SQL (Structured Query Language). Эта более чем 40-летняя технология сегодня так же актуальна, как и в 1974 году. Хотя за эти годы она несколько изменилась, но это такая же мощь, как и раньше.

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

Всегда весело слышать от основателей и потенциальных основателей стартапов, что они хотят использовать AI/ML для лучшего удержания клиентов и повышения их пожизненной ценности [суммарная прибыль или убыток от конкретного потребителя за период сотрудничества с ним — прим. пер.]. На самом деле им вообще не нужно машинное обучение или какая-то другая из этих причудливых технологий. Правильно написанный SQL — вот всё, что им нужно. В прежней жизни я писал SQL-запросы, чтобы извлечь ценную информацию и идеи из созданных данных. Однажды мы хотели найти «клиентов недели», чтобы поздравить и наградить их. Такой простой и неожиданный жест по отношению к клиентам всегда приводит людей в восторг и превращает их в евангелистов. Нередко можно увидеть сообщения в социальных сетях типа «Ничего себе, Konga только что наградила меня купоном на ?2000 как клиента недели. Не ожидал такого. Спасибо, ребята, вы лучшие».

Это оказалось более эффективно, чем тратить деньги на рекламу. Не поймите меня неправильно, традиционная реклама имеет место, но ничто не сравнится с рекомендацией от надёжного друга. Удивительно, но получить такую информацию оказалось довольно просто. Никакая причудливая технология не нужна, кроме старого доброго SQL. Чтобы выявить клиента недели, мы написали SQL-запрос, который находит в таблице заказов запись с самой большой корзиной заказов за неделю. Получив эту информацию, мы отправляем клиенту письмо с благодарностью и прикладываем небольшой купон/ваучер. Угадайте, что происходит дальше? 99% этих людей становятся постоянными клиентами. Мы никогда не нуждались в ML. Просто написали элементарный SQL-запрос — и получили эту информацию.

Однажды нужно было восстановить связь с клиентами, которые прекратили делать покупки. Поскольку этим занимался я, то написал SQL-запрос, который выбирал всех клиентов с датой последней покупки 3 месяца или более. Опять же, запрос удивительно простой. Получив эту информацию, отправляем по электронной почте симпатичное письмо: «Мы скучаем по вам, возвращайтесь, и вот ваш купон на Х найр» [денежная единица Нигерии — прим. пер.]. Эффективность отклика всегда была больше 50%. И всегда шквал сообщений в социальных сетях. На мой взгляд, эти две стратегии были и остаются намного эффективнее, чем тратить на рекламу в Google и Facebook.

Такой же подход мы применили к рассылкам новостей. Зачем рассылать общую рассылку, если можно попытаться персонализировать её? Решение? Я написал SQL-запросы для проверки содержимого корзины и извлечения отдельных элементов. Из этих элементов мы смогли сгенерировать бюллетень и таргетировать соответствующий контент. Скажем, человек купил пару обуви, солнцезащитные очки и книгу. В рассылке для него мы покажем обувь, солнцезащитные очки и книги. Это гораздо более уместно, чем посылать случайные вещи. Зачем посылать письмо с молокоотсосом мужчине, который только что купил пару кроссовок? Это даже не имеет смысла. Типичный уровень просмотра (open rate) большинства маркетинговых писем составляет от 7 до 10%. Но когда мы хорошо справлялись с работой, то видели показатель в районе 25?30%.

Это втрое выше отраслевого стандарта. Ещё одна приятная особенность этих писем — то, что мы обращались к людям по именам. Никаких «уважаемый клиент». Только «дорогой Селестин», «дорогой Омин» и так далее. Это придаёт всему оттенок человечности. Показывает наше участие. Всё благодаря старому доброму SQL, а не какому-то причудливому машинному обучению.

Мы помогли клиентам, которые по каким-то причинам не завершили заказы. Если они добавили товар в корзину, то имели намерение его купить. Чтобы помочь им с завершением заказа, я написал скрипт SQL, связал его с заданием CRON, и эта комбинация рассылала электронные письма клиентам, чьи корзины последний раз обновлялись в течение 48 часов или более. Угадай, что произошло? Это сработало. Мы отслеживали письма и сделали вывод, что люди действительно возвращались по ссылкам из них. Опять же, SQL-запрос оказался очень простым. Он выбирал непустые корзины с временем последнего обновления 48 часов или больше. Запустили ежедневный CRON на 2 часа ночи — время меньшей активности и трафика. Клиенты просыпаются и видят в почте напоминание о своей забытой корзине. Речь о повторном вовлечении клиентов. Ничего особенного, просто SQL, Bash и CRON.

Так как оплата по факту по-прежнему популярна, SQL опять пригодился. Если клиент отменяет заказы три раза подряд, он помещается в отдельный список «особого предупреждения». При следующем заказе ему звонят и спрашивают, действительно ли нужен заказ. Таким образом мы экономим время и нервы. Для таких клиентов оплату по факту вообще можно отключить, оставив только оплату по карте. В электронной коммерции логистика стоит дорого, поэтому есть смысл сосредоточиться на серьёзных клиентах. Нам не нужен ML или какой-то причудливый AI для этой проблемы. Опять же, достаточно хорошо написанного SQL.

Для заказов, не доставленных в обещанное время согласно SLA, мы тоже использовали SQL-запросы. Выбирались заказы с состоянием «Не доставлено» и датой заказа равной или более 7 дней, так как это стандартный срок доставки. Задание CRON отправляло письма и SMS таким клиентам. Понятно, что клиенты не апплодировали стоя. Но мы хотя бы заверили, что нам не наплевать и мы работаем над решением проблемы. Ничто так не раздражает, как задержка заказа.

Это конкретное решение также значительно повлияло на NPS [индекс потребительской лояльности — прим. пер.]. Опять же, старые добрые SQL и Bash.

Бонус: Sift Science удивительно хорошо предотвращает фрод. Но SQL тоже можно использовать. Если человек пытается расплатиться с трёх разных карт и эти карты отвергаются одна за другой, происходит что-то неладное. Первое и очевидное, что нужно сделать — временно заблокировать его учётную запись. Вы избавите от большой головной боли потенциальных владельцев карт. Не нужно хранить данные карты, просто регистрируйте в БД попытку проверки карты для определённого номера заказа. Для выявления таких очевидных вещей не требуется ML, а только хорошо написанный SQL.

Машинное обучение и искусственный интеллект — хорошие технологии. Во всяком случае, Amazon доказал эффективность своего бизнеса. Но если у вас маленький интернет-магазин с 1000?10000 клиентов, то можно обойтись SQL. Кроме того, специалисты по ML/AI стоят недёшево.

Буду рад услышать, что вы думаете.

Комментарии (215)


  1. peresada
    19.07.2018 08:52

    Напишите SQL, который определит возраст человека по фотографии (или вообще присутствие человека), плиз. Не те сравнения Вы приводите в статье. Вы привели примеры стандартного функционала любого интернет-магазина, и сомневаюсь, что кто-то использует AI\ML для тех же целей


    1. TheDeadOne
      19.07.2018 09:40
      +2

      Статья как раз о том, что AI\ML часто пытаются тащить в проекты со стандартным функционалом, где вполне хватает обычного SQL.


      1. x67
        19.07.2018 15:04
        +1

        Только дело не в SQLконкретно, а в обычной статистике. Понятие AI/ML более широкое, чем SQL и сравнивать их неуместно. Правильнее сказать: вам не нужно машинное обучение, вам хватит статистики с головой. А уж в excel это будет сделано или с помощью sql, это ваше личное дело.


        1. 0xd34df00d
          20.07.2018 23:03

          Но… машинное обучение и есть часть статистики…


      1. WinPooh73
        19.07.2018 16:06

        С использованием AI/ML всё становится лучше. Как десятью годами раньше с Bluetooth.


    1. AlexVist
      19.07.2018 09:49

      Приветствую! Думаю автор хотел на конкретном примере показать суть общей проблемы (читайте проблема как перевод задача). То есть далеко не все задачи требуют новомодных веяний для простой и эффективной реализации. Можно и иначе сказать известным выражением "Из пушки по воробьям".
      Вы же противопоставляете узкую задачу. Кстати, в таком примере, справедливости ради, нужно точно так же описать конкретно решаемую задачу с помощью выбранной технологии и описать ее эффективность. А то часто слышны абстрактные тезисы без доказательства. Что не справедливо при сравнении. Потому что противопоставляем конкретный пример, конкретный результат с теоретически возможным. Заранее приношу извинения, что делаю такое замечание. Тут нет неуважения к технологии и задаче, как и к тому, кто высказался.
      Никто не отрицает, что те или иные технологии наиболее эффективны при решении определенных задач. Или то, что технологии порождаются необходимостью решать определенные задачи. Но при этом дОлжно руководствоваться прагматизмом, а не фанатизмом. Увлечение одной из технологий не должно влиять на выбор при решении конкретной задачи. Я не отрицаю в том числе и процесс эксперимента и выбора из нескольких решений. Но в реальном мире все имеет не эмоциональные метрики, а вполне материально исчисляемые.
      Как пример могу сказать, что в конце производственной линии дешевле установить промышленный сканер шк, чем систему, которая по видео будет определять наличие шк, потом обрабатывать и передавать эти данные. Тут все просто: стоимость программного решения, скорость отклика, надежность считывания данных, стоимость дополнительного вычислительного оборудования. Есть и еще дополнительные минусы.)


      1. peresada
        19.07.2018 14:20

        Я полностью согласен, если посыл статьи был именно в этом — отлично, но на данный момент, сравнение SQL с ML больше похоже на пиар-ход для вывода статьи в топ в силу популярности ML

        Судя по минусам моего комментария, я был не прав в конкретной фразе «сомневаюсь, что кто-то использует AI\ML для тех же целей» и судя по другим комментариям действительно есть такие примеры. Так вот статью, где приводились бы примеры подобных «странностей» я прочитал бы с бОльшим удовольствием, нежели чем статью, где скорее пытаются паразитировать на хайпе той или иной технологии, чем открыть людям глаза


      1. edge790
        19.07.2018 15:53
        +1

        Но автор с тем же фанатизмом "впихивает" SQL, где лучше сработал бы ML и говорит что SQL справляется лучше.


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

        Мне покажут обувь, когда я купил обувь; очки, когда я купил очки и случайные книги, когда я купил книгу.


        В то же время ML мог показать товары, которые сочетаются с теми что я взял:
        шнурки для обуви, одежду под цвет кроссовок, книги, которые покупают люди, у которых такие же интересы и т.д.
        upd: те кто покупали телефоны в интернет магазинах сразу меня поймут — ты только добавил телефон в корзину, тебе уже советуют чехол, защитную пленку, PowerBank и автомобильную зарядку


        Мне кажется, рекомендательная система — это одна из сильных сторон ML.


        Смысл статьи как всегда: "не забивать гвозди отверткой и не закручивать молотком".


        1. gandjustas
          19.07.2018 16:18

          Рекомендательная система — пограничная область. С одной стороны алгоритм рекомендаций легко программируется на SQL. С другой стороны тонкая настройка уже требует ML инструментов — в частности нейронных сетей.


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


          1. Mike_soft
            19.07.2018 16:28

            Автор слишком безапелляционен.


            1. gandjustas
              19.07.2018 16:37

              Такой стиль, внезапно, заходит лучше, чем сухая аналитика.


        1. Jef239
          19.07.2018 21:36

          ты только добавил телефон в корзину, тебе уже советуют чехол, защитную пленку, PowerBank и автомобильную зарядку
          Это не ML, это тупой поиск на SQL принадлежностей, подходящей к данной модели телефона.

          ML — это когда в придачу к веревке советую купить мыло и табуретку. :-)

          Мне кажется, рекомендательная система — это одна из сильных сторон ML.
          А мне эти рекомендательные системы кажутся просто спамом. Ну кроме самых тупых, просто показывающих подходящие к гаджету аксессуары. Эти, тупые, эквивалентные условию в поиске — ещё хоть как-то полезны. А остальное — только тупо поржать.


          1. Neikist
            19.07.2018 21:46

            А вы им достаточно информации для обучения даете? У меня почти вся реклама релевантная.


            1. Jef239
              20.07.2018 07:40
              +1

              Угу, вы верно угадали, почему ML бесполезны. Если иметь одну ML на все магазины и обучать её 10 лет особенностям каждого покупателя — толк будет. Если данных меньше — то не справится не только ИИ, но и живой человек-психолог.

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

              Может быть когда-нибудь что-то прилично заработает у Яндекса или Гугла. Но пока что качество — ниже плинтуса.

              Причем раздражает — безумно. Если я искал (и купил линолеум) — яндекс начинает подсовывать мне этот самый линолеум. А нафига он мне, если я его уже купил? Лучше уж тупая сегментация по полу, возрасту и доходам — там иногда что-то интересное бываеь.


        1. mspain
          20.07.2018 09:17
          +1

          >ты только добавил телефон в корзину, тебе уже советуют чехол, защитную пленку, PowerBank и автомобильную зарядку

          Для этого не нужно ML, скорее всего аксессуары забиты в базу как аксессуары к телефону.


    1. andyshark1974
      19.07.2018 10:01

      Речь скорее идет не про это. Автор имеет ввиду то, что достаточно большая часть людей используют новомодные примочки для решения элементарных задач. Которые можно решить по другому (в его примерах через SQL)

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

      О чем умалчивает автор при решении своих проблем — надо вести документацию по тому как и что делается. Это основная затыка такого метода решения проблем. Дело в том, что я сам пользуюсь подобным подходом, и у меня много заданий стоит в CRON-е. Вот их надо как-то систематизировать.


      1. niko1aev
        19.07.2018 16:48

        в Rails проект cron управляет gem whenever, и вся систематизация заданий хранится в файле
        schedule.rb, где они разбиты на группы, модули и содержат комментарии


        1. Fedcomp
          21.07.2018 09:23

          в Rails лучше юзать sidekiq-scheduler чтобы избавиться от недостатков крона. Очередь задач более надежна.


      1. Goldseeker
        19.07.2018 20:17

        Есть такой момент, что при использовании ML документацию вести невозможно, нельзя понять почему после обучения нейросеть дает именно такой вывод на такой набор исходных данных. Не то чтобы это плюс. В результате имеется черный ящик, который работает, вроде бы, но это не точно.


        1. lair
          19.07.2018 21:06

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

          Во-первых, почему вы приравниваете ML к нейронным сетям? Есть и другие алгоритмы, в том числе полностью объяснимые (иногда объяснимость принятого решения является требованием).


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


          1. WTYPMAH
            19.07.2018 21:14

            В-третьих, сейчас уже есть методы, которые поясняют, почему сетка делает такие выводы на конкретную точку данных ;)


    1. aPiks
      19.07.2018 14:10
      +1

      Да суть-то в том, что современные айтишники штопают обычные вещи с использование модных технологий не задумываясь даже над вопросом «зачем» эта технология там нужна.
      Недавно увидел лэндинг с парой фотографий и контактной формой. И этот лендинг написан на Ангуларе!
      Лэндинг был совершенно обычный, хороший верстальщик такой за пару дней сделает с нуля на чистой троице.
      А как вам магазин с оборотом 300 000 тыс рублей в месяц, основанный на ВООКОММЕРЦ, но с машинным обучением для анализа спроса? Зачем?
      И таким проектов масса. Я понимаю, что часть из них — просто выкачивание денег из заказчика, но остальные — явно глупое следование трендам.


      1. daager
        20.07.2018 07:55
        +3

        Самообразование не рассматривается? Я недавно хотел уволиться, директор очень не хотел отпускать, дал другой проект не особо технически сложный, но сказал, что могу там делать всё что хочу, если нужно для развития.


    1. Zanak
      19.07.2018 21:39

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


      1. WTYPMAH
        19.07.2018 23:23

        И что же такого «неосознанного» в ИИ?)


        1. Zanak
          20.07.2018 05:17

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


          1. lair
            20.07.2018 11:39
            +1

            А ведь человек пытается скопировать свой мозг.

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


            1. Miron11
              21.07.2018 05:37

              Подавляющая часть современного ML не имеет никакого отношения к тому, как работает человеческий мозг.


              Не исключено, что он знает о том как Вы работаете намного больше, чем наоборот. ( шутка ).

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


              1. lair
                21.07.2018 11:01

                По этой причине машинное мышление намного более совершенно.

                Эээ… нет. Чтобы машинное мышление было более совершенно, чем "неоптимальное" человеческое, оно (а) должно быть оптимальным и (б) должно вообще существовать. Ни то, ни другое сейчас не выполняется.


                Мотивация машины не может отойти в сторону от задачи, для переоценки критерия.

                У машины сейчас вообще нет мотивации.


                Задача бизнеса деньги.

                Первая, но не обязательно единственная. Соответственно, и алгоритму тоже ставится не один критерий, но несколько.


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

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


                1. Miron11
                  21.07.2018 13:07
                  -2

                  В споре рождается истина.

                  Что касается слова «санкции», то здесь выгода это важнейший параметр. Если убийство многих людей Ирака привелу к возникновению большого количества очень состоятельных Американцев, то санкции это как раз то «волшебное слово», описывающее механизм уничтожения одних людей, с целью принесения выгоды другим людям. Машины, в этой ситуации, с их неизмеримыми достоинствами могут помочь получателю выгды увеличить эти самые прибыли, при чем очень существенно. Ливия замечательный пример подобной итерации. Издержки на отнятие Ливийской нефти в пользу Американских выгодополучателей были значительно уменьшены, а выгоды значительно увеличены. Так например, один месяц финансирования машины уничтожения и подчинения Ирака стоили США 10 миллиардов долларов в месяц. В Ливии вся операция от начала до конца обошлась в 3-5.

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

                  Наверное единственное в чем машина уступает человеку, это как раз в мотивационном аспекте.

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

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


                  1. lair
                    21.07.2018 13:09

                    Наверное единственное в чем машина уступает человеку, это как раз в мотивационном аспекте.

                    Далеко не единственное.


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

                    То есть тот факт, что компьютеры до сих пор не умеют мыслить, вас совершенно не волнует?


                    1. Druu
                      21.07.2018 22:17

                      То есть тот факт, что компьютеры до сих пор не умеют мыслить, вас совершенно не волнует?

                      Волновать должен тот факт, что на данный момент никто даже не знает, что такое "мыслить".


        1. Nick_Shl
          20.07.2018 08:13

          А вы в состоянии объяснить, почему нейросеть дала такой ответ а не другой? В четких алгоритмах есть понимание как они работают. Если такое понимание в нейросеть? Или это просто "магия чисел"?


          1. WTYPMAH
            20.07.2018 12:33

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

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

            В-третьих, любая сетка — это набор алгоритмов и вычислений, которые основаны на жестких правилах, которые разработаны человеком. И ничего магического там нет.

            В-четвертых, если хотите понять «как» — возьмите данные на входе, перемножте на все веса всех слоев и получите 100% точный ответ, почему получен такой результат. Сможете ли вы осознать почему именно такие веса использовались — нет, и только потому, что на обучение подавалось слишком много данных, чтобы человек физически смог сам выявить в них закономерности. Но ML для того и создан, чтобы обопщать и обрабатывать большие объемы данные, которые не может обработать человек. Но по четким правилам и алгоритмам. Никакой магии там нет.


            1. Druu
              20.07.2018 12:44
              +1

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

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


              1. WTYPMAH
                20.07.2018 15:11

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

                2. Стохастика определяется параметрами RNG. Установите констатное значение RNG — получите повторяемый процесс обучения сети.

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

                4. Есть целвеая функция, есть критерии / метрики / методы её оценки. Правильное определение целевой функции, контроля её допущений и метрик оценки — и любой аналитик имеет полный арсенал методов убедиться в том, что он на выходе получил ожидаемое.

                Мой ключевой месседж — то, что мы не можем что-топовторить (ввиду физических ограничений) не означает, что мы не понимаем, как это делает сетка.


            1. 0xd34df00d
              20.07.2018 23:07

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

              Не только. Сравните интерпретируемость нейросетей с интерпретируемостью random forest'а, например.


          1. WTYPMAH
            20.07.2018 12:44
            +1

            Просто пример: вы сможете в уме разделить 32432749324 на 234239408? Врядли, по результатам калькулятора ведь доверяете, правильно. И вы даже можете не знать, как он это делает — в столбик, остатками и т.д. Но вопросов не возникает. Изучите теорию нейросетей и все вопросы отпадут сами собой


          1. 4tlen
            20.07.2018 13:39

            Нейросеть — нет. А вот латентно-семантический анализ или градиентный бустниг над решающими деревьями вполне понятные (не мне =) ) алгоритмы, которые тоже относятся к ML.


    1. robotobor
      20.07.2018 07:55

      Вообще, согласен. Зачем заминусовали Вас не понятно. Действительно, обычный функционал на основе данных можно реализовать при помощи SQL. Вся соль ML заключается в том, что когда логики с данными уже много, т.е., например, логика зависит от поведения клиентов, и это поведение иногда меняется, то логика на SQL над этими данными устаревает быстрее, чем вы реагируете на это поведение. Далее вы переписываете логику над данными, подстраивая ее под новое поведение клиентов, возможно, для вас это будет дорого. Это то, что касается классики работы с данными, например, с использованием SQL. Если же вы используете ML для реагирования на поведение клиентов, то при изменении поведения, на самом деле во всей внутренней математике этого самого ML логика выстраивается сама на основе этих данных, и не нужно ручками ничего переписывать, мы вовремя среагировали на поведение клиентов и попали в ЦА. Поэтому если данных не очень много, и проще использовать SQL -используем. Если данных много и SQL использовать затратно, а также интересно не явное поведение клиентов — используем ML. Примерно так.


    1. ganqqwerty
      20.07.2018 15:22

      дык а причем тут ML, это лишь один из методов. У нас в ЛЭТИ отдельный курс был по распознаванию лиц, нормально все распознавали


  1. rub_ak
    19.07.2018 08:54
    +5

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


    1. Mike_soft
      19.07.2018 09:24

      страшно подумать, что будет предлагать «SQL-запрос», если купить две пары кроссовок, и три раза солнцезащитные очки…
      а вот у ИИ есть интересные варианты…
      Хотя и полностью отвергать простые запросы (т.е. «старые известные технологии») нельзя.


      1. Alexmaru
        19.07.2018 09:39
        +1

        А почему не составить таблицу правил по каждому типу товаров?


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


        1. Druu
          19.07.2018 09:49

          А если у вас тысячи наименований и при этом есть нетривиальные корреляции? Например, если человек купил А и Б, то он склонен купить С, но если при этом он еще купил Д, то вместо С надо Е.
          Кто будет эти правила забивать, и главное, откуда он вообще их возьмет?


          1. Alexmaru
            19.07.2018 10:15

            Возьмёт он их, собственно, из статистики и выберет главное. То, какая реклама сейчас реально подсовывается, а это просто такие же товары, говорит о том, что им плевать на такие корреляции, оно итак работает. Зачем тогда думать над сложной математической моделью, если можно составить простую логическую?


            И да, сложные корреляции на ходу — это энергозатратно.


            1. Druu
              19.07.2018 13:01
              +1

              Возьмёт он их, собственно, из статистики и выберет главное.

              Ну так это и есть machine learning. Он же включает не только модные нейронки, но и подходы вроде байесовских сетей или экспертных систем, которые уже десятилетия назад себя зарекомендовали. С-но, ваше предложение ниже:


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

              это типичный ml.


              Зачем тогда думать над сложной математической моделью, если можно составить простую логическую?

              Ну будет не сложная мат. модель, а простая. В чем разница?


          1. 4tlen
            19.07.2018 10:54

            >Кто будет эти правила забивать, и главное, откуда он вообще их возьмет?

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


          1. anprs
            19.07.2018 13:44

            del


          1. klirichek
            19.07.2018 18:27

            Для нетривиальных корреляций как раз уже нужен AI. Потому что sql для этого слишком structured. Я понимаю, статья о том, что в элементарных вещах его вполне достаточно. Иными словами, можно сделать запросы на основании имеющегося жизненного опыта и наблюдений. Но с AI всё же интереснее, покуда эти самые наблюдения и опыт он обретает сам, без участия программиста. Например, если человек купил вино и шоколад но не купил презервативы — на основании статистики он может через 40 недель предложить ему памперсы и детское питание (а может и не предложить).


        1. Mike_soft
          19.07.2018 09:52

          вручную — замучишься.
          я вот навскидку могу добавить правила типа «купил очки и/или кроссовки» — предложить шорты/панаму/плавки. покупал раньше детские кроссовки и купил очки — предложжить детские очки. купил детские плавки/купальник или надувной круг -предложить водный пистолет. и еще 100500 различных подобных правил.


          1. Alexmaru
            19.07.2018 10:17

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


            1. Mike_soft
              19.07.2018 10:27

              а через год меняется один из поставщиков, или из ассортимента выводится (вводится) другая группа, и все переписывать заново…
              кстати, хорошая идея для самообучения. только где бы взять датасет…


              1. Alexmaru
                19.07.2018 10:32

                Ну вводится группа, ну добавляет кто-то правило. Это же не страшно? Просто, реальные правила, которые можно изменить — лучше закрытого механизма AI, который полностью понимает (ладно, это шутка) только тот, кто его написал. Ну и не нужно думать о каких-то хитрозакрученных правилах, потому что в мире сейчас даже простые слабо применяются.

                Датасет — он в статистике посещений же. Из того же piwik это можно выдрать, если вы про какой-то маленький локальный.

                Идеально было бы выпустить библиотеку с базовыми «если… то», чтобы все использовали её как стартовый шаблон. Что-то типа «задалбывают глупые предложения? Сделай коммит!».


                1. Alexeyslav
                  19.07.2018 11:04

                  AI масштабируется, а ваш подход не масштабируется. С ростом магазина просто потонете в этой бессмысленной работе. Вот у вас к примеру 10000 SKU в магазине, и каждый день 1000 из них выбывает и столько же прибывает, их всех надо сопоставить ВРУЧНУЮ с оставшимися(обычный SQL вам не поможет отличить мочалку от тазика или очки от футболки) и придумать правила комбинаций. Это работы на целый штат сотрудников. При росте магазина становится всё только хуже. И библиотеки не помогут, поскольку между магазинами может не быть вообще каких-либо общих SKU и информация с другого магазина вам ничем не поможет.
                  Веселья добавляет ещё групповая покупка — когда несколько человек для удобства покупают через чей-то один аккаунт совершенно разные товары, которые создают очень интересные комбинации вплоть до несовместимости.


                  1. Alexmaru
                    19.07.2018 11:14

                    1000 категорий выбывает? Или всё-таки товаров? Я говорю о категориях, вы проставлении правил каждому товару.

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

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

                    Есть крупные агрегаторы, типа амазона. Есть местячковые магазины, типа Tesco, Euro и.т.д. У них этот штат уже есть, и возможно амазон пользуется и AI, и списками, но больше всего он полагается на «люди купившие это, так же купили». Есть маленькие магазины, у которых никогда не будет того самого роста.

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

                    Так о каком именно типе магазина вы говорите?


                    1. lair
                      19.07.2018 11:44

                      возможно амазон пользуется и AI, и списками, но больше всего он полагается на «люди купившие это, так же купили».

                      Ну так FBT — это один из стандартных кейсов для ML, потому что зависимости выявляет машина.


                      Есть маленькие магазины, у которых никогда не будет того самого роста.

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


                  1. Mike_soft
                    19.07.2018 11:17

                    ибо придется класссифицировать мочалку и тазик по куче разных ортогональных признаков (которые надо еще придумать).
                    а совместная покупка действительно добавит веселья — и магазину, и покупателю…


                  1. striver
                    19.07.2018 11:20

                    Вот, это ближе к ответу. Вопрос в масштабах. Если это новый мелкий бизнес, то SQL + клиент с разного рода алгоритмами — это чуть лучше, чем бумага и excel. Но, это работает, если объемы не большие. В том случае, если за первый год, бизнес-модель показала свою состоятельность, то можно и нужно думать внедрять ИИ с МО. В целом принятие таких решений может занять до 5 лет. А сразу лепить ИИ/МО — это слишком сложно. Да, если уставной капитал исчисляется миллионами долларов и планы расписаны на 10 лет, то SQL — это будет потерей времени и ресурсов.


                1. Mike_soft
                  19.07.2018 11:13

                  да-да-да! и либо скоро назойливая реклама исчезнет как класс, либо будет «купил кроссовки — увеличь пенис, и выучи английский !»


                  1. fukkit
                    19.07.2018 19:40

                    Если кроссовки брендовые, пенис увеличивать вовсе не обязательно.


                1. 4tlen
                  19.07.2018 11:15
                  +1

                  Какую библиотеку? 100500 лет работают паттерны «С этим товаром смотрели» и «С этим товаров купили». Нафига усложнять все? Статья именно об этом: прежде чем пилить блокчейн с диплернинг на бигдате, стоит повспоминать/подучить проверенные практики.


                  1. Alexmaru
                    19.07.2018 11:19

                    Для отсеивания шлака из «с этим товаром же», который туда 100% попадает. Но в принципе, да.


                    1. 4tlen
                      19.07.2018 11:51

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


                      1. Mike_soft
                        19.07.2018 11:55

                        отсюда вопрос: с чем легче «договориться» маркетологу?


                        1. 4tlen
                          19.07.2018 12:06

                          Не понял вопроса.


                          1. Mike_soft
                            19.07.2018 12:11

                            для какого инструмента маркетологу легче поставить задачу?
                            маркетологи — люди своеобразные… вот сколько они мне в свое время (после я просто перешел в другую область) задач не ставили — формализовать задачу было порой весьма нетрииально… сейчас вот захотелось поднять старый список задач, и попытаться решить их на ML/


                            1. 4tlen
                              19.07.2018 13:28

                              >для какого инструмента маркетологу легче поставить задачу?

                              Опять не понял =)
                              Он, маркетолог, работает со статистикой и выдает рекомендации. Как они реализуются — вопрос разработки.

                              >попытаться решить их на ML

                              Алгоритмические рекомендательные системы (SQL) на вход получают только статистику. Маркетолог — статистику, свой опыт и здравый смысл.

                              ML это попытка заменить маркетолога и как-то прикрутить на вход «опыт». А «здравый смысл» задается в исключениях. Например не стоит предлагать холодильник через пол года после покупки холодильника. Или ласты зимой, несмотря на то что летом шорты+ласты заходят на ура, тогда как зимой шорты покупаются для спортзала и ласты в предложке уже безумство, а не cross-sell.

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


                              1. Mike_soft
                                19.07.2018 13:57

                                зато если «зимой плавки+чемодан» — то можно предложить и ласты. а холодильник через пол-года — это примерно как кроссовки через три месяца…
                                в общем, попробую в самообразовательных целях попытаться — может, чего и получится…


                                1. 4tlen
                                  19.07.2018 14:05

                                  >зато если «зимой плавки+чемодан» — то можно предложить и ласты.

                                  Нельзя. И маркетолог, и SQL движек это поймут — движек из статистики (предлагали, не заходит), а маркетолог из опыта (на курорт со своими ластами не ездят). ML тоже научится, но сроки…

                                  В академических целях это безусловно классный опыт. Удачи.


                                  1. lair
                                    19.07.2018 14:21

                                    ML тоже научится, но сроки…

                                    Те же, что и у "движка" — если есть статистика "предлагали — не заходит", то она уже есть.


                                    1. 4tlen
                                      19.07.2018 14:38

                                      Тогда зачем вкладываться в ML, если можно дешевле в движек?

                                      При подходе «конверсия B при А+В >5% — кидаем в рекомендации» ML не нужен. Он нужен в случае если мы хотим «конверсия B при А+В <2%, но вот конкретно этот персонаж/сегмент конвертнется с вероятностью >80% — кидаем в рекомендации». Вот это пример «обученного». Для этого нужен датасет именно этого человека/сегмента.

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


                                      1. lair
                                        19.07.2018 14:42

                                        Тогда зачем вкладываться в ML, если можно дешевле в движек?

                                        Во-первых, еще надо доказать, что дешевле. Я вот даже не буду пытаться на SQL посчитать feature matrix для рекомендаций, а уж тем более — построить по нему расстояния, хотя на питоне это работает только в путь.


                                        А во-вторых, это вообще некорректное противопоставление, потому что когда вы вытаскиваете закономерность из существующей статистики автоматически — это уже ML. A и B — признаки, конверсия — существующие показания, 5% — порог отсечения для классификатора.


                              1. 4tlen
                                19.07.2018 13:57

                                Но и тут опять все упирается в сегментирование трафика: в северном климате не работает предложка, которая на ура заходит в южном. Например. Откуда ML возьмет это исключение? Маркетолог задаст. Так, стоп, мы ж хотели заменить его на ML…

                                Да, он конечно же обучится сегментировать сам. Со временем. Но это уже вопрос готов ли бизнес ждать.


                              1. Neradivy
                                20.07.2018 13:59

                                А «здравый смысл» задается в исключениях.
                                Наверное, не только в них.
                                Маркетолог может сформулировать рекомендацию вида «с этим товаром обычно забывают купить...»
                                А такой ML-алгоритм, по-видимому, невозможен. Хотя не знаю, как у него коммерческая эффективность.
                                Но вот к только что купленному принтеру предложить дополнительный комплект картриджей — казалось бы, предсказуемая глупость, которую МО на статистике не сделало бы, а на самом деле постобслуживание информацией о продукте).


                  1. gandjustas
                    19.07.2018 16:12

                    Для корректного ранжирования "с этим товаром смотрели" и "с этим товаром покупали" как раз ml (а конкретно — нейронные сети) нужен.


                1. Hardcoin
                  19.07.2018 13:14

                  Просто, реальные правила, которые можно изменить — лучше закрытого механизма AI,

                  Довод из восьмидесятых. Экспертные системы (с ручными правилами) заняли свою узкую нишу, но мало кто уже скажет, что они лучше ML.


                  Но опять же, хотите делать экспертную систему — пожалуйста, пробуйте. Потом напишете на Хабре историю успеха (имхо, вряд ли).


                  1. AlexVist
                    19.07.2018 15:27

                    Маленькое замечание. Я скажу что пока нельзя утверждать, что ML лучше старых экспертных систем из 80-х. )
                    Не мало ведь уже критических статей на тему ML. Так же не приведете пример истории успеха для ML. Не далее как вчера упоминался Watson IBM в несколько ином свете. А ведь замахнулись на медицину.
                    Да и нам всем тут не нужно меряться "длиной"… Скорее поразмыслить ПОЧЕМУ? Ведь мы все (надеюсь) стараемся сделать не только ради тщеславия, но и ради пользы свои продукты. Поэтому анализ почему не взлетело или не взлетает очень даже необходим.
                    Надеюсь никто не станет возражать против того чтобы не изобретать колесо заново? Прошлый опыт интересен. Более того, и в 80-х были идеи, которые не получили должного воплощения в автоматизированных системах. Не созрели еще технологии. А просто взять и отмести не изучив… Помнится в университете мы проходили основы основ математики, которым сотни лет.
                    И, как всегда, из практики. Несколько раз видел как разработчики изобретали квадратное колесо. Потом они уже начинали изобретать восьмигранное… и все еще деревянное. На следующей итерации они изобретут 16-ти гранное. Далее не буду продолжать. Когда они доберутся до каучука один Бог ведает. Боюсь, могу и не дожить. А причина в том, что существует убежденность в том, что они создают нечто уникальное и чужой опыт им не нужен. Хотя, очевидные методологии и техники уже эксплуатировались еще до их рождения. Хуже, что и слышать они не хотят об этом.


                    1. Hardcoin
                      19.07.2018 15:55

                      Я скажу что пока нельзя утверждать, что ML лучше старых экспертных систем из 80-х. )

                      Можно, конечно. В рамках обсуждаемой задачи (рекомендательная система для интернет-магазина) кто сейчас вообще будет использовать экспертную систему? Есть истории успеха? А простейшую коллаборативную каждый каждый третий, наверное (или более быстрые варианты).


                      Вот серьезно, кто-то вручную задаёт правила? Хотел бы узнать, если такие примеры есть.


                      1. AlexVist
                        19.07.2018 16:14

                        Я приводил пример медицины. ) Есть. История успеха, скажем, была. Мне было очень интересно изучить. Тем более, что я общался с реальными участниками событий. В том числе и с людьми, которые занимались вопросами со стороны государства. В том числе есть и истории, когда кто-то получил и гос. награду…
                        И, кстати, только одна из историй, когда произошел взрыв и использование экспертной системы позволило спасти многие жизни уже достаточен. Не все ведь меряется деньгами.)


            1. Hardcoin
              19.07.2018 13:11

              И получается проект на год и десяток миллионов. Вам никто не запрещает так делать, конечно. Почему так обычно не делают (ну я не слышал про такие истории)? Коллаборативную фильтрацию можно внедрить за пару месяцев силами одного программиста.


            1. Paskin
              20.07.2018 07:19

              Тут как раз AI выгоднее — можно искать корреляции автоматически. Но AI в этом контексте — это не нейронные сети, а вполне детерминированные алгоритмы кластеринга, сегментации и т.п.


              1. 0xd34df00d
                20.07.2018 23:13

                Нейронные сети не сильно менее детерминированы, чем алгоритмы кластеринга, скажем.


          1. klirichek
            19.07.2018 18:29

            А можно и не вручную. Простым запросом на тему "с этим товаром также часто покупают".


            1. Paskin
              20.07.2018 07:22

              Это называется кластеринг и относится-таки к области AI/Big Data. При этом AI != ML, т.к. в общем случае никакого обучения нет.


              1. lair
                20.07.2018 11:41

                Вы никогда не слышали термин unsupervised learning? Если что, алгоритмы кластеризации сейчас принято относить именно туда.


                1. Paskin
                  21.07.2018 09:14
                  -1

                  Это такая мантра для инвесторов, а на деле — примерно как утверждение что теория асимметричной криптографии (или вообще — простых чисел) относится к криптовалютам.


                  1. lair
                    21.07.2018 11:09

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


        1. lair
          19.07.2018 11:34

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


      1. Kirhgoff
        19.07.2018 10:38

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


      1. Salabar
        19.07.2018 16:38

        Чтобы ИИ научился предлагать что-то интересное, нужно данных на сотню терабайт.


      1. riky
        19.07.2018 18:25

        вполне подойдет аналог ф-ии «с этим товаром покупают...» для работы достаточно sql


      1. Zanak
        20.07.2018 06:25

        Если говорить об ИИ в рамках одного, пусть и очень большого интернет магазина, у ИИ шансов сделать точное предложение едва ли не больше, чем у SQL запроса. Из того, что я купил кроссовки, совсем не следует, что я занимаюсь спортом, а если перехал в гористую местность, совсем не значить, что я встану на горные лыжи.
        Другое дело поисковые системы. С ними мы общаемся чаще, и спектр запросов шире. Здесь есть где разгуляться аналитикам, и SQL здесь явно недостаточен.


        1. rub_ak
          20.07.2018 09:35

          Или быть гуглом или фэйсбук который знает каждый ваш шаг и каждое действие, как и яблоко и пытающийся также влезть в последний вагон Амазон.
          Сам по себе поиск тоже не так много может знать, наглядный пример это директ. (Или яндекс совсем отстал от жизни.)


    1. Alexeyslav
      19.07.2018 10:38

      Потому что с ненулевой вероятностью человеку нужна будет и ВТОРАЯ пара обуви, не обязательно такая же как купил — для занятия спортом, велосипедная или зимняя. То же самое касается и очков. Одни купил, но вероятно через месяц захочет другие очки уже не тёмные а прозрачные для езды на велосипеде. Или первые поломал. Обувь, очки — это считай расходники. Их будут покупать и покупать…


      1. Mike_soft
        19.07.2018 11:23

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


        1. striver
          19.07.2018 11:45

          купил кроссовки для баскетбола — аксессуары для баскетбола и вторая пара через 3 месяца или когда скидка. Купил 2 пары туфель — предложение через время, когда есть скидка. Геометрическая прогрессия — это какой-то средний-крупный опт. Эти все алгоритмы — очень своеобразные ибо держаться на вкусах и предпочтения. А о вкусах не спорят. И говорить, что при покупке кроссовок тебе не понадобятся шлепанцы — не корректно. На самом деле, может понадобится очень много, о чём даже сам человек не догадывается.


          1. Mike_soft
            19.07.2018 11:54

            для того, что бы определить, что «кроссовки для баскетбола» — они должны быть как-то классифицированы.

            «купил кроссовки — начинаем предлагать валенки и шлепанцы» <> «говорить, что при покупке кроссовок тебе не понадобятся шлепанцы — не корректно»
            я про то, что «купил кроссовки — предлагаем еще кроссовки» глупо, но «купил кроссовки — предлагаем все, кроме кроссовок» еще хуже.
            вот я реально позавчера купил кроссовки. сегодня мне нужна зубная паста. это не свяжет ни SQL, ини AI. а вот предложить средства для чистки кроссовок — вполне по силам обоим.


            1. striver
              19.07.2018 12:24

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

              а вот предложить средства для чистки кроссовок — вполне по силам обоим.
              а я о чем писал?
              купил кроссовки для баскетбола — аксессуары для баскетбола и вторая пара через 3 месяца или когда скидка.
              Это барахтанья о том, что кто-то предложил не правильный алгоритм, в общем и целом — просто вкусовщина. Не эффективно для 99% — так и быть, но даже 1% — это много. Тупая раздача листовок — это 3% эффективности. Но они работают и их раздают.


          1. x67
            19.07.2018 19:54

            Например, арбуз. Кроссовки то баскетбольные, а мяч круглый. Арбуз тоже (с некоторыми допусками, конечно)


    1. Mnemonik
      19.07.2018 11:51

      Плюс это один из тех очередников на особое место в аду из-за которых пришлось изобретать режим «ночной, не беспокоить» на телефонах пару лет назад. Емейл, у него, ссссука, по крону в два часа ночи, чтобы покупатель проснулся и обрадовался… прямо руки тянутся лично дров ему купить.
      Вообще вся статья написана каким-то махровым ретроградом. Нет, я конечно согласен с основным посылом о том что не надо пихать AI/ML везде где только можно, но примеры которые он приводит уж совсем из девяностых интернета. Так и кажется что следующее предложение упомянет скрипты на перле в /cgi-bin/ для apache с нежностью и теплотой, как родных детей. Все-таки крайности это плохо с какой бы стороны они не стояли. Аргументировать крайность использования AI/ML там, где это не нужно, крайностью «в наше время у всех было по 640 килобайт памяти и этого было достаточно!» — тоже аргумент так себе.


      1. MTyrz
        19.07.2018 13:38

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


      1. Lissov
        19.07.2018 17:08

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

        Я сначала тоже так подумал. А потом увидел что они измеряют результат и получают таки увеличение продаж. Значит это таки работает, им очевидно важнее вернуть 25% своих клиентов, и плевать на остальные 75% которые и так ничего бы не купили.

        К тому же, может быть это опыт страны в которой интернет на телефоне у менее 1% населения (не пинайте, я не знаю как там в Нигерии). Если 99% клиентов получат письмо утром — то всё отлично (как и написано в статье).


      1. wataru
        20.07.2018 11:16
        +1

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

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


    1. vlivyur
      19.07.2018 13:17

      нафига мне ещё одни очки и вторые кроссовки, если я их только что купил
      Они вам нужны. Только не сейчас, а чуть позже. И это тоже можно «предсказывать» с помощью SQL.


      1. nikolayv81
        20.07.2018 19:02
        +1

        Часто проблема в том что когда они мне станут нужны этой модели уже не будет (не знаю в чём смысл смены моделей по два раза в год, но ни одной модели удобных для меня кроссовок через год после покупки найти было невозможно. :)


    1. nikitasius
      19.07.2018 13:43

      Через SQL делается интересный запрос, через который вытягивает все те товары, которые покупают люди тех же +- критериев как текущий покупатель после того, как (если данных много) купили А и Б во время года В.
      Уверен "ИИ" жирный скрипт от "рога и копыта" будет стоить дороже, чем тот SQL, тратить в 5 раз больше ресурсов, но выполнять то же.


      1. lair
        19.07.2018 13:56

        Самое интересное в этом "интересном запросе" — это пункт "тех же критериев".


        1. Alexeyslav
          19.07.2018 14:02
          +1

          Иными словами… рисуем_сову_в_два_этапа.jpg


        1. nikitasius
          19.07.2018 19:18

          Ну, так голова для чего?
          В правильно спроектированной базе я не вижу проблем или тормозов для поиска той или иной инфы.
          Далее есть Oracle с PL/SQL.


          1. lair
            19.07.2018 19:21

            Недостаточно правильно спроектировать БД, нужно еще правильно наполнить ее данными. А за это отвечает далеко не тот, кто БД проектировал.


            Отдельным пунктом мне интересно, как именно вы будете определять, какие из k "критериев товара" должны совпадать для "тех же" товаров, а какие — нет, особенно учитывая, что категорий товаров n, и у каждой категории "критерии", очевидно, разные.


            1. klubben
              19.07.2018 21:19

              какие из k «критериев товара» должны совпадать

              Ну в статье же сказано: купил кроссовки — будем предлагать еще больше кроссовок


          1. Druu
            19.07.2018 19:25

            В правильно спроектированной базе я не вижу проблем или тормозов для поиска той или иной инфы.

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


            1. nikitasius
              19.07.2018 21:43
              -1

              Да, ща, сделаю, сек, падажи меня тут.


    1. apelsyn
      19.07.2018 14:03

      Человеку можно рекомендовать то что покупали другие пользователи с этими товарами. Эти выборки можно делать с помощью SQL.


      1. 0xd34df00d
        20.07.2018 23:28

        Так скоро до коллаборативной фильтрации на SQL дойдём.


    1. Fox_exe
      19.07.2018 14:59

      За это надо расстреливать на месте.

      С чего вдруг?
      Не вижу проблемы, если предлагается не просто тотже товар, а его альтернативы (Кроссовки -> шлёпанцы, тапочти, обувь на следующий сезон (Ботинки, например)).
      Или просто другие модели. Вполне возможно, что чтото понравится больше, чем то, что купил.
      Или клиент захочет купить обувь для детей/друзей/родителей/себя…

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

      В общем — никакого ИИ. Только собственная голова на плечах и умелое оперирование имеющимися данными.


      1. Neikist
        19.07.2018 15:19
        +1

        На кой черт мне второй холодильник если я только первый купил?


        1. Fox_exe
          19.07.2018 19:53

          На кой черт мне второй холодильник если я только первый купил?

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


          1. klubben
            19.07.2018 21:21

            Ну не себе, так друзьям/родным/детям/внукам…

            С тем же успехом можно предлагать любой рандомный товар


  1. TiesP
    19.07.2018 09:27
    +2

    Раньше вообще обходились записями на бумаге… без какого-то причудливого SQL


    1. Mike_soft
      19.07.2018 09:30

      а когда бумаги не было?


      1. SergeyNoel
        19.07.2018 09:52

        Высекали запросы на камне.


      1. TiesP
        19.07.2018 10:04

        запоминали)… и передавали устно из поколения в поколение


  1. zigrus
    19.07.2018 09:41
    +1

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


    1. peresada
      19.07.2018 09:59
      +1

      то есть прикрутить и организовать нормальную работу AI\ML, да и разбираться в этом, проще, чем знать SQL на нормальном уровне? да ну бросьте


      1. nikolayv81
        20.07.2018 19:12

        Основная проблема в том что 2 системы параллельно одному заказчику не ставят, поэтому сравнивать особо нечего и соответственно оценить "нормальность" системы (кроме случая полного отсутствия отклика клиентов) весьма непростая задача.


    1. Guitariz
      19.07.2018 10:04

      Определенно, зачем какой то сложный SQL, Если есть ML.


  1. WTYPMAH
    19.07.2018 10:03
    -1

    Похоже автор не совсем понимает задачи и область применения ML. От слова «совсем». Отсюда и статья…
    Задача SQL — хранение и извлечение информации. Кстати, обработка этой самой информации не является прямой задачей SQL.
    Задача аналитика — формирование гипотез, которые он может подтвердить / презентовать с помощью данных. Для этого он может использовать тот же SQL.
    А вот задача ML — выявление и/или подтверждение гипотез аналитика, которые он не может сам выявить/подтвердить/презентовать по причине или их неявности, или слишком большого объема данных и их зависимостей, которые человек физически не способен обработать.

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


    1. AlexVist
      19.07.2018 10:25
      +1

      Тут так же верно утверждение, что вопрос к квалификации аналитика. И к тому же целесообразность применения ML на примере, который привел автор статьи.
      Пусть аналитик применяет ML для проверки и подтверждения гипотез. Тогда речь идет о чем-то ОЧЕНЬ крупном. Тогда, может быть, но не факт оправдана теория применения ML как дорогостоящей технологии. Да и аналитик в большом проекте стоит дорого.
      И вообще рассуждения уходя в область про "сферического коня в вакууме". ))
      Думаю, что никаких мух и котлет нет. Просто есть конкретные задачи и наиболее эффективные способы их решения.


      1. WTYPMAH
        19.07.2018 11:20

        1. ML применим не только к очень крупным объемам данных. На моей практике были модели на основании 20-30 точек, и в этих кейсах без ML было не обойтись.

        2. Дорогая стоимость ML тоже отчасти миф — простые методы можно применить хоть в Excel. ДЛя сложных методов есть бесплатные open-source решения, которые потом летят в продакшн точно так же не дорого. Явно не дороже, чем аналогичное решение на стандартной ИТ-инфраструктуре без ML-движков. Можете почитать целую подборку статей i_shutov

        3. Я как раз и писал о том, что у каждой задачи и метода есть своя область применения и инструменты. Нельзя утверждать, что задачи ML можно решить с помощью SQL, как это делает автор статьи в самом заголовке. И то, что для подтверждения этого выбран неудачный пример — обычная манипцляция


        1. AlexVist
          19.07.2018 11:33
          +1

          1. Ну проявите немного уважение к собеседникам. ) Не таите что за задачи. тем более что из практики. Именно для этого сайт и создан. да и предметное обсуждение всегда интереснее.
          2. Ключевое слово "отчасти". исключения часто подтверждают правило. в целом технология дорогая. Как и стоимость специалистов. Средний менеджер/аналитик, который пользуется excel вовсе не специалист в ML. Спасибо за статьи. Конечно чтение не повредит. )
          3. Согласен с некоторой провокативностью заголовка статьи. Пример из практики всегда удачен. Он может быть спорным. Но все же лучше, чем просто голословные утверждения о том, что одно лучше другого, без примера из той же практики. Все измеряемо и измеримо. И приводя примеры мы можем сказать, что данная технология позволила то то и то то в сравнении с другой. Грешат и сильно грешат диванные теоретики ML тем, что не имеют реальной решенной прикладной задачи. Это не добавляет, а наоборот понижает степень их правоты. Я правоту не исключаю. Потому что всегда смотрю в сторону лучшего, менее затратного и оправданного экономически способа решения поставленной задачи.


          1. WTYPMAH
            19.07.2018 12:04

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

            2. К сожалению, не могу оперировать точными ценами, но разве развернуть open-source решение на базе R+shiny на сервере будет дешевле, чем развернуть решение на базе SQL + еще какой-то движек нужен для UI? Интуитивно — очень сомневаюсь.

            3. Так я это и пытаюсь сказать — нет смысла утверждать, что SQL лучше ML-движков. ДЛя одних задач подходит SQL, для зругих — ML.
            Давайте представим пример из полу-практики. Считаем что объективно нужно разработать и процессить в продакшине очень просутую ML модель. Пусть будет линейная регрессия и логит. Можно ли это сделать в SQL? Можно! Есть много гик-статей, где есть примеры реализации в SQL. При этом решение задачи в R или Python — до 10ти строчек кода.

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


            1. AlexVist
              19.07.2018 12:24

              Вот приведение примеров и дает более наглядно видеть как и для чего применяются различные технологии. И в чем бывают их преимущества и недостатки.
              Прекрасные примеры. Из которых становится понятнее почему именно выбранная технология более применима.
              А еще курьезы в том, что люди занимаются совершенно разными задачами. И, естественно, рассуждают через призму того, что сами делают. Не делая поправки на те задачи. которые решают оппоненты. Я бы сказал больше — даже не интересуются этим. ))
              Из практики могу тоже привести пример. Есть промышленная система написанная на Delphi (не ругайтесь). Скажу просто, что она успешно применяется и отказ от нее нецелесообразен. Для быстрой проверки реализации некоего функционала используется Python в силу того, что достаточно несколько строк, чтобы проверить именно функционал. Не нужны ни формы, ни рюшечки. Но реализация все-равно останется и будет в Delphi.
              Это я к тому, что наличие альтернатив не всегда бывает допустимо к применению в конечном продукте. Это риторика, которую в общем комментировать не нужно. ) относится к конкретному продукту. Скажем опыт, который не обязательно заимствовать. Но знать полезно.)


    1. aamonster
      19.07.2018 10:52
      +1

      Ну, путает, допустим, не автор, а те, кто пытается все задачи решать через ML/AI. А автор всего лишь напоминает, что иногда другие инструменты удобнее.


      1. WTYPMAH
        19.07.2018 11:21

        Не иногда, а всегда. Почитайте залоголовок — ML не нужен, нужен SQL.


        1. aamonster
          19.07.2018 12:30
          -1

          Заголовок — это да. Желтушные заголовки — наше всё.
          Но в тексте всё нормально.


  1. Guitariz
    19.07.2018 10:05

    Прямо с языка снял, все именно так.
    Не так плоха новая технология, как неумение ее применять.
    Всегда вспоминается «Идиократия» с Brawndo.
    <sarkazm=«ON»>Плохой продажник, в связи с тем, что он не может придумать нормальную концепцию хорошей вещи, берет количеством модных словечек. Да, это работает только на неразборчивых клиентов, но работает же. Рыночек порешал, если продажи растут, значит, все правильно делается.<sarkazm=«OFF»>


  1. megaentwickler
    19.07.2018 10:22

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


    1. shaukote
      19.07.2018 12:53

      Никогда не понимал вот этого «навариться на потребителях». Что плохого в том, чтобы заниматься созданием/поддержкой удобного сервиса/магазина для покупок? Как вообще люди представляют себе мир без того самого «e-commerce»?


      1. Mike_soft
        19.07.2018 13:11

        жили когда-то «без того самого».
        е-коммерс — просто один из удобных инструментов для жизни.


      1. megaentwickler
        19.07.2018 16:00

        Слишком неоднозначно у меня выглядит, но всё-таки я не вкладывал плохой смысл в свои слова.


      1. nikolayv81
        20.07.2018 19:21

        С одной стороны вы правы, с другой — блокировщиками рекламы и спам фильтрами активно пользуются.


      1. edogs
        20.07.2018 19:26

        Никогда не понимал вот этого «навариться на потребителях». Что плохого в том, чтобы заниматься созданием/поддержкой удобного сервиса/магазина для покупок?
        Между «заработать делая бизнес» и «навариться на потребителях» разница примерно такая же как между банком и мфо.


  1. Vlad_fox
    19.07.2018 11:38

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


    1. VMichael
      19.07.2018 12:34
      +1

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


      1. Neikist
        19.07.2018 12:40

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


      1. alsii
        20.07.2018 12:45
        +2

        Конкретный случай — это всегда конкретный случай. А автор пытается обобщать.


        Заголовок спойлера
        • Я поехал на велосипеде на дачу вместо электрички, сэкономил ХХ рублей, по дороге наслаждался прекрасными видами -> отлично! решил не покупать проездной, электричка не нужна.
        • Уже неделю езжу на велосипеде, доволен как слон! Решение однозначно было правильным, пишу статью на habr!
        • Сегодня на половине пути застал дождь, промок до нитки. Подписался на прогноз погоды и если он плохой, беру с собой плащ.
        • Плащ оказался не очень удобным, купил дешевый дождевик. Все равно куда дешевле проездного.
        • Дожди идут неделю, в двух местах дорогу размыло, приходится идти по обочине пару километров. Не беда, времени у меня много.
        • Дешевый дождевик начал рваться., задумываюсь о покупке более качественного, но цена — как половина проездного на месяц. Ничего, все равно сэкономил больше!
        • Черт!!! Решил проехать очередной размытый участок, упал в лужу. Весь измазался в грязи, порвал новый дорогой дождевик :( Покупать еще один давит жаба, поезжу пока в старом дешевом. Дожди вроде не так часто.
        • Он все-таки порвался на полдороге :( Час под дождем. Вымок до нитки, простыл. Врач выписал лекарство, дорогое :(
        • Пару дней ездил на электричке. Разовые билеты дорогие, решил вернуться к велосипеду.
        • Все же велосипед — это классно! :-) Погода наладилась, не езда — наслаждение, красота!
        • Он сломался!!! И опять на полпути, что за проклятое место? Пришлось тащить на себе, потом везти обратно на электричке. За ремонт просят немыслимых денег, заказал запчасть на Али за копейки. Пока не придет, буду ездить на электричке.
        • Что-то долго не идет деталь. Купил проездной.
        • Ура!!! Деталь пришла! Починил все за пару часов. В мастерской работают откровенные барыги.
        • Что-то ездить стало прохладно… Посмотрел цены на термобелье, тихо выпал в осадок. Проездной еще действует, буду пока ездить на электричке.
        • Проездной кончился, снова попробовал поехать на велосипеде. Холодно, но сезон заканчивается. Потерплю.
        • Снова купил дождевик, мокнуть и мерзнуть одновременно не хочется.
        • Китайская деталь сломалась :( Опять на половине, но к счастью на обратном пути. Проездной покупать смысла нет, буду ездить по разовым.
        • Сезон закончен!!! Велик пока чинить не стал, за зиму не спеша разберусь что к чему.
        • Весна!!! Пора на дачу… Сунулся в гвраж за великом, вспомнил, что он неисправен. Поехал на электричке.
        • Неделю катался на электричке, решил купить проездной. До велика пока руки не доходят, да и цены на нормальные запчасти не радуют.
        • Сегодня ехал на электричке, читал книгу. Посмотрел в окно. Увидел там велосипедистов. Едут по грязи, под дождем против ветра… Так ли оно было хорошо в прошлом году? Пока не решил… читаю книгу дальше. В вагоне тепло и сухо...


  1. WTYPMAH
    19.07.2018 16:13

    Практически в каждой ветке комментов в итоге идет три противечащих утверждения:
    1. ИТ использует ML везде где нужно и не нужно бездумно
    2. ML ОЧЕНЬ дорогой
    3. ML может использовать ML-специалист, которых мало и они очень дорогие.

    Ни у кого диссонанса это не вызывает?

    Это что же за компании такие, у которых есть возможность бесконтрольно и без анализа тратить огромные деньги на то, что не нужно + делают люди, которые это делать не должны? :)

    Прям чувствую, что заминусуют, но удержаться не смог + может зерно истины в обсуждениях обнаружим


    1. Femistoklov
      21.07.2018 07:26

      Очевидно, одно из трёх утверждений неверно. Либо ML большинству компаний нафиг не нужно, либо его можно успешно заказать на фрилансе за копейки, либо любому айтишнику хватит мозгов прочитать пару статей по теме и применить какую-нибудь из существующих ML-библиотек.


  1. hippohood
    19.07.2018 16:52

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


  1. AC130
    19.07.2018 17:18

    Чтобы выявить клиента недели, мы написали SQL-запрос, который находит в таблице заказов запись с самой большой корзиной заказов за неделю. Получив эту информацию, мы отправляем клиенту письмо с благодарностью и прикладываем небольшой купон/ваучер. Угадайте, что происходит дальше? 99% этих людей становятся постоянными клиентами. Мы никогда не нуждались в ML. Просто написали элементарный SQL-запрос — и получили эту информацию.

    Ну это, по факту, тоже «L», только не «Machine Learning», а «Human Learning». При применении ML модель будет способна предсказать, какому именно клиенту надо выслать купон, используя массив данных о предыдущих клиентах и купонах. Тут сам человек придумал какую-то фичу и делает работу вместо машины. А вот какая будет эффективность у разных подходов — ещё вопрос. У автора +0.99 постоянного клиента в неделю. Машина может предложить рассылать письма большему числу людей. К примеру, если рассылать письма 10 персонам, а точность модели составляет 70%, то получается +7 постоянных клиентов в неделю.


  1. StallinHrusch
    19.07.2018 17:50

    Что-то аргументы из разряда «нафига попу баян». Пусть автор попробует применить SQL для того, для чего был создан ML — для прогнозирования\предсказаний. Например напишет SQL скрипт, который, например, покажет вероятность увольнения сотрутника в обозначенном будущем, основываясь на всех данных всех сотрудников и\или ситуации в компании\на рынке, календаре событий и еще чем-нибудь. Вот тогда будет шок и сенсация.


    1. gandjustas
      19.07.2018 17:54

      Смысл статьи не в этом. Автор пишет про использование ML, там где и без него можно обойтись.


      Недавно мне затирали про нейронные сети в анализе ассортимента. Когда сделал им ABC\XYZ анализ в excel за 20 минут — очень удивились.


  1. Dorial
    19.07.2018 18:43

    Я так понимаю, что искусственный интеллект призван автоматизировать труд человека. То, что автор делает руками: пишет запрос, запускает его, анализирует результаты, пишет текст письма, создает рассылку и отправляет ее, то AI должен делать автоматом, на регулярной основе. Кстати, уже есть стартапы, которые делают роботизированный копирайт. Т.е. робот сам определяет, кому и что написать и пишет текст (копирайтеры — скоро ваша профессия исчезнет:)). А в целом, конечно, SQL — мощь, согласна.


  1. Ipeacocks
    19.07.2018 19:45

    Просто часто новомодные технологии используют для обмана инвесторов (т.е. рекламы). Если на всех углах говорят о блокчейне и на это дают деньги, то и юзать его будут многие. Пройдет время и увидим насколько технология живучая.


    1. Mike_soft
      20.07.2018 08:02

      вспоминаются «нанотехнологии»…


      1. Ipeacocks
        20.07.2018 13:38

        Ну вот, они как бы будут, но будут там где нужно.


  1. postgres
    19.07.2018 19:48
    +1

    Несомненно, чем проще решение, тем лучше. Но, название статьи слишком громкое, ожидал прочесть, что-то более удивительное. Спасибо за перевод.


  1. GerrAlt
    19.07.2018 20:02
    +2

    Так вот откуда берутся эти разработчики интернет-магазинов, которые предлагают мне купить шкаф после того как я купил шкаф. Уж лучше ML чем такой SQL.


    1. EvilArcher
      20.07.2018 06:18

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


      1. GerrAlt
        20.07.2018 11:11
        +1

        Технология не причем, но разработчик хвалит такой подход в статье (

        Скажем, человек купил пару обуви, солнцезащитные очки и книгу. В рассылке для него мы покажем обувь, солнцезащитные очки и книги.
        ), а с чего он взял что мне нужна вторая пара обуви, вторые очки и какая-то книга (непонятно как подобранная, та же что я уже купил? или ORDER BY random limit 1?)?


    1. Ipeacocks
      20.07.2018 13:39

      Ну я думаю ML не нужен, чтоб предложить полки после покупки шкафа.


      1. lair
        20.07.2018 13:45

        … а что бишь для этого нужно?


        1. Druu
          20.07.2018 14:15

          Специально обученный человек, который будет перезванивать и предлагать. Очевидно же!


          1. lair
            20.07.2018 14:16

            "Нет, вам не нужны компьютеры. Вам нужны люди."


            1. MTyrz
              21.07.2018 16:50

              Нам не нужна ракета «земля-воздух»!
              Нам нужна ракета «земля-самолет»!


  1. Dywar
    19.07.2018 20:31

    О чем речь вообще.
    Для каждой задачи свой инструмент, используй то что удобнее и проще для тебя и твоей команды.

    Задача T.
    Можно решить технологией X, Y, Z.
    X — сложно, дорого, не все знают, быстро работает.
    Y — просто, дешево, знает половина, работает долго.
    Z — средне, средне, знают все, работает средне.
    Оцениваем важность каждого показателя, берем тот который набрал больше баллов. Или рисуем три кружка, подымаем голову вверх, водим ручкой в пределах этих кружков и на любимую считалку тыками на искомый вариант.

    *Фишка нейронок — они очень и очень быстро решают задачи на которые обучены. Никакой алгоритм не сделает того же с подобной скоростью.


    1. lair
      19.07.2018 21:12

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

      Это, очевидно, зависит от задачи, "нейронки" и "алгоритма".


    1. GerrAlt
      20.07.2018 11:17

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

      я утрирую конечно, но если я обучаю нейросеть вычислять сумму двух целых чисел, скажем, в диапазоне от 0 до 1000000 то я уверен что обычный алгоритм сложения сработает значительно быстрее (при одинаковом быстродействии железа, само собой)


      1. Dywar
        20.07.2018 20:42

        Нет линка, есть имхо после прочтения нескольких книг по алгоритмам и просмотра видео докладов на тему нейронок, например — Дмитрий Сошников — Доступный искусственный интеллект на платформе .NET.

        Естественно нейронка массив чисел быстрее не отсортирует и т.п. (сходу не могу представить даже как), а вот картинку распознает значительно быстрее поиска ближайших соседей. Это впрос к задаче «Т», что лучше использовать.

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

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


    1. wataru
      20.07.2018 11:20
      +1

      *Фишка нейронок — они очень и очень быстро решают задачи на которые обучены. Никакой алгоритм не сделает того же с подобной скоростью.


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


  1. Dywar
    19.07.2018 20:46

    del


  1. morozovsk
    19.07.2018 21:15
    +2

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

    Почему мы постоянно видим в описании стартапов строку с машинным обучением? Потому что инвесторы планируют вкладывать в создание нового «единорога» (цена компании от миллиарда), а не очередной магазин на тысячу пользователей. Если не добавить, то инвестор будет вас воспринимать как проект на 1000-10000 пользователей.

    Статья какая-то слишком маркетинговая (собственно свой маркетинговый опыт автор и описывает в ней), много круглых цифр 25-30% с потолка, много нестыковок и много воды.

    Все нестыковки и маркетинговый булшит спрятал под спойлер:
    1) «Эффективность отклика всегда была больше 50%». Именно 50%, а не 49.7% или 52.3%. Знакомая история? Когда кто-то хочет придать своим словам вес, то стараются избегать фраз типа «больше половины пользователей», потому что это легко выдаёт незнание реальных цифр, а они в результате неожиданно могут оказаться, не «больше половины», а всего 17%

    2) Автор предлагает поверить ему на слово, что его подходы эффективнее, чем машинное обучение, при этом он не делает сравнения с цифрами полученными в результате машинного обучения, а сравнивает с «отраслевым стандартом». На мой взгляд сравнивать со средними показателями по отрасли не очень дальновидно. За несколько лет целая отрасль может схлопнуться может схлопнуться почти целиком за счёт использования новых подходов и технологий.

    3) «99% этих людей становятся постоянными клиентами». Аналогично предыдущему пункту, он явно хотел написать «все пользователи», но такого не бывает и легко быть пойманным, поэтому опять берётся цифра с потолка.

    4) «Это оказалось более эффективно, чем тратить деньги на рекламу.» Опять же сравнение выглядит как «Tide стирает лучше чем обычный порошёк», но как это доказывает неэффективность машинного обучения?

    5) 99% пользователей, которым они отправляли письмо становятся постоянными клиентами, при этом лучший опенрейт, который они достигали 25?30%:
    Получив эту информацию, мы отправляем клиенту письмо с благодарностью и прикладываем небольшой купон/ваучер. Угадайте, что происходит дальше? 99% этих людей становятся постоянными клиентами.
    Типичный уровень просмотра (open rate) большинства маркетинговых писем составляет от 7 до 10%. Но когда мы хорошо справлялись с работой, то видели показатель в районе 25?30%.

    6) много воды, сейчас даже спам приходит персонализированный.
    Ещё одна приятная особенность этих писем — то, что мы обращались к людям по именам. Никаких «уважаемый клиент». Только «дорогой Селестин», «дорогой Омин» и так далее. Это придаёт всему оттенок человечности.


  1. algotrader2013
    19.07.2018 21:18
    +1

    Но если у вас маленький интернет-магазин с 1000?10000 клиентов, то можно обойтись SQL. Кроме того, специалисты по ML/AI стоят недёшево.

    В этой фразе и кроется основная ошибка автора. Он считает, что интернет магазин на 1000 клиентов должен самостоятельно решать все задачи преобразования данных, и, соответственно, миру нужны миллионы забагованных скриптов по поиску клиентов недели/месяца, брошенных корзин, и так далее. Но суть в том, что, при текущей глобальности рынка эфективнее выходит стратегия «бросить все силы на ключевую компетенцию, а остальное купить», и кроме вариантов
    1) держать специалиста сомнительного уровня по ML, который пилит модели (сомнительного уровня — потому, что сложно привлечь специалиста хорошего уровня в компанию, где он единственный специалист в своем роде, даже при значительном бюджете)
    2) держать специалиста сомнительного уровня по PHP/SQL, который делать запросы, основываясь на здравом смысле,
    есть еще
    3) использовать для всех перечисленных задач коробочные продукты, авторы которых могут позволить себе хороших специалистов за счет масштаба


    1. mayorovp
      20.07.2018 08:46

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


      1. algotrader2013
        20.07.2018 11:53
        +1

        купившему холодильник реклама предлагает холодильник

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


        1. mayorovp
          20.07.2018 13:50

          Вот как раз неполнота данных — это и есть баг. В архитектуре.


          1. algotrader2013
            20.07.2018 14:55

            В архитектуре устройства мира? Если интернет магазин не готов продавать/отдавать данные о своих клиентах рекламной сети, или требует необоснованную цену, то как это исправит архитектура?


            1. mayorovp
              20.07.2018 15:04

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


  1. vibrant
    19.07.2018 21:49

    Не усложнять. Это должно быть вбито в подкорку каждого программиста, потому-что программист_строит_дом.jpg — это суровая реальность, и чаще все еще хуже.
    За двадцать лет так и не увидел ни одной годной рекомендательной системы — либо эти рекомендации просто бред, либо они не попадают в мои предпочтения ну никак, на чем бы она там не работала, хоть sql или скрипт на перле, или там гигантская нейросеть.
    Для себя решил, что нужно бить себя по рукам, как только появляется мысль догнать и причинить добро юзеру. Мечтаю, что когда-нибудь до этого додумаются и маркетологи.


  1. VitamiNoZzZz
    19.07.2018 21:49

    Ребятки, если внимательно почитать статью, то автор не пытается вдаваться в подробности ML, в возможности аналитика, насколько он хорош или плох… Идея в том, что все пытаются следовать моде, и без употребления ML\AI у тебя просто ничего не купят (в плане услуг, продукта), и не потому, что на SQL нельзя сделать быстрее и проще, а потому, что это продается легче и быстрее… Потому, что люди, которые принимают решение по закупке того или иного продукта недостаточно понимают, что они собираются покупать… Автор предлагает не носить круглое и перекатывать квадратное и не более.


  1. Matroskin1977
    19.07.2018 21:49

    Согласен, для каждой цели свой инструмент. Но порой из-за моды, желания двигаться вперед, любопытства или еще по каким то причинам мы начинаем использовать что то совсем не нужное в данный момент.
    Хотя рискну предположить, что появление многих новых инструментов связано с желанием как то отличаться от всех. Ведь программирование — это очень просто, как и математика и очень сильно ограничено правилами.
    Простая задача, вывести на экран слово «ПРИВЕТ».
    1. Можно отобразить нужный набор пикселей.
    2. Можно создать шрифт, и с его помощью написать слово.
    3. Можно создать объект, который будет уметь отображать строго заданное слово.
    4. Можно создать объект, который будет уметь отображать любое слово.
    5. Можно создать объект, который будет уметь отображать любое слово и любым цветом.
    и т.д.
    вариативность решений будет зависеть только от желания выделиться, но результатом будет всего лишь слово «ПРИВЕТ».

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


    1. alsii
      20.07.2018 13:01

      Навеяло. Когда где-то в начале 90-х речь зашла о создании web-сайта, обатились к дизайнеру с которым давно работали. Стали ему объяснять, про web, про html. Он слушал грустно, когда услышал, что можно вставлять картинки — оживился: "А давайте я нарисую всю страничку целиком в фотошопе, а вы ее выведите в jpeg и вставите в ваш html?".


      1. MTyrz
        21.07.2018 16:53
        +1

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


  1. wildraid
    19.07.2018 22:06
    +1

    Эта идея вполне справедлива и для больших проектов, у которых сотни терабайт данных. Особенно если SQL хорошо масштабируется, позволяет сделать десяток произвольных JOIN'ов и отдаёт ответы за секунды или, максимум, минуты.


  1. edogs
    20.07.2018 00:45

    Статья неплохо показывает, что классика эффективна и сейчас.
    Но всё равно остается вопрос «не было бы лучше с AI/ML».
    Ведь в этом

    написал SQL-запрос, который выбирал всех клиентов с датой последней покупки 3 месяца или более.

    Автор поставил задачу — надо сделать рассылку старым клиентам. Ок, не вопрос, задачи должен ставить человек и человек их обычно и ставит.
    Потом автор нашел ответ — те кто делал покупки с датой больше 3 месяцев. И вот тут уже вопрос — а не нашел бы AI/ML более оптимальную выборку? Например «клиент больше 2 месяцев покупавший шаверму» и «клиент больше 4 месяцев покупавший беляш»? Совсем не факт.
    AI/ML не так что бы сильно нужны в постановке задач, но будучи правильно применены они нередко могут найти более оптимальное решение.


    1. Neradivy
      20.07.2018 16:35

      А как бы он нашёл более оптимальную выборку, из каких дополнительных данных, если у автора статьи не нашлось других критериев?
      Это ведь такая же глубоко семиотическая и творческая задача, как упомянутый мною выше алгоритм вычисления «к этому товару впридачу обычно ЗАБЫВАЮТ купить»… даже не факт, что вообще имеющая решение, потому что в чём вообще измеряется прогнозируемый показатель? Как Вы определяете «психологическое устройство»/«маркетинговый профиль» человека, которому Ваша рассылка пофигу, а как — того, который вернётся сразу, а как — того, который решил было вернуться через неделю, но не вернётся, а того, который через неделю вернулся бы, если бы Вы в этот период не продублировали рассылку (а теперь прорычит: «задолбали спамеры» и отпишется навсегда)? Призраки театра, комплексные образные модели…
      Из объёма данных самого по себе может рациональным научным путём получиться «сделай, как было, только побольше», но Вы предлагаете задачу «сделай, как не было» (покупатель не заходил, не покупал, а тут вдруг купит).

      Хороша фантазия у одного из комментаторов выше: «AI способен однажды научиться через сорок недель порекомендовать подгузники тому, кто сегодня покупает вино и шоколад, но не покупает презерватив». Может помочь в планировании рассылки «спящим». Но, во-первых, низкий КПД: большинство не вернувшихся целый за повторной покупкой, которую большинство делает через три недели, уже всё купили — у конкурентов. Плюс, подозрение: чего это интернет-магазин такой заботливый, небось, у них дороже или залежалось? (не в Нигерии, может быть).
      Во-вторых, это ведь тоже задачка из разряда «сделай, как не было»…

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


      1. edogs
        20.07.2018 18:30

        Хороша фантазия у одного из комментаторов выше: «AI способен однажды научиться через сорок недель порекомендовать подгузники тому, кто сегодня покупает вино и шоколад, но не покупает презерватив»

        так то реал стори типа
        www.nytimes.com/2012/02/19/magazine/shopping-habits.html?pagewanted=1&_r=1&hp
        About a year after Pole created his pregnancy-prediction model, a man walked into a Target outside Minneapolis and demanded to see the manager. He was clutching coupons that had been sent to his daughter, and he was angry, according to an employee who participated in the conversation.

        “My daughter got this in the mail!” he said. “She’s still in high school, and you’re sending her coupons for baby clothes and cribs? Are you trying to encourage her to get pregnant?”

        The manager didn’t have any idea what the man was talking about. He looked at the mailer. Sure enough, it was addressed to the man’s daughter and contained advertisements for maternity clothing, nursery furniture and pictures of smiling infants. The manager apologized and then called a few days later to apologize again.

        On the phone, though, the father was somewhat abashed. “I had a talk with my daughter,” he said. “It turns out there’s been some activities in my house I haven’t been completely aware of. She’s due in August. I owe you an apology.”


        1. Neradivy
          22.07.2018 00:39

          простите, явамниверю.
          впрочем…

          AI имея полные данные вполне мог сделать вывод

          С этим не поспоришь. Полные данные об устройстве Вась и Петь и Дим… о, вряд ли стоили бы не больше маржи за проданный холодильник!
          Простите, что домысливаю за Вас — поправьте меня — но Вы, кажется, неявно подразумевали, что Целестин Омин (автор исходной статьи) не сделает точных математически выводов из результатов своей рассылки, и НА СЛЕДУЮЩИЙ РАЗ, если и скорректирует свой подход к выборке адресатов — то не учтёт все критерии категоризации людишек, а вот ML однажды обучится отличать агнцев от Вась.
          Ну, тут тоже такое… «призрак театра», в общем. Омин даже не уйдёт и не умрёт на десятой рассылке, допустим, но станет писать ДРУГИЕ тексты рассылки, у которых будет иной диапазон покрытия… Обучившуюся машинку придётся выкинуть.


  1. xvilka
    20.07.2018 07:34

    Несмотря на то, что я тоже не согласен с конкретным случаем замены AI на SQL, в большинстве случаев ML действительно не нужен. Однако не SQL-ом единым. Есть примеры более подходящих технологий, например ProbLog https://dtai.cs.kuleuven.be/problog/


  1. grt_pretender
    20.07.2018 07:55

    Центр проблемы здесь и правда не SQL или ML, а сам аналитик, его опыт, знание о том, когда уместен тот или иной инструмент. Погоня за хайпом и стадный эффект против критического мышления и развитых компетенций)

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


  1. Bedal
    20.07.2018 08:13

    Автор совершенно прав, и это крах его жизни. Да, он умеет многое намного лучше AI/ML — но именно потому он дорого стоит (если нет — сам виноват).
    Ровно как спецы писать коммерс на ассемблере невероятно круты, но исчезли как класс, так и мастера SQL-изысков — натура уходящая. И дело даже не столько в том, что они дорого стоят, сколько в том, что вполне технические руководители чем дальше, тем больше не будут уметь давать им задания и уметь их использовать.

    Зачем нужен высокопрофессиональный фрезеровщик на заводе, где все станрки — с ЧПУ?


  1. musicriffstudio
    20.07.2018 08:18

    Как-то много комментариев не по теме статьи получается. Кислое с мягким начинают сравнивать.

    Что такое этот самый «мешин лирнинг»?

    Википедия отвечает:

    Машинное обучение (англ. machine learning, ML) — класс методов искусственного интеллекта, характерной чертой которых является не прямое решение задачи, а обучение в процессе применения решений множества сходных задач. Для построения таких методов используются средства математической статистики, численных методов, методов оптимизации, теории вероятностей, теории графов, различные техники работы с данными в цифровой форме.


    Применительно к практике и примерам в статье это может быть какая-то процедура в бд (екзешник, пхп скрипт и т.п.) которая запускается раз в день и по строит алгоритм отбора покупателей. Типа «чтоб найти тех кто готов купить крем для обуви надо найти тех кто недавно купил ботинки».

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


  1. Katasonov
    20.07.2018 10:23
    +1

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


  1. Abyrvalgov
    20.07.2018 13:47

    Я один в комменты пришёл поговорить не об мл/аи, а о переводе?

    Не дай бог запустить проект без упоминания AI. Серьёзно, ты правда в бизнесе?


    Рунглиш наоборот какой-то.


  1. lotse8
    20.07.2018 14:55

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


  1. JTG
    20.07.2018 15:06
    -1

    Тон статьи несколько странный. Видал я таких адептов SQL, которые пытались написать на SQL всё, включая HTTP-запросы и разбор JSON.


  1. Neradivy
    20.07.2018 16:00
    -1

    Всё обсуждение не дочитал: загрустил как-то. Антиутопичненько получилось. Ashes of the gloomy, по Пелевину.
    Автор статьи недоумевает, зачем может быть нужно что-то сложнее ручного человеческого управления рекомендациями товаров покупателю…
    (Коллеги, кто асилил всю бороду — скажите, а обсуждение так и не сходит с заданной автором области применения? При таком заголовке — «ВАМ не нужны» — шанс уже невелик, но всё же. )
    Я вот понимаю, что пишут хабровчане… но тоже так и не понял, зачем может быть нужен ML/AI в рекоммендациях онлайн-сервисов. Потому что хочется автоматически развидеть юзкейсы торговли воздухом, тупого кидалова и разводилова покупателя на импульсивности. Любая «неочевидная» корреляция между кросс-сейловыми товарами, которую живой человек не способен ни заметить, ни объяснить, которая «выстреливает» при введении её в рекомендации — это же именно оно вот. РАЗВОДИЛОВО. «Купи ещё банку огурчиков к новым тапочкам, раз уж кошелёк достал! Почему так? А чтобы прям как у пацанов, а не одни только тапочки...»
    Ну, да, уже слышу: «мы только предлагаем, а не навязываем», «что за ретроградство»… э, пофиг ваше возмущение, всё равно уже после амнистии обратно и так карму заминусовали…
    Кто-то ещё скажет: «люди сами отдают роботам свою учётную информацию, им нравится и удобно»… Что ж, бывают шопоголики и просто несчастные люди с мощным кризисом самоидентификации, а бывают ещё пользователи, которые верят, что там сидит живой человек или знают, но забывают, что это не так. На них и НАЖИВАЕТЕСЬ.
    Вот тут выше дядя написал: СКЛ задолбаетесь масштабировать, вот будет у вас 10000 категорий… Его поправили: ну, не категорий, а товаров, хотя категорий бывает сходное количество…
    А почему, спрашивается, вы (магазин) начали торговать всем подряд, в чём синергия? За счёт чего отбиваете издержки и получаете прибыль на тысяче категорий: логистика или «умение торговать»? Умение торговать — это довольно зловещие стороны покупательской психологии.
    Надеюсь, предел AI и ML в области «робот советует раньше, чем ты успел обдумать» не за горами — не технологический, а рыночный. Надеюсь, человечество переболеет упоротыми рекомендациями и все кросс-сейлы будут у живых продавцов. Те тоже пудрят мозги — будь здоров — и впаривают нередко то, что человеку не нужно — но в любой книжке по началам маркетинга вы узнаете (хотя и спорные) доводы в пользу ценности торговой услуги. Все эти доводы не имеют отношения, однако, к рекомендациям робота, как он представляется мне в наше время — то есть, не работающего с семантикой, а только с корреляциями. Вот это в чистом виде эксплойт человеческих слабостей и никакой добавленной ценности.

    Я бы, однако, не стал писать такой длинный и скандальный комментарий, если бы не интересный мне вопрос.
    Хабровчане, вы не в курсе, а есть, по аналогии с cross-sales, нечто вроде cross-procurement? И success story для ML и II в этой области?
    Из статистики по совместным покупкам можно ведь выстроить эффективную систему планирования запасов, вот что я бы назвал прогрессом!
    Тогда бы я не ворчал, что интернет-магазины охватывают тыщу категорий. Это за счёт именно эффективности.
    Насколько я понимаю, всякие JIT-ы и прочие ERP до широкого внедрения компьютеров в принципе никому и в голову не приходили нигде кроме Японии, так? Вот для чего компьютер реально необходим человечеству: человек способен в голове обсчитывать бюджеты материальных запасов только двух первых ступенек сложности, а их, по-моему, уже четыре.

    Я знаю, что в фармацевтике есть такая практика, когда продажники оптовика заходят в учётную систему ПОКУПАТЕЛЯ (в b2b) и сами ему формируют заказ, тот только утверждает… если успеет. Но не уверен, достаточны ли размеры фирмы в этой отрасли, чтобы потянуть ИИ.


    1. WTYPMAH
      20.07.2018 16:48

      Вы предлагаете любому бизнесу перейти на pro-bono? Любой бизнес должен зарабатывать деньги наиболее эффективным образом. Любой человек должен получать максимальное вознаграждение за свой труд. Все должны жить хорошо и богато. Это зравая экономика.

      А «нажива», «разводилово», «богатые наживаются на бедных», «нас используют для того, чтобы впихнуть ненужное» и т.д. и т.п. — это филосифия совка, сорри.

      Зачем нужен ML в онлайн-продажах объясню с точки зрения покупателя. При чем себя лично. Например, если я покупаю кондиционер, я хочу сразу же купить к нему фильтры. И у меня нет желания просматривать тысячи китайских подделок, читать отзывы, анализировать цены и т.д. Я хочу, чтобы мне предложили те фильтры, которые уже прошли все эти этапы проб и ощибок до меня тысячами людей. И я благодарен ML движкам, которые за меня отработали тонны этой информации и показывают мне 3-4 нормальных результата, с хорошей репутацией, из нормальных магазинов, поставщиков и которые подходят под мою модель кондиционера.


      1. Neradivy
        20.07.2018 17:05
        -1

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

        Философия совка — это «ну, любая торговля по цене выше стоимости+логистики вообще разводилово». А я оговорился, что так не считаю. Информация о потребности и о продукции стоит денег.

        Рейтинги от покупателей — возможно, Вы правы, отличная штука. Получается, ML в потребительских рекомендациях — не разводилово на импульсивности, а удобный информационный хаб, но… только для онлайн-маркетов, а тут всё обсуждение идёт — по CMSкам, программам лояльности внутри одного онлайн-магазина, построении паутинок «с этим товаром вместе почему-то покупают» — в интересах увеличения продаж. Или я не прав и кто-то ещё затрагивает Яндекс-маркет?
        Какой-нибудь амазон тоже позволяет рейтинговать эти самые фильтры для кондея; наверное, они включают эту информацию объективным образом в рекомендательный сервис, но это пионеры технологии, и они не обязательно что-то зарабатывают конкретно с «хаба оценок и отзывов». Здесь же обсуждается максимизация продаж, в основном. Можно и хаб отзывов, впрочем, направить на максимизацию продаж вместо информирования… подсказать, как, или сами догадаетесь? Так что на уровне отдельных магазинов — другие эффекты.


        1. lair
          21.07.2018 00:16

          тут всё обсуждение идёт — по CMSкам, программам лояльности внутри одного онлайн-магазина, построении паутинок «с этим товаром вместе почему-то покупают» — в интересах увеличения продаж.

          Вы так говорите, как будто использование ML для "вам могут понравиться вон те кроссовки кроме тех, которые вы сейчас смотрите" — это что-то невыносимо порочное.


          1. Neradivy
            21.07.2018 01:17

            То, для чего ML необходимо, то, с чем не справится живой опытный аналитик + SQL, что лишено внятного смысла — предполагаю, что да, весьма небезупречная практика.


            1. lair
              21.07.2018 01:24
              +1

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


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


              1. Neradivy
                22.07.2018 00:10

                Не понял, простите, запутался.
                Аналитика нет — значит, необходима система с ML? Или как раз-таки аналитик есть — значит, потребует такую систему? И то, и другое представляется неверным, вопреки закону исключённого третьего, так сказать. )
                Если нет аналитика — то как заработает ML? установил, запустил и ушёл, серьёзно?
                Анализом корреляций вычленяется смысл — только для магазина, но не для потребителя. Для потребителя есть предложение и, так сказать, пример большинства собратьев, но НЕТ СМЫСЛА. Аналитика нет, а маркетолог, какие-нибудь онлайн-консультанты, наконец, есть? Если нету вообще никого, кто понимает, в чём удобство для покупателя той или иной «взаимовыгодной» совместной покупки — значит, прочь из кросс-сэйлов! такой онлайн-магазин неправомерно расширился на 100, 1000, 10000 категорий. Волна популярности, не более, она схлынет, когда все поймут (и станут держать в голове), что за «неочевидными советами» банки огурчиков к тапочкам не стоИт мудрость, опыт и забота о потребителе, а просто рандом. Ну, сейчас пока «приносит деньги»… впрочем, и тогда, когда суперуспешной станет считаться рекомендация робота с 0.01% отбивкой — продажникам айти-отделов удастся и дальше позиционировать упомянутые системы как супер-эффективные… тем предпринимателям, кто не читает подобных статей и не требует конкретных цифр.


                1. lair
                  22.07.2018 01:36

                  Аналитика нет — значит, необходима система с ML?

                  Нет, значит, автоматическая рекомендательная система принесет какую-то пользу (потому что иначе рекомендации брать неоткуда).


                  Или как раз-таки аналитик есть — значит, потребует такую систему?

                  Если аналитик есть, это уже его дело, чем пользоваться.


                  Если нет аналитика — то как заработает ML? установил, запустил и ушёл, серьёзно?

                  Совершенно.


                  Анализом корреляций вычленяется смысл — только для магазина, но не для потребителя.

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


                  Для потребителя есть предложение и, так сказать, пример большинства собратьев, но НЕТ СМЫСЛА.

                  Предложение либо подходит покупателю, либо нет. Какое ему дело до смысла?


                  Аналитика нет, а маркетолог, какие-нибудь онлайн-консультанты, наконец, есть?

                  Есть. Но они не умеют программирование и запросы к БД.


                  Если нету вообще никого, кто понимает, в чём удобство для покупателя той или иной «взаимовыгодной» совместной покупки — значит, прочь из кросс-сэйлов!

                  Но почему?


                  такой онлайн-магазин неправомерно расширился на 100, 1000, 10000 категорий.

                  А кто вообще сказал, что он расширился?


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

                  Я пока говорю об очевидных советах.


      1. Neradivy
        20.07.2018 23:57

        Короче говоря, не обязательно быть совком, чтобы рассуждать о судьбе человечества (так, будто для того приглашён к круглому столику), знаете ли. И чтобы различать ценности, символы и симулякры.
        Можно быть просто умным.

        Ethical coding isn't about communism either!


    1. lair
      21.07.2018 00:15

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

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


      Я вот последнее время активно пользуюсь рекомендательной системой Google Music — и она успешно работает.


      1. Neradivy
        21.07.2018 01:24

        Или просто компенсации неполноты информации о продаваемых товарах и услугах.

        Это как??
        Гугл-музыка — да, хорошо. (я, правда, проплатил за год Яндекс-музыки и доволен. Ну там сопоставимый по сложности механизм подбора похожих, тоже, видимо). И тоже не зациклено на увеличении продаж. Вряд ли автор обсуждаемой статьи имел что-либо подобное в виду.


        1. lair
          21.07.2018 01:27

          Как-как… если люди регулярно покупают два товара вместе, значит эти два товара — хороший комплект, даже если это нигде в их характеристиках не записано. Или если люди регулярно покупают что-то, просмотрев 18 пар кроссовок, хотя у этого чего-то и не написано «кроссовки», то, возможно, это все-таки кроссовки.


          1. Neradivy
            22.07.2018 00:18

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

            люди регулярно покупают что-то, просмотрев 18 пар кроссовок

            Канцелярскую замазку — взглянув на цены тех 18 пар, ггг)
            а если серьёзно —
            возможно, это все-таки кроссовки.

            отлов ошибок категоризации… и вообще механизм самокоррекции CMS-ки… гм, тоже как-то не пришло в голову. А такое есть или только в теории?

            Но конкретно с категоризацией — вряд ли взлетит. 18 пар кроссовок — это явно не под лупу сайта с клавиатуры вбивали 18 раз… это наверняка по категории шли. (с какими-нибудь другими допфильтрами, м.б.)
            ну, или по бренду…


            1. lair
              22.07.2018 01:40

              требует доказательства.

              Ключевое слово — "регулярно". Наблюдать за покупательскими предпочтениями — полезно.


              отлов ошибок категоризации… и вообще механизм самокоррекции CMS-ки… гм, тоже как-то не пришло в голову. А такое есть или только в теории?

              Есть.


              Но конкретно с категоризацией — вряд ли взлетит.

              Почему нет-то?


              это наверняка по категории шли. [...] ну, или по бренду…

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


  1. ftdgoodluck
    20.07.2018 16:50
    +1

    Кажется, что большинство спорящих не совсем верно уловили суть статьи. Как это прочитал я: «Есть задачи, которые пытаются решить ML, хотя там вполне можно справиться обычным SQL». Правда ли это? Ну, очень похоже на правду. При этом нет упоминания того, что ML не нужно и ВСЕ решается через SQL.

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


  1. Zanak
    20.07.2018 20:40

    На самом деле, ценность, и ML и SQL, как средства прогнозирования моего интереса автором преувеличены.
    Например:
    — я купил кроссовки. предложить сопутствующие аксессуары — это логичный и простой в реализации ход.
    — понять, почему я это сделал, когда мне можно еще раз предложить этот товар, не рискуя показаться навязчивым, и что еще может меня заинтересовать — это задача другого порядка. (я действительно могу заниматься спортом, и тогда мне можно предложить спортивную одежду и инвентарь. я просто перемещаюсь по городу пешком, и мне важно не испытывать дискомфорта. тогда мне интересны: верхняя одежда, различные аксесуары, вроде зонтов, солнцезащитных очков, перчаток, и еще массы чего. у меня есть дети, и тогда ассортимент предложений тоже должен быть скорректирован)
    — внесет ли ясность повторная покупка кроссовок, скажем через 6 месяцев? не особо. (я могу следить за модой, и поэтому мне захотелось обновить свой гардероб. я все таки спортсмен, и кроссовки просто не выдержали нагрузки, тогда мне нужно предложить что либо понадежнее, пусть и дороже. кроссовки просто оказались низкого качества, и тогда мне нужно предлагать все что угодно, кроме того, что я уже брал. мой ребенок подрос, и они ему стали просто малы, здесь предлагаем все тоже самое, что и было раньше).
    — если первые 2 покупки состоялись, означает ли, что я готов совершить третью и последующие? не обязательно!!!
    К чему я все это: в рамках предложенных автором условий применения, и ML, и SQL — это все равно гадание на кофейной гуще (даже если вам время от времени будет везти). Досканальное изучение человека может улучшить результат, но это, скорее всего, экономически нецелесообразно.


    1. 4tlen
      20.07.2018 23:28

      В том-то и дело, что когда нет датасета (трафика и конверсий, достаточных для обучения алгоритма) конкретного посетителя, применяется item-based подход: смотрим что покупали с этим товаром, ранжируем по цене, CTR или любой другой метрике, кидаем в рекомендации.

      Когда есть датасет, мы обучаем алгоритм (ML) или усложняем текущую рекомендательную систему (SQL) с учетом новых данных, зависит от желаний и возможностей бизнеса. Есть ли разработчик для внедрения ML или ресурсы для его найма. Это user-based подход.

      Ну и, собственно как всегда, истина посередине. Хабр