Как реализовать алгоритм Apple iTunes «Genius»? - PullRequest
8 голосов
/ 16 сентября 2009

Мне всегда было интересно, как и как лучше всего реализовать функцию «Genius» в iTunes.

Я, вероятно, мог бы грубо заставить его, но мне было просто интересно, есть ли у кого-нибудь понимание.

Спасибо.

Ответы [ 4 ]

13 голосов
/ 16 сентября 2009

Алгоритм Genius является примером системы рекомендаций, которая является горячей темой в системах электронной коммерции. Настолько, что у Netflix был приз в 1 миллион долларов, который продолжался в течение нескольких лет, чтобы улучшить свою систему рекомендаций всего на 10%.

В iTunes у вас есть коллекция музыки. Гений может предположить, что если у вас есть эта музыка, она вам должна понравиться. Если у достаточного количества людей есть песня B с песней A, тогда Genius может сказать, что если у вас есть песня A, вам, вероятно, понравится песня B.

Просто иметь песню было бы довольно слабой рекомендацией. Лучше было бы, если бы пользователь оценил эту музыку, чтобы вы могли повысить силу «рекомендации» на этой основе.

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

1 голос
/ 17 января 2012

Взгляните на это, термин «частота - обратная частота документа» , это метод, который ранжируется в соответствии с тем, что вам нравится, чем больше «уникальности», тем больше влияние понравившейся песни на рекомендации. 1003 *

По сути, если вам нравится и играет только U2, алгоритму / программе будет сложно рекомендовать что-то особенное, что вам по вкусу.

С другой стороны, если вы более разнообразны в использовании iTunes, те менее известные группы, которые вам действительно нравятся, будут иметь больший вес, поскольку они больше изолируют вас от массы.

1 голос
/ 16 сентября 2009

Step1 - собрать данные для всех кликов / воспроизведения на пользователя. Это было бы много данных.

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

Step3 - сохраняйте лимит (скажем, top10), чтобы показывать ваши рекомендации из вышеупомянутого списка песен

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

Я мог бы разочаровать инженеров интеллектуального анализа данных, дав столь наивное / простое объяснение чрезвычайно сложной области компьютерных наук. Простите меня :)

0 голосов
/ 16 сентября 2009

Важный момент: вы должны иметь данные от лотов пользователей. Вы не можете сделать это сами, используя грубую силу (если только не хотите создать это полностью вручную).

...