Совместная Фильтрация: неперсонализированное подобие от объекта к объекту

Я пытаюсь вычислить подобие от объекта к объекту вроде "Клиентов Amazon, которые просмотрели/купили X, также просмотрели/купили Y и Z". Все примеры и ссылки, которые я видел, или для вычислительного подобия объекта для оцениваемых объектов для нахождения подобия пользователя-пользователя, или для нахождения рекомендуемых объектов на основе истории текущих пользователей. Я хотел бы начаться с нецеленаправленным подходом прежде, чем включить в предпочтения текущих пользователей.

Смотря на отчет рекомендаций Amazon.com, они используют следующую логику для офлайнового подобия объекта объекта:

For each item in product catalog, I1 
  For each customer C who purchased I1
    For each item I2 purchased by customer C
       Record that a customer purchased I1 and I2
  For each item I2 
    Compute the similarity between I1 and I2

Если я понимаю правильно, к тому времени, когда мы в, "Вычисляют similiarty между I1 и I2", у меня есть список объектов (I2), купленный в сочетании с единственным значением I1 (внешний цикл).

Как это вычисление выполняется?

Другая идея состоит в том, что я сверхдумаю это и делаю это более трудным, чем мне нужно к - было бы достаточно сделать главный-n запрос на количестве I2, купленного в сочетании с I1?

Я также ценю предложения на том, является ли этот подход корректным. Моя база данных продукта имеет о 150k объектах в любое время. Начиная с объема материала чтения я видел выставочное подобие пользовательского объекта или даже подобие пользователя-пользователя, должен я надеяться идти тем путем вместо этого.

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

править: хотя я перечислил Python как тег, я предпочту держать логику внутри дб, предпочтительно с помощью МН Oracle / SQL.

5
задан Charles 9 December 2013 в 05:19
поделиться

1 ответ

Есть хорошая книга O'Reilly на эту тему. Хотя в whitepaper логика может быть изложена в псевдокоде подобным образом, я не думаю, что такой подход будет хорошо масштабироваться. Все вычисления - это вычисления вероятности, поэтому такие вещи, как теорема Байеса, используются для того, чтобы сказать: "Учитывая, что человек А купил X, какова вероятность того, что он купил Z?". Простое перебирание данных - это слишком сложная задача. Приходится перебирать все данные для каждого человека.

5
ответ дан 18 December 2019 в 14:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: