Гибридная рекомендательная система с матричной факторизацией и линейной регрессией - PullRequest
0 голосов
/ 06 мая 2020

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

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

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

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

 SELECT
        p.* EXCEPT(movieId),
        u.* EXCEPT(userId),
        rating 
    FROM productFeatures p, userFeatures u
    JOIN movielens.ratings r
    ON r.movieId = p.movieId AND r.userId = u.userId

Мой вопрос: как я смогу получить рекомендации для пользователя из линейной модели, если у меня нет пользователя или элемента ID в модели?

Здесь вы можете найти полный код:

https://github.com/GoogleCloudPlatform/training-data-analyst/blob/master/courses/machine_learning/deepdive2/recommendation_systems/solutions/als_bqml_hybrid.ipynb

1 Ответ

1 голос
/ 14 мая 2020

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

Если вы включили mov ie ids и user идентификаторы в качестве функций, ваша регрессия попытается изучить те, которые либо добавят шум в модель, либо узнают, что низкие идентификаторы = более низкая оценка et c. Это возможно, особенно если эти идентификаторы расположены в каком-то порядке, о котором вы не знаете, например в хронологическом или по жанрам.

Примечание: вы можете использовать mov ie -specifi c или пользовательскую c информацию для построения модели, но у вас будет много-много измерений данных, и это, как правило, плохо исполнительские модели. Идея состоит в том, чтобы избежать проблемы размерности, сначала уменьшив размерность проблемного пространства. Факторизация матрицы - лишь один из многих способов сделать это. См., Например, PCA, LDA и word2ve c.

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