Как реализовать этот алгоритм рекомендаций? - PullRequest
2 голосов
/ 03 апреля 2011

Большинство статей с рекомендациями, которые я читал, сосредоточены на модели Netflix, где пользователи оценивают элементы.То, что я хочу сделать, немного отличается (я думаю).

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

Как бы вы реализовали этот алгоритм?Похоже, что одним из возможных способов было бы просто реализовать алгоритм ранжирования ELO и использовать порядок этих результатов в качестве «рейтинга», но у него есть серьезные недостатки в том, что нескольким элементам нельзя присвоить максимальный рейтинг (который пользователь можетсделали, если бы дали возможность самим оценивать предметы).

Еще один способ, который мне кажется более перспективным, - это предварительно определить общие свойства каждого транспортного средства (например, цвет, тип кузова, 2 двери против 4двери и т. д.) и используйте их, чтобы получить общее представление о свойствах, которые нравятся каждому пользователю, и основать на этом рекомендации.

Ответы [ 2 ]

1 голос
/ 05 апреля 2011

Я попытаюсь это сделать.

Предположим, что каждому автомобилю присваивается набор свойств.Если бы этот набор свойств был закодирован как вектор, одним из возможных методов рекомендации было бы использование самоорганизующихся карт (SOM).Основная суть SOM - это классификатор входных векторов.Если вы обучаете SOM с входными векторами, представляющими различные классы ввода, SOM начнет кластеризовывать свои векторы хранения, чтобы больше походить на каждый класс ввода.Обратите внимание, что исходный вектор ввода не сохраняется.Чтобы обучить SOM с входным вектором, выбирается лучший вектор в SOM, а затем область вокруг этого вектора становится больше похожей на входной.Конечно, смотрите Википедию http://en.wikipedia.org/wiki/Self-organizing_map.

Так как это относится к этой ситуации?Ну, один SOM может быть использован для обучения на изображениях, которые нравятся человеку, и один может быть обучен на тех, которые ему нравятся.Даже если нет единого стиля, который им нравится, кластеры должны формироваться вокруг автомобилей, которые им нравятся / не нравятся.Тогда выяснение того, нравится ли им машина, которую они не выбрали, - это вопрос того, насколько хорошо она соответствует группам из их симпатий и антипатий.Обратите внимание, что в этом случае было бы лучше подобрать автомобили, которые не похожи друг на друга или, скорее всего, не понравятся обоим.

Когда человек впервые присоединяется к сайту, может быть целесообразно разрешить емувыбрать сразу несколько симпатий и антипатий, чтобы посеять SOM.

Удачи!

0 голосов
/ 23 мая 2012

Мэйби, уже слишком поздно, чтобы ответить, но ты можешь проверить этот . Речь идет о профессоре из Массачусетского технологического института, который утверждает, что 5-звездочный рейтинг, рейтинг «как» и т. Д. Не работают, он предлагает алгоритм, который работает с вводом по парам, как вы и предлагаете (автомобиль A или автомобиль B). Алгоритм довольно сложный, но его можно найти по ссылке.

...