Концепция зад базирана на съдържание система за препоръки:

Първо бих искал да дам интуицията по отношение на системата за препоръки, базирана на съдържание, например как работи в реални практики и по-късно ще преминем към математическата част зад нея!

Ако приемем, че имаме потребител 1, който е гледал филм 1 (екшън), го е оценил с 5/5, филм 2 (романтичен) го е оценил с 4/5 и филм 3 (екшън) го е оценил съответно с 5/5.

Сега, ако Потребител 2 гледа Филм 6 (Екшън) го оценява с 5/5, а Филм 7 (Романтика) го оценява с 5/5, така че системата за препоръки, базирана на съдържание, най-вероятно ще препоръча Екшън филм 1 или Екшън филм 3 за Потребител 2, въз основа на оценките и вида на филма, с който и двамата Потребители са свързани.

Накратко, тези алгоритми се опитват да препоръчат елементи, които са подобни на тези, които потребителят е харесал в миналото или разглежда в настоящето.

Е, ето как накратко работи системата за препоръки, базирана на съдържание, но също така е много важно да разберете математиката зад всеки алгоритъм, така че нека се потопим в математиката зад този алгоритъм.

Математика зад алгоритъма:

И така, нека започнем с прост пример, като приемем следните данни,

Така че въпросът е, как можем да препоръчаме Неизвестен рейтинг на потребителите!?

Въз основа на горните данни можем да видим това. Филм 1, Филм 2 и Филм 3 са по-скоро базирани на екшън филми, докато филми 4 и филм 5 са ​​по-скоро романтични. Също така можем да заключим, че Потребител 1 и Потребител 2 предпочитат екшън филми пред романтични!, и заместник -Versa съответно за потребител 3 и потребител 4.

Където,

N(U)=Не. потребители=4,

N(M)=Не. на филми=5 и

N(Характеристики)=2 т.е.(Екшън и романтика)

Така че нека да разгледаме, Филм 1, приемайки стойността на X-отсечката като X(0)=1 и като вземем предвид стойностите на характеристиките, можем да напишем, Вектор на характеристиките за Филм 1, като вектор на Matrix(3,1) като [1 0.9 0 ], по подобен начин ще имаме вектори на функции за филм 2,3,4 и 5.

Сега, за всеки потребител "j", научава параметър Theta(j)==Реално число^(3) т.е.(Feature(2)+1), така че чрез използване

(Theta^(j))^(T)*x^(i), можем да намерим рейтинга на Movie(i), като използваме вектора на параметрите Theta(i) за всеки потребител, където (i) е не. на потребителя.

Нека разберем това с помощта на по-добро представяне на концепциите,

И така, въз основа на тези предполагаеми стойности, за вектор на параметър за потребител 1, нека предвидим оценка за филм 3,

Въз основа на изчислението, дадено по-долу!

И така, въз основа на изчисленията, видяхме, че прогнозираната оценка за филм 3 от потребител 1 ще бъде приблизително 4,5 звезди!

Но тук ние „приехме“ вектора на параметрите за потребител 1, така че как можем да получим вектора на действителните параметри не само за един потребител, но и за всеки потребител, който имаме!

Преди това нека поговорим за някои термини, които първо трябва да разберем:

Сега нека да видим как можем да предвидим действителната стойност на вектора на параметрите на всеки потребител (Което предположихме по-рано).

И така, за да научите вектора на параметрите (Theta^(j)), това може да се разглежда като проблем с линейната регресия, така че действителните вектори на параметрите и прогнозираните векторни стойности на параметри да са възможно най-близки, тъй като функцията за загуба,

Можем официално да представим това като,

Точно като моделите на линейна регресия, ние искаме да изберем този конкретен вектор на параметрите, за да минимизираме термина на средната квадратна грешка, сега можем също да добавим члена за регулация, за да избегнем свръхнапасването,

След като минимизираме този член, можем да получим доста добра оценка на вектор на параметрите на рейтинга на филма на потребителя „j“.

Така че, като цяло, можем да представим уравнението като,

Написахме уравнението, имайки предвид един потребител,

Сега, нека разгледаме уравнението, за множество потребители, можем да модифицираме нашето горно уравнение, просто като добавим сумиране, като вземем предвид „n“ броя на присъстващите потребители, което може да бъде представено като,

Сега,

Можем да представим цялото това уравнение, т.е. функцията за загуба, като нашето „J за (Theta(1),Theta(2),….,Theta(n)“, и това може да бъде умножено с подходящата функция за активиране и извадено от прогнозирания вектор на параметрите, за да се минимизира разликата между действителния и прогнозирания вектор на параметрите.

Следователно ще получим по-добре прогнозиран вектор на параметри за всеки потребител, който ще използваме, за да прогнозираме съответно рейтинга на филмите, и ето как работи системата за препоръки, базирана на съдържание!

Ние ще Това беше първият ми блог, първият ми принос към тази област, ако има корекции, нещо за подобряване, моля, уведомете ме.

Благодаря ви!.