Как стать автором
Обновить
45
0
Константин Коточигов @crazyhatter

Data Scientist

Отправить сообщение
Да, cпасибо, что обратили внимание. Поправил.
Если я Вас правильно понял, то это описание алгоритма Content-Based фильтрации. Честно говоря, не особо слежу за готовыми решениями в этой области, но был уверен, что это много где реализовано. Во всяком случае функционал довольно базовый. Всякие ПО для интернет магазинов, системы индексированного поиска и прочее.
Да, по этому принципу как раз работают Content-Based рекомендации. Товар новый, но все понимают как он соотносится с остальными товарами. Не обязательно даже экспертно, по фоткам можно много чего разметить, уж цвет то точно (как тут например).
Пока у нас нет искусственного интеллекта, способного делать обобщения без обучающей выборки, все завязано на данные. Если вы выходите на рынок с новым продуктом и хотите что-то спрогнозировать, то ни один алгоритм вам ничего не гарантирует. Т.е. вы конечно можете его использовать (если уверены что найденные моделью закономерности сохраняются при переходе train -> prod), но будете делать это на свой страх и риск.

В целом, мне кажется это вопрос адекватной оценки рисков. Если от модели зависят ваши финансы, то на нее стоит полагаться только когда вы ее хорошо протестировали, в том числе в целевой среде.
Вы правы. Вообще идея интересная, я бы разделил на 2 подзадачи — одну, связанную с подбором оптимального размера одежды — тут и CV, и сенсоры, и вообще есть где развернуться. Но подходящий размер только половина дела, важно чтобы понравился цвет/фасон и прочее (кто-то любит носить посвободнее, кто-то наоборот). На этот вопрос как раз хорошо отвечают рекомендательные алгоритмы. Далее результаты можно объединить в единый pipeline рекомендаций.
Это, мне кажется, классическая задача классификации, не рекомендации.

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

В обоих случаях термин «рекомендация» используется в более широком смысле (не продуктовом). Здесь скорее имеется в виду «оптимизация».
1. Я так понимаю, речь идет скорее о расчете и хранении, а не обходе (обход то, мне кажется, штука тривиальная). Я об этом планирую чуть подробнее написать во второй части статьи. Если коротко, те оптимизации, которые приходят в голову:
— Использовать итеративные реализации матричного разложения типа ALS
— Использовать item-based вариант коллаборативной фильтрации (продуктов почти всегда меньше пользователей)
— Использовать технологии параллельной обработки (Hadoop, Spark итд)
— При добавлении оценок, обновлять матрицу инкрементально вместо полного пересчета
— Рассматривал возможность использования приближенных kNN (на базе LSH), но пришел к выводу, что на типичных матрицах предпочтений никакого выигрыша нету

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

Насчет исследования профориентации, с ходу не очень представляю как. Только если рассматривать профобласть как продукт и рекомендовать новую тому, кто решил сменить текущую? Будет здорово, если поделитесь, где такое встречали.
Да, cбор и комбинирование неявных факторов это две большие дополнительные задачи, которые появляются при использовании implicit. У меня в принципе такие же наблюдения, 90% бизнесов не собирает и не использует explicit оценки (в моей практике правда это по большей части были offline бизнесы по своей природе).

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

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

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

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

Соглашусь, что A/B тесты штука сложная и требующая учета множества факторов, но при должной подготовке данных и достаточном объеме тестовой выборки, тест вполне себе быстро сходится к статистически достоверным результатам, а иногда вообще является единственным эффективным способом тестирования.
Да, конечно можно добавить. Если задача решается «в лоб» по принципу k ближайших соседей, то «нетоварные» фичи просто добавляются в меру близости. В остальном алгоритм тот же.

Если решается задача матричного разложения (эту задачу тоже относят к классу коллаборативной фильтрации, о ней буду во второй части статьи подробнее писать), здесь чуть сложнее — нужно «нетоварные» фичи встроить в матрицу предпочтений, которую мы раскладываем. Например, можно добавить к матрице еще одно измерение и раскладывать 3-мерный тензор вместо матрицы. Можно поискать по словосочетанию Tensor factorization / Tensor ALS. Есть алгоритмы, которые это делают.
Любопытно, а чем Вам A/B тесты не угодили?
— Это… Конференция по новым компьютерным технологиям… и защите компьютерных программ!» (с) Брат-2 :)
:))
А если серьезно — у сообщества разработчиков систем ИИ есть более-менее консенсусный прогноз относительно сроков появления универсального искусственного интеллекта, способного решать любую проблему, которые решает человеческий мозг?
Нету, во всяком случае, те прогнозы, которые я слышал, разнятся от 10 лет до 100.

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

Да, такой подход периодически мелькает в сети, но пока нигде не видел его описания в виде статьи. Если кто-то видел, поделитесь пожалуйста.

И спасибо за наводку, обязательно заценим!
Все удовольствие стоило, если я правильно помню, в районе 2K$ за участие плюс 1K$ за жилье.
Либо на 30% больше времени на фейсбук:) Но я тоже надеюсь, что высвобождаемые ресурсы будут использоваться с умом.

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

Насчет перевода — как и у многих английских слов, у слова crisp есть несколько значений. Одно из них то, которое вы отметили, другим называют хрустящие чипсы (особенно в ходу в Британии, там прямо на упаковках пишут).
Да, почти все коммерческие продукты предоставляют возможность кастомизации скриптами. Это им необходимо, чтобы конкурировать со скриптовыми языками.

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

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

Кроме того, они расширяют круг потенциальных пользователей — помимо программистов, их могут использовать, например, аналитики, не знающие ни R, ни Python.

Ну и к тому же ускоряют интеграцию, так как часто поставляются вместе с другими инструментами вендора: отчетность, BI, планировщики и прочее. Т.е. не нужно писать свои адаптеры.
1

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность