Коллеги,
А а есть ли среди нас пользователи факторизационных машин. Хотелось бы пару вопросов узнать. Писать в форум по алгоритмам как-то рука поднимается, там совсем другие алгоритмы обсуждаются — такого больше нигде нет.
В частности как именно они используются в рекомендательных системах. Я так понимаю предсказания берут как предиктор? Или весы как-то используют.
Потом, я сейчас покрутил LibFM — что-то значения уж сильно прыгают из-за стохастической природы алгоритма, если поставить много итераций — стабильнее, но уже очень не быстро. Как с этим быть?
Здравствуйте, Gattaka, Вы писали:
G>Коллеги, G>А а есть ли среди нас пользователи факторизационных машин. Хотелось бы пару вопросов узнать. Писать в форум по алгоритмам как-то рука поднимается, там совсем другие алгоритмы обсуждаются — такого больше нигде нет. G>В частности как именно они используются в рекомендательных системах. Я так понимаю предсказания берут как предиктор? Или весы как-то используют.
в общих чертах, мы имеем на входе неполную и очень разряженную матрицу. (колонки — объекты, строки — юзеры, ячейки — оценка юзером объекта).
задача рекомендательной системы заполнить в этой матрице свободные места.
факторизационные методы делают разложение неполной матрицы на "латентные" факторы, которые описывают юзерские оценки в неком n-мерном пространстве. имея это n-мерное разложение, восстанавливается "исходная" двумерная матрица, в которой, вуаля, пустые ячейки теперь заполнены.
собственно, способ, как именно делать разложение на факторы, и определяет особенность конкретного факторизационного метода.
G>Потом, я сейчас покрутил LibFM — что-то значения уж сильно прыгают из-за стохастической природы алгоритма, если поставить много итераций — стабильнее, но уже очень не быстро. Как с этим быть?
в общем — точность предсказаний определяют в основном количество факторов (которое должно быть оптимальным для данной матрицы), точность(метод) разложения и масса мелких параметров. быстрый метод раскладывает матрицу в 100млн элементов (скажем 6000х17000) более-менее удовлетворительно в плане точности примерно за час. "ну да и фиг с ним!", — говорят эксперты. бо само разложение не надо делать часто. оно может вызываться периодически, скажем два раза в день/месяц/год. в остальное время для рекомендаций/предсказаний используется уже рассчитанная и сохраненная "восстановленная" матрица.
ПС: а predictor делает predictions, которые и есть предсказания
а весы можно использовать, если есть для этого основания, но как правило используют само значение, округленное и отсеченное в рамках шкалы оценок системы
Здравствуйте, paul.marx, Вы писали:
PM>Здравствуйте, Gattaka, Вы писали:
PM>Оба-на! PM>Наконец-то возможность подвернулась высказаться в теме от первого лица! PM>Ну и похвастать книжкой: https://www.amazon.com/Providing-Actionable-Recommendations-Paul-Marx/dp/3844102159/ PM>
PM>ответ в главе 2.1.1.3 PM>в общих чертах, мы имеем на входе неполную и очень разряженную матрицу. (колонки — объекты, строки — юзеры, ячейки — оценка юзером объекта). PM>задача рекомендательной системы заполнить в этой матрице свободные места. PM>факторизационные методы делают разложение неполной матрицы на "латентные" факторы, которые описывают юзерские оценки в неком n-мерном пространстве. имея это n-мерное разложение, восстанавливается "исходная" двумерная матрица, в которой, вуаля, пустые ячейки теперь заполнены.
PM>собственно, способ, как именно делать разложение на факторы, и определяет особенность конкретного факторизационного метода.
PM>в общем — точность предсказаний определяют в основном количество факторов (которое должно быть оптимальным для данной матрицы), точность(метод) разложения и масса мелких параметров. быстрый метод раскладывает матрицу в 100млн элементов (скажем 6000х17000) более-менее удовлетворительно в плане точности примерно за час. "ну да и фиг с ним!", — говорят эксперты. бо само разложение не надо делать часто. оно может вызываться периодически, скажем два раза в день/месяц/год. в остальное время для рекомендаций/предсказаний используется уже рассчитанная и сохраненная "восстановленная" матрица.
PM>ПС: а predictor делает predictions, которые и есть предсказания PM>а весы можно использовать, если есть для этого основания, но как правило используют само значение, округленное и отсеченное в рамках шкалы оценок системы
Ага, т.е. "аппроксимируют" матрицу с пропущенными значениями, а потом дают на вход какому-нибудь GBM? Это типа лучше работает, чем GBM на исходных данных? И еще вопрос в случае если у меня нет оценок продуктов, а нужно просто предсказать что клиент купит продукт или нет. По факту бинарная оценка 0- не покупал и 1 — покупал. В данном случае имеет смысл применять факторизационные машины? Возможен профит?
Re[2]: Факторизационные машины в повседневной жизни
Здравствуйте, paul.marx, Вы писали:
PM>факторизационные методы делают разложение неполной матрицы на "латентные" факторы, которые описывают юзерские оценки в неком n-мерном пространстве. имея это n-мерное разложение, восстанавливается "исходная" двумерная матрица, в которой, вуаля, пустые ячейки теперь заполнены.
Старый добрый метод выделения главных компонент, или что-то более умное?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[3]: Факторизационные машины в повседневной жизни
Здравствуйте, Gattaka, Вы писали:
G>Ага, т.е. "аппроксимируют" матрицу с пропущенными значениями, а потом дают на вход какому-нибудь GBM? Это типа лучше работает, чем GBM на исходных данных? И еще вопрос в случае если у меня нет оценок продуктов, а нужно просто предсказать что клиент купит продукт или нет. По факту бинарная оценка 0- не покупал и 1 — покупал. В данном случае имеет смысл применять факторизационные машины? Возможен профит?
Наверное очень зависит от того, что продаёшь.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[3]: Факторизационные машины в повседневной жизни
Здравствуйте, Erop, Вы писали:
E>Здравствуйте, paul.marx, Вы писали:
PM>>факторизационные методы делают разложение неполной матрицы на "латентные" факторы, которые описывают юзерские оценки в неком n-мерном пространстве. имея это n-мерное разложение, восстанавливается "исходная" двумерная матрица, в которой, вуаля, пустые ячейки теперь заполнены.
E>Старый добрый метод выделения главных компонент, или что-то более умное?
ну, скажем так, principal components и SVD работают только на полной матрице.
мысль в факторизации, однако, та же, вопрос только в том, как выделить компоненты на неполной жутко разреженной матрице непонятно какого ранга.
в этом, наверное, и кроется "что-то более умное".
Здравствуйте, Gattaka, Вы писали:
G>Ага, т.е. "аппроксимируют" матрицу с пропущенными значениями, а потом дают на вход какому-нибудь GBM? Это типа лучше работает, чем GBM на исходных данных?
под GBM я знаю только Gesellschaft für Biochemie und Molekularbiologie.
поэтому на этот вопрос про GBM ответить не могу.
G>И еще вопрос в случае если у меня нет оценок продуктов, а нужно просто предсказать что клиент купит продукт или нет. По факту бинарная оценка 0- не покупал и 1 — покупал. В данном случае имеет смысл применять факторизационные машины? Возможен профит?
теоретически так можно делать.
практически профит будет не на всех задачах/матрицах.