Jak poradzić sobie z modelem prognostycznym „samobójczym”?

36

Oglądałem prezentację specjalisty ds. ML od jednego z głównych sprzedawców detalicznych, gdzie opracowali model pozwalający przewidywać zdarzenia z magazynu.

Załóżmy przez chwilę, że z czasem ich model staje się bardzo dokładny, czy nie byłoby to w jakiś sposób „samobójcze”? Oznacza to, że jeśli model naprawdę działa dobrze, będą w stanie przewidywać zdarzenia braku zapasów i ich unikać, ostatecznie dochodząc do punktu, w którym będzie ich niewiele lub nie będzie ich wcale. Ale w takim przypadku nie będzie wystarczających danych historycznych, aby uruchomić ich model, lub ich model zostanie wykolejony, ponieważ te same czynniki przyczynowe, które wskazywały na brak akcji, już tego nie robią.

Jakie są strategie radzenia sobie z takim scenariuszem?

Dodatkowo można wyobrazić sobie odwrotną sytuację: na przykład system rekomendujący może stać się „samospełniającą się przepowiednią” ze wzrostem sprzedaży par pozycji wynikającym z wyników systemu rekomendującego, nawet jeśli te dwa przedmioty nie są tak naprawdę związane z.

Wydaje mi się, że oba są wynikiem swoistej pętli sprzężenia zwrotnego, która zachodzi między wyjściem predyktora a działaniami podejmowanymi na jego podstawie. Jak poradzić sobie z takimi sytuacjami?

Przywróć Monikę
źródło
7
(+1) W niektórych analogicznych sytuacjach związanych ze szkolnictwem wyższym ludzie mówią o modelu „kannabalizacji się”. Urzędnicy uczelni, korzystając z modeli, przyznają pomoc finansową, aby osiągnąć określone cele związane z rekrutacją i pomocą finansową, tylko po to, aby przekonać się, że w rezultacie decyzje o rekrutacji przyszłych studentów są coraz mniej określone lub przewidywalne na podstawie przyznanej pomocy finansowej .
rolando2
1
Odpowiedź na to pytanie jest trudna, ponieważ zależy to w dużej mierze od sytuacji. W przypadku wyczerpania zapasów istnieją dobre rozwiązania, ale w przypadku osób polecających może nie być większego problemu, jeśli Twój model stanie się nieco nakazowy.
Dennis Jaheruddin

Odpowiedzi:

15

Istnieją dwie możliwości wykolejenia modelu wykrywania braku zapasów (OOS):

  1. Zależność między danymi wejściowymi a OOS może z czasem ulec zmianie. Na przykład promocje mogą prowadzić do wyższego OOS (sprzedaż promocyjna jest trudniejsza do przewidzenia niż zwykła sprzedaż, częściowo dlatego, że nie tylko średni wzrost sprzedaży, ale także wariancja sprzedaży, a „trudniejsze do przewidzenia” przekłada się często na OOS), ale system i jego użytkownicy mogą się tego nauczyć i zgromadzić dodatkowe zapasy na promocje. Po pewnym czasie pierwotny związek między promocjami i OOS już nie obowiązuje.

    Jest to często nazywane „przesunięciem modelu” lub podobne . Możesz temu zaradzić, dostosowując swój model. Najczęstszym sposobem jest inne ważenie danych wejściowych, co daje mniejszą wagę starszym obserwacjom.

  2. Nawet jeśli relacja między predyktorem a OOS się nie zmienia, rozkład predyktora może się zmienić. Na przykład wiele dni z zerową sprzedażą konkretnej jednostki magazynowej (SKU) może sygnalizować OOS - ale jeśli model działa dobrze, wówczas OOS może zostać zmniejszona w całym systemie, a po prostu może nie być tak wielu sekwencji zerowej sprzedaży .

    Zmiany w rozkładzie predyktora nie powinny stanowić problemu. Twój model po prostu wyświetli niższe prawdopodobieństwo OOS.


W końcu prawdopodobnie nie musisz się zbytnio martwić. Nigdy nie będzie zero OOS. Występują mechanizmy sprzężenia zwrotnego, takie jak powyższe, ale nie będą działać, dopóki system operacyjny nie zostanie całkowicie wyeliminowany.

  • Niektóre oczekujące OOS mogą po prostu nie być możliwe do uniknięcia. „Mam jedną półkę na półce i prawdopodobnie w nadchodzącym tygodniu prawdopodobnie stanę przed zapotrzebowaniem na pięć sztuk, ale kolejna dostawa jest możliwa dopiero za tydzień”.
  • Niektóre OOS będzie bardzo trudne do przewidzenia, nawet jeśli avertable, gdyby były znane w czasie. „Gdybyśmy wiedzieli, że zrzucimy paletę z wózka widłowego i zniszczymy cały produkt, zamówilibyśmy kolejny”.
  • Detaliści rozumieją, że muszą dążyć do wysokiego poziomu usług, ale że 100% nie jest osiągalne. Ludzie przychodzą i kupują cały zapas na niektóre produkty. Jest to trudne do przewidzenia (patrz wyżej) i na tyle rzadkie, że nie chcesz zapełniać półek, ponieważ może się to zdarzyć. Porównaj prawo Pareto: poziom usług wynoszący 80% (lub nawet 90%) jest dość łatwy do osiągnięcia, ale 99,9% jest znacznie trudniejszy. Niektóre OOS są świadomie dozwolone.
  • Zachowuje się coś podobnego do prawa Moore'a : im lepsza staje się ML, tym więcej oczekiwań wzrośnie, a ludzie trudniej stworzą model. Podczas gdy algorytmy wykrywania OOS (i prognozowania) ulegają poprawie, detaliści są zajęci, co utrudnia nam życie.
    • Na przykład poprzez rozprzestrzenianie się wariantów. Łatwiej jest wykryć OOS na czterech smakach jogurtu niż na dwudziestu różnych smakach. Czemu? Ponieważ ludzie nie jedzą pięć razy więcej jogurtu. Zamiast tego prawie niezmieniony całkowity popyt jest teraz rozłożony na pięciokrotnie większą liczbę jednostek SKU, a ich zapasy są o jedną piątą wyższe niż wcześniej. Długi ogon rozszerza się, a sygnały słabną.
    • Lub zezwalając na kasę mobilną przy użyciu własnego urządzenia. Może to znacznie obniżyć psychologiczne bariery dla kradzieży sklepowych , więc inwentaryzacje systemu będą jeszcze gorsze niż są już , i oczywiście inwentaryzacje systemu są prawdopodobnie najlepszym predyktorem dla OOS, więc jeśli są wyłączone, model się pogorszy.

Tak się składa, że ​​od ponad dwunastu lat pracuję w prognozowaniu sprzedaży detalicznej, więc mam pewien pomysł na temat takich wydarzeń.


Mogę być pesymistą, ale myślę, że bardzo podobne efekty działają w innych przypadkach użycia ML niż wykrywanie OOS. A może nie jest to pesymizm: oznacza to, że problemy prawdopodobnie nigdy nie zostaną „rozwiązane”, więc praca będzie dla nas jeszcze za dziesięciolecia.

S. Kolassa - Przywróć Monikę
źródło
W szczególności zgadzam się z twoim ostatnim komentarzem. Najgorsza wersja tego scenariusza wydaje się punktem wyjścia do twierdzenia o pełnym zatrudnieniu / braku darmowego lunchu. Co sprawia, że ​​jest to interesujące pytanie IMO!
senderle
26

Jeśli używasz modelu do wspierania decyzji o interwencji w systemie, to logicznie model powinien starać się przewidzieć wynik uwarunkowany daną interwencją. Następnie osobno powinieneś zoptymalizować, aby wybrać interwencję z najlepszym oczekiwanym rezultatem. Nie próbujesz przewidzieć własnej interwencji.

W takim przypadku model może przewidzieć popyt (zmienną, której nie kontrolujesz bezpośrednio), co w połączeniu z wyborem zapasu spowoduje wystąpienie zdarzenia braku zapasów lub nie. Model powinien nadal być „nagradzany” za prawidłowe przewidywanie popytu, ponieważ jest to jego zadanie. Out-of-stock wydarzeń zależeć będzie od tej zmiennej wraz ze swoim wyborze obsady.

nanoman
źródło
2
Tak właśnie rozwiązuje się w praktyce. Model czarnej skrzynki, który nie zapewniłby zrozumienia czynników napędzających, ale tylko przewidywałby, że w środę nastąpi wyprzedaż, miałby bardzo ograniczone zastosowanie, gdyby ludzie nie mogli zrozumieć założeń. (Przy założeniu, że model nie jest na miejscu).
Dennis Jaheruddin
@DennisJaheruddin: Z drugiej strony stwórz model, który będzie w stanie przewidzieć, kiedy produkt będzie niedostępny, pomimo terminowego ponownego zamówienia i możesz zabić.
Joshua
1
Jest to nieco bardziej skomplikowane, ponieważ w zastosowanym modelu sygnał zapotrzebowania był tylko jednym czynnikiem. Ale wykorzystali również inne czynniki, w oparciu o warunki w sklepie, aby uwzględnić sytuacje, w których zapasy znajdowały się w sklepie, ale nie na półce (na przykład na zapleczu lub w jednej z kas fiskalnych lub punktów obsługi, ponieważ klient zmienił się ich umysł w ostatniej chwili). Do tego nie używali tylko popytu, ale także innych przyczynowych kierowców.
Przywróć Monikę
@Alex, ta złożoność sprowadza się do sieci prostych mechanizmów podaży / popytu rządzących różnymi lokalizacjami, niezależnie od tego, czy model je wyraźnie reprezentuje. Cel modelu jest dokładniej opisany jako przewidywanie poziomu zapasów, a nie popytu, ale staje się to istotne tylko wtedy, gdy wyraźnie rozważasz istnienie niekontrolowanych czynników zarówno podaży, jak i popytu w punkcie sieci (półka), gdzie zapasy poziomy mają znaczenie. Czynniki takie jak zamawianie większej ilości zapasów lub regularne uzupełnianie półek przez personel nadal muszą być czynnikami w modelu.
Czy
Możesz wspomnieć o możliwości, że popyt różni się w zależności od zapasu.
Jak
9

Prawdopodobnie możesz śledzić, kiedy mają miejsce zdarzenia uzupełniania zapasów. Zatem kwestią arytmetyki jest ustalenie, kiedy zapasy zostaną wyczerpane, jeśli model nie zostanie użyty do uzupełnienia zapasów.

Zakłada się, że każdy dodatni poziom zapasów jest niezależny od poziomu sprzedaży. Komentator mówi, że to założenie nie ma zastosowania w rzeczywistości. Tak czy inaczej nie wiem - nie pracuję na detalicznych zestawach danych. Ale dla uproszczenia moje proponowane podejście pozwala na wyciąganie wniosków przy użyciu kontrfaktycznego rozumowania; to, czy to uproszczenie jest zbyt nierealne, aby dać sensowny wgląd, zależy od ciebie.

Sycorax mówi Przywróć Monikę
źródło
Chyba nie rozumiem, jak to odpowiada na pytanie. Problemy, jakie rozumiem, to: (a) po wdrożeniu modelu w produkcji optymalna funkcja prognozowania zapasów jest teraz zupełnie inna niż wcześniej, ponieważ zmieniliśmy rozkład danych; (b) Im lepszy jest nasz model, tym rzadsze będą zdarzenia związane z brakiem akcji, a tym samym trudniej będzie je dokładnie przewidzieć. Wiedza „kiedy zapasy zostaną wyczerpane, gdyby model nie został wykorzystany do uzupełnienia zapasów”, nie jest ani tu, ani tam, ponieważ model jest obecnie w produkcji
Jake Westfall,
@JakeWestfall Ten rodzaj analizy nazywa się wnioskiem kontrfaktycznym. Jeśli znasz ekwipunek przez cały czas i wiesz, kiedy jest on ponownie uzupełniany, możesz utworzyć scenariusz alternatywny, który zakłada, że ​​nie udało się uzupełnić zapasów: po prostu odejmij zapasy od zapasów po tym, jak miało to miejsce. Teraz masz szereg czasowy odzwierciedlający przypuszczenie, którego nigdy nie uzupełniałeś. Kontynuuj tę serię czasową do wyczerpania zapasów. Teraz wiesz, kiedy miałoby miejsce niedobór zapasów bez uzupełniania zapasów. W jaki sposób ten scenariusz alternatywny ma inny rozkład danych?
Sycorax mówi Przywróć Monikę
Rozumiem to wszystko. Nie rozumiem, w jaki sposób rozwiązuje to problemy poruszone w PO. Załóżmy na przykład, że silnym predyktorem wyprzedaży jest to, czy jest to pierwszy dzień miesiąca (kiedy wiele osób otrzymuje zapłatę). Korzystając z naszego nowego modelu, możemy teraz uniknąć tych zapasu akcji, zapobiegawczo zamawiając więcej jednostek pod koniec każdego miesiąca. Tak więc teraz „pierwszy dzień miesiąca” nie będzie już użytecznym prognostykiem zapasy w przyszłości. Rzeczywiście moglibyśmy obliczyć alternatywne prawdopodobieństwo wyprzedaży w pierwszym miesiącu, gdybyśmy nie zamówili z wyprzedzeniem, ale w jaki sposób nam to pomaga?
Jake Westfall
2
Pomaga nam to, ponieważ daje alternatywne prawdopodobieństwo zapasy, gdyby zapas nie wystąpił. OP pyta „jak sobie poradzić” z faktem, że model ograniczający występowanie niedoborów zapasów nie będzie miał tylu wystąpień niedoborów dostępnych w surowych danych. Chodzi mi o to, że możesz wyciągać wnioski na temat alternatywnego występowania zapasów i wykorzystywać to jako surogat. Jakiej pomocy chciałeś?
Sycorax mówi Przywróć Monikę
1
@Sycorax: Zakładasz, że na liczbę zakupów widocznych na półce nie wpływa zachowanie kupującego. To nieprawidłowe założenie. Wpływ może być słaby, ale nie jest nieobecny.
Ben Voigt
8

Twój scenariusz jest bardzo podobny do krytyki Lucasa w dziedzinie ekonomii. W uczeniu maszynowym jest to nazywane „ przesunięciem zestawu danych ”.

Możesz to przezwyciężyć, jak mówi @Sycorax, poprzez jawne modelowanie.

użytkownik_ogólny
źródło
2

Należy pamiętać, że ML jest celem instrumentalnym. Ostatecznie nie chcemy przewidywać zdarzeń braku zapasów, chcemy zapobiegać zdarzeniom braku zapasów. Przewidywanie brakujących zapasów jest po prostu środkiem do osiągnięcia tego celu. Jeśli chodzi o błędy typu II, nie stanowi to problemu. Albo nadal mamy OOSE, w którym to przypadku mamy dane do wyszkolenia naszego modelu, albo nie mamy, w którym problem, do którego rozwiązania został stworzony model, został rozwiązany. Problemem mogą być błędy typu I. Łatwo wpaść w Bear Patrolbłędem jest to, że masz system X zbudowany w celu zapobiegania Y, nie widzisz Y, więc dochodzisz do wniosku, że X zapobiega Y, a wszelkie próby zamknięcia X są odrzucane na podstawie „Ale robi tak dobrą robotę zapobieganie Y! ” Organizacje mogą być zamykane na drogie programy, ponieważ nikt nie chce ryzykować powrotu Y. Trudno jest ustalić, czy X jest naprawdę konieczne, nie dopuszczając takiej możliwości.

Następnie staje się to kompromisem tego, ile jesteś skłonny od czasu do czasu zaangażować się (w zależności od modelu) w zachowanie nieoptymalne, aby uzyskać grupę kontrolną. Jest to część każdej aktywnej eksploracji: jeśli masz lek, który Twoim zdaniem jest skuteczny, musisz mieć grupę kontrolną, która nie otrzymuje tego leku, aby potwierdzić, że jest on faktycznie skuteczny.

Akumulacja
źródło