Модель для тегов такая же, как и для других входных данных: они рассматриваются как непрерывный поток значений, которые увеличивают или уменьшают силу ассоциации. Если вы добавили тег с силой "1", добавьте связь еще раз с силой "-1", чтобы отменить ее. Приблизительное обновление в реальном времени приблизительно отменит первоначальное изменение векторов пользователя/тега; когда модель будет полностью перестроена, эти значения действительно отменятся, и тогда она действительно «уйдет».
removePreference()
делает что-то немного другое, и название немного сбивает с толку, так как часть его сохраняется от Mahout. Это просто делает товар снова пригодным для рекомендации. Он забывает об ассоциации, но не изменяет информацию о пользователе или элементе.
Для тегов нет аналога, потому что теги в любом случае никогда не рекомендуются. Таким образом, удаление тега равнозначно вызову setUserTag()
с отрицательными значениями.
Нет возможности запрашивать теги. Это может показаться удивительным, но в целом модель не раскрывает и даже не обязательно сохраняет все исходные входные данные. Все дело в доступе к полученным, изученным результатам: рекомендациям, похожим элементам и т. д.
Если вы удалите все пользовательские настройки, но есть пользовательские теги, пользователь действительно останется «живым» в модели, да. У него не будет рекомендаций, но его данные косвенно повлияют на другие рекомендации. Если вы повторно добавили пользователя, теги все равно будут действовать.
Я думаю, что семантика API необычна, но как бы преднамеренно: проблемная область отличается от простого хранения данных!
person
Sean Owen
schedule
05.06.2013