Странное поведение функции потерь в реализации матричной модели факторизации TensorFlow для системы рекомендаций - PullRequest
0 голосов
/ 27 августа 2018

Текущая реализация системы рекомендаций использует алгоритм TF 1.8 и WALS . Модель была обучена с использованием self.fit (input_fn = input_fn) и ML Engine с версией 1.8. Набор данных был сформирован в соответствии с примером с использованием tenorflow.train.Example (...) Извлечение из журналов обучения, показанных ниже.

Extraction from training logs

Подгонка была выполнена с некоторыми параметрами по умолчанию. Значение потерь уменьшилось при второй оценке. Однако потеря не изменилась после этого. Конечная взвешенная по корню квадратная ошибка (rwse) в этом обучении стала 0,126.

Настройка гиперпараметра была выполнена позже, и лучший набор параметров был использован в следующем обучении. Результат этого обучения показан ниже. Training logs using best parameters from hyperparameter tuning

Дерево вещей, чтобы отметить здесь. Во-первых, значение потерь в начале ниже, чем на последующих этапах оценки. Низкое значение в начале, скорее всего, связано с выбором параметров из результатов настройки гиперпараметра. Увеличение значения потерь в дальнейшем выглядит странно. Во-вторых, это неизменная величина потерь после второй оценки. Этот шаблон остается тем же самым, в то время как self.fit (input_fn = input_fn) используется для обучения модели. В-третьих, окончательное значение rwse в этой тренировке составило 0,487, а при настройке гиперпараметра с тем же набором параметров rwse = 0,015

Вопрос в том, наблюдал ли кто-нибудь нечто подобное? Можно ли улучшить производительность алгоритма, используя класс WALSMatrixFactorization и self.fit (input_fn = input_fn, steps = train_steps) ?? Заранее спасибо за помощь.

...