Często podczas pozyskiwania informacji, otrzymujemy od naszych klientów dostęp do danych składających się wyłącznie z pozytywnych zdarzeń np. listy przedmiotów zakupionych przez każdego użytkownika lub klikniętych reklam.
Wiele modeli uczenia maszynowego, aby móc prawidłowo oszacować prawdopodobieństwo pozytywnego zdarzenia potrzebuje też negatywnych zdarzeń. Mogą to być przedmioty, których użytkownik nie kupił podczas wizyty w sklepie (pomimo tego, że miał szansę je kupić) lub reklamy, które zobaczył, ale ich nie kliknął. W części projektów tych negatywnych zdarzeń jest tak dużo, że przetwarzanie ich wszystkich jest zbyt czasochłonne. W takich sytuacjach stosujemy samplowanie negatywnych zdarzeń, czyli wybór losowego podzbioru ze wszystkich potencjalnie dostępnych negatywnych zdarzeń.
W takiej strategii konstrukcji zbioru treningowego trzeba uważać na kilka pułapek:
- ważne jest to, aby nie wylosować jako zdarzenia negatywnego, zdarzenia, któremu odpowiadało identyczne zdarzenie pozytywne,
- trzeba losować z pełnej przestrzeni dostępnych negatywnych zdarzeń, ale nie dopuszczać np. do tego, aby do zbioru treningowego trafiły sprzeczne dane np. zdarzenia zakupu produktu niedostępnego danego dnia lub zakupu ze sklepu stacjonarnego, który tego dnia był nieczynny.
- w sytuacji, gdy chcemy odróżnić od siebie dobre rekomendacje produktów od średnich rekomendacji warto, aby w zbiorze treningowym w wylosowanych zdarzeniach były dobre i średnie rekomendacje, a nie dobre i kiepskie. Stosowaliśmy taką strategię przy okazji konkursu Recsys 2016 https://arxiv.org/pdf/1612.00959.pdf
- jeśli predykcje modelu są używane jako dokładne oszacowania prawdopodobieństwa np. w celu policzenia oczekiwanego przychodu z wyświetlenia reklamy, to predykcje modelu wymagają rekalibracji. Robimy to dokładnie tak, jak zespół Facebooka w sekcji 6.3 w tej publikacji.