======== Systemy rekomendacyjne ======== [[http://www.bizmind.pl/images/Napisali_o_nas/Sposoby_implementacji_rekomendacji_Marcin_Majda_6.pdf|Sposoby implementacji systemów rekomendacyjnych]] {{:pl:dydaktyka:ztb:2012:projekty:social_news:ernst_pacewicz_klimek_-_2005_-_recommendation_systems_prediction_of_web_site_user_preferences.pdf|Bardzo stary artykuł o systemach rekomendacyjnych}} **Collaborative filtering** **Główna idea**: dopasowanie ocen innych użytkowników do ocen wybranego użytkownika **Reprezentacja danych**: macierz //R// //m// x //n// //m// - użytkownicy //n// - pozycje //r[ij]// = 1, jeśli użytkownik i rekomenduje pozycję j; 0 w przeciwnym wypadku Zamiast miary binarnej można zastosować kilka stopni rekomendacji (//gwiazdki//) Podobieństwo między użytkownikami to po prostu liczba pozycji, na których ich wiersze się różnią (odległość Hamminga (która przy reprezentacji binarnej jest po prostu operacją XOR)) **Uwagi praktyczne**: * macierz R zwykle okazuje się bardzo rzadka (< 1% wartości 1) * jeżeli macierz jest zbyt duża, można wybrać reprezentatywny podzbiór (opcjonalnie: kazać użytkownikom obowiązkowo ocenić je przy rejestracji) i liczyć podobieństwo między użytkownikami tylko na podstawie pozycji z tego podzbioru Gdy mamy już wiedzę o tym, którzy użytkownicy są najbardziej podobni do rozpatrywanego, wystarczy pobrać pozycje rekomendowane przez nich i odfiltrować spośród nich te, które są już rekomendowane lub z których skorzystał już rozpatrywany użytkownik. ======== Mahout ======== **bayesian:** [[https://cwiki.apache.org/MAHOUT/bayesian.html]] Complementary Naive Bayes - implementacja bazuje na [[http://people.csail.mit.edu/jrennie/papers/icml03-nb.pdf|icml03-nb.pdf]] **collaborative filtering:** [[http://mahout.apache.org//taste.html|Mahout - Taste Documentation (fast collaborative filtering engine for Java)]] Przegląd implementacji uczenia maszynowego w mahout [[http://www.ibm.com/developerworks/java/library/j-mahout/]]