Можно ли настроить tf.estimator для неконтролируемого обучения с помощью самоопределенного оценочного графика без потерь? - PullRequest
0 голосов
/ 15 января 2019

Я реализую модель item2vec, используя идею word2vec с API tf.estimator для рекомендации продукта.

Нет проблем с реализацией обучающей части с помощью tf.estimator. Процесс такой же, как у word2vec, и я вижу каждую транзакцию как предложение. Разница лишь в том, как генерировать учебные данные: (target_item, context_item) пары После обучения проблемы псевдоклассификации я мог использовать обученный вектор внедрения для каждого элемента, чтобы измерить отношения между ними.

Проблема в том, что для оценки это не типичная контролируемая оценка обучения, т.е. используя в качестве входных данных eval-данные, проходя через тот же график, мы получаем прогнозы и точность.

Входные данные для оценки, которые я хотел бы использовать, имеют совершенно иной формат, чем входные данные для обучения. Формат входных данных Eval: (target_item, {context_item1, context_item2, ...}). С помощью этого я мог получить top_k ближайших элементов для каждого context_items, а затем посмотреть, входит ли target_item в коллекцию этих ближайших элементов, чтобы из него можно было получить коэффициент попадания.

Однако, tf.estimator.EstimatorSpec() для mode = MODE.EVAL требует loss в качестве ввода. Значит ли это, что оценка может использовать только часть тренировочного графика? Что я могу сделать, если у меня нет функции потерь для оценки в моем случае, так как оценка больше не проходит классификацию?

Большое спасибо.

...