В чем отличие рекомендательных систем от предсказания?
Никак не могу понять, в чем отличие рекомендательных систем от предсказания?
Скажем, на примере магазине. Если человек купил молоко, то с вероятностью 90% купит хлеб. Это предсказание. С помощью него можно выстраивать товар на полках, чтобы человек покупал сопутствующий товар. Но ведь в этом и задача рекомендательных систем.. Кто может пояснить?
Алексей Уколов, Многие говорят о том, что это совершенно разные вещи. Очень мало информации на русском по рекомендательным системам, их реализации на apache spark. Раньше я работал с R Studio и алгоритмами Apriori/Eclat и другими. Сейчас перехожу на spark для работы с рекомендательными системами. Хочу понять, в чем вообще разница.
Рекомендации базируются на коллаборативной фильтрации (как правило, но не всегда) - из себя она представляет просто поиск в истории совершенных действий, похожими на вас пользователями.
Предсказания же базируются на моделировании процесса (как правило, но не всегда), и на основе этой модели вычисляется прогноз (который возможно никогда не встречался в истории).
Хотя конечно ни кто не запрещает вам использовать предсказания для рекомендаций и наоборот.
А алгоритмы ALS и SVD помогают получить рекомендации?
Также хотел бы узнать, что сейчас наиболее популярно для анализа данных? Apache spark? Дело в том, что раньше я работал с алгоритмами Априори, Еклат и другими в RStudio. Сейчас начал изучать spark и пока не особо понял, что наиболее популярно в наше время. И что вообще собой представляет спарк, т.к. инфы на русском уж очень мало. Читал на хабре пару статей, но уж как-то пока не догоняю))
tr1ck1, спарк - это движек для организации распределенных задач (чаще всего вычислений связанных с анализом данных), есть немного пакетов для МЛ в спарке, но ими можно и не пользоваться, основное это у него масштабирование и распределение выполнения задач.
======
Сам спарк построен на скала, есть куча интерфейсов на разных языках и даже внутри одного языка есть разные интерфейсы для работы со спарком. Поэтому можно работать на том на чем удобнее.
Однако имей ввиду что сам спарк НИЧЕГО не решает, это не иструмент для например анализа данных, как например МАТЛАБ, это инструмент для организации распределенных вычеслений, у которого дополнительно есть библиотека с небольшим набором алгоритмов для анализа данных, тк они очень очень часто используются, и поэтому идут сразу в комплекте.
По поводу того какой язык лучше тебе использовать для работы с ним -> какой тебе удобнее тот и используй, нативно на скала это будет лучше по качеству и производительности, более того если ты знаешь скала, то ты знаешь всю экосистему скала, вкючая например СПАРК, тк у нас единый интерфейс для коллекций.
Много примеров из Джава со спарком -> тк индустрия классически уже построена на Джава.
и индустрия активно использует спарк.
Так же как и питон для анализа данных, который преподают для не программистов и студентов разных экономических/гуманитарных наук и потом они делая различные публичные исследования, выкладывают работы на своем языке, создавая впечатление что именно такие решения востребованы (что всего лишь впечатление)
=====
дима кубитский, Т.е., если хочется чего-то добиться в области биг дата и работой со спарк, надо хорошо знать яву?
А как вообще сейчас используется язык R в данной сфере?
дима кубитский, Я просто пока не особо представляю себе, как происходит то же построение рекомендательных систем. В чем вообще задачи людей из этой сферы. Когда я работал в RStudio, то просто подключал библиотеку нужного алгоритма, грузил данные и писал строчку кода для их обработки, далее пару строк кода для графиков и т.д. и т.п. Т.е., по сути, использовал готовые решения. В случае со спарк, как я понимаю, я могу подключить также язык R и использовать те же библиотеки и код, что и раньше в RStudio, но теперь в SPARK, или нет? Также если рассмотреть готовую библиотеку (mlib, например), там есть реализация ALS (метод для построения рек. систем), т.е. тоже кода 0 и просто копирую из туторила готовое решение?
И третий вопрос, в чем тогда задача специалиста, работающего на спарк? Использовать готовые решения или самому создавать алгоритмы для обработки (но я сомневаюсь, что создать алгоритм можно также легко, как и какую-нибудь программу на ява)? Ведь алгоритмы - это то, что разрабатывалось годами.
tr1ck1,
На спарке можно запускать какой-то алгоритм, чтоб он работал на кластере, а не на локальном компьютере.
Нужно понимать, что Р - это язык для прототипирования и быстрой валидации идеи.
Создать какой-то конечный продукт на нем не получится, но часто бизнес идет на то что отдельно люди разрабатывают и валидируют идеи и подходы в Р (ну или там в матлаб), а другие реализуют проверенные в матлабе идеи -> реализуют в высокопроизводительных средах в качестве продукта, сервиса и тд.
Люди работающие со спарком, именно запускают какие-то проверенные идеи, и реализуют это в качестве алгоритмов, которые они запускают на кластере компьютеров используя сам спарк.
Сами идеи они могут придумывать и проверять как сами, так и доверить это сторонним специалистам которые например делают это быстрее в МАТЛАБ или R.
Чтоб создавать конечные продукты прийдется переключиться на языки общего назначения.
Можешь выбрать какой тебе больше нравиться, для большинства популярных есть интерфейсы к спарку.
для спарка лучше джава/скала/питон (для энтерпрайза) - питон хоть и не являться высокопроизводительным инструментом, но в целом тоже имеет свою долю популярности.
====
дима кубитский, А мог бы я узнать контакт с вами? Вк или скайп, вайбер. Очень мало людей из этой сферы, даже многие вещи не у кого узнать. Сильно доставать не буду ))