Что следует учитывать при создании механизма рекомендаций? - PullRequest
19 голосов
/ 10 сентября 2008

Я прочитал книгу Программирование Коллективного Разума и нашел ее захватывающей. Недавно я слышал о проблеме, которую Амазон отправил миру, чтобы предложить лучший механизм рекомендаций для их системы.

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

Как первое эмпирическое правило, я думаю ... " Больше информации не обязательно лучше, когда речь идет о нечетких алгоритмах."

Я знаю, что это субъективно, но в конечном итоге это измеримая вещь (щелчок в ответ на рекомендации).

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

В двух словах: «Каков наилучший способ составить рекомендацию?»

Ответы [ 4 ]

5 голосов
/ 23 ноября 2008

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

5 голосов
/ 05 марта 2011

Согласен с @Ricardo. Этот вопрос слишком широкий, например, вопрос «Каков наилучший способ оптимизации системы?»

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

(Конечно, вы должны быть готовы к тому, что большинство ваших векторов будет супер разреженным!)

Мой ответ, безусловно, слишком поздний для @Allain, но для других пользователей, которые находят этот вопрос с помощью поиска, пришлите мне личку и задайте более конкретный вопрос, и я обязательно отвечу.

(я профессионально проектирую двигатели.)

5 голосов
/ 10 сентября 2008

Вы не хотите использовать «общую популярность», если у вас нет информации о пользователе. Вместо этого вы хотите выровнять этого пользователя с аналогичными пользователями и соответствующим весом.

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

Еще один совет, но на этот раз ad hoc: я нахожу, что есть люди, где, если им что-то нравится, мне почти наверняка не понравится. Я не знаю, является ли этот эффект реальным или воображаемым, но было бы забавно создать своего рода «негативный эффект», а не просто объединять людей по сходству.

Наконец, есть компания, специализирующаяся именно на этом, которая называется SenseArray . Владелец ( Ian Clarke из Freeet Fame ) очень доступен. Вы можете использовать мое имя, если позвоните ему.

2 голосов
/ 18 июля 2011

@ Лао Цзы, я согласен с тобой.

По моему мнению, рекомендуемые двигатели состоят из:

  • Ввод контекста, поступающий из систем, учитывающих контекст (регистрация всех ваших данных)
  • Логические рассуждения для фильтрации наиболее очевидных
  • Экспертные системы, которые улучшают ваши субъективные данные за период времени на основе входных данных контекста, и
  • Вероятностное обоснование принятия решения в непосредственной близости на основе взвешенной суммы предыдущих действий (убеждений, желаний и намерений).

P.S. Я сделал такую ​​рекомендацию двигателя.

...