6

Zrobiłem mały program systemu ALS polecający, jak znalazł na Apache Spark website, który używa Mllib. Kiedy korzystasz z zestawu danych z ocenami 1-5 (korzystałem z zestawu danych MovieLens), daje on rekomendacje z przewidywanymi ocenami powyżej 5! Najwyższy wynik, jaki znalazłem w moich małych testach to 7,4. Oczywiście, albo nie rozumiem, co kod ma zrobić, albo coś poszło nie tak. Zbadałem systemy Latent Factor Recommender i miałem wrażenie, że implementacja Spark Mlib ALS została oparta na this one.Apache Spark ALS Rekomendacja

Dlaczego miałby on zwracać oceny wyższe niż to, co jest możliwe? To nie ma sensu.

Czy źle zrozumiałem algorytm lub program jest wadliwy?

Odpowiedz

9

Patrzysz na odpowiedni artykuł, ale myślę, że spodziewasz się, że algorytm zrobi coś, co nie jest zamierzone. Produkuje niskopoziomowe przybliżenie do twojego wejścia jako iloczyn dwóch macierzy, ale nic na temat mnożenia macierzy nie zaciska wartości wyjściowych.

Można zacisnąć lub zaokrąglić wartości. Możesz tego nie chcieć, ponieważ dostajesz dodatkowe informacje o tym, o ile silniejsza niż 5 jest przewidywana ocena. Przypuszczam, że algorytm nie jest również możliwy, aby przyjąć, że maksymalna możliwa wartość to maksymalna obserwowana wartość na wejściu.

+0

Dzięki za wspaniałą odpowiedź, Sean. Jednak rodzi kolejne pytanie. W jaki sposób oblicza się błąd średniej kwadratowej (RMSE) dla takiego algorytmu? Rozumiem, że celem algorytmu było zminimalizowanie RMSE na znanych danych, jeśli algorytm nie zwraca wyników "podobnych do podobnych" (np. Wartości oceny), a następnie, co się dzieje? Przepraszam, jeśli to głupie pytanie, nie robiłem wcześniej takich matematyki. – monster

+0

Nie jesteś pewien co masz na myśli; wynik jest szacunkową oceną, więc można go bezpośrednio porównać z RMSE. W praktyce, przypuszczam, że zacieśniłbyś wyniki do [1,5]. To dobrze, i powinieneś to zrobić przed obliczaniem RMSE. –

+0

Przepraszam, nie byłam zbyt jasna, ale twoja odpowiedź odpowiedziała na to, co chciałem zapytać - że RMSE z przewidywanej oceny 7, kiedy realna ocena wynosi 5, jest tak samo złe, jak przewidywanie, że ocena wynosi 3 (jeśli używamy RMSE jako wskaźnika dobrego algorytmu). Jednak dla celów prognozowania rozumiem, że to 7 oznacza "naprawdę ci się spodoba". Patrząc na swój profil, jesteś autorem książki, z której ostatnio korzystałem, aby pomóc mi w nauce, kudo, jest wspaniale! Mam zamiar poprosić o kolejną Q na ALS, byłoby wspaniale, gdybyś mógł rzucić okiem. – monster