Kontekst historyczny. Tradycyjne platformy edtech przez długi czas wykorzystywały statyczne ścieżki kształcenia o ustalonej trudności materiału dla wszystkich użytkowników. Wraz z rozwojem uczenia maszynowego oraz możliwościami przetwarzania danych w czasie rzeczywistym pojawiły się systemy adaptacyjne, które dynamicznie dostosowują treści do indywidualnych zdolności poznawczych ucznia. Jednak ocena skuteczności takich systemów napotyka fundamentalny problem metodologiczny: niemożliwe jest jednoczesne pokazanie temu samemu użytkownikowi zarówno wersji adaptacyjnej, jak i statycznej kursu dla czystego porównania, bez naruszania doświadczeń użytkowników.
Problematyka. Klasyczne A/B testy nie mają tutaj zastosowania w czystej postaci, ponieważ algorytm adaptacji działa w czasie rzeczywistym na podstawie danych strumieniowych o interakcji, a zablokowanie użytkownika w statycznej grupie narusza logikę produktu i stwarza ryzyko etyczne w zakresie zapewnienia z góry nieoptymalnego doświadczenia edukacyjnego. Ponadto występuje silna endogenność: użytkownicy z różnym początkowym poziomem wiedzy reagują na adaptację asymetrycznie (niektórzy potrzebują uproszczeń, innym - trudności), co wymaga metod oceny heterogenicznych efektów wpływu.
Szczegółowe rozwiązanie. Optymalne podejście stanowi kombinacja Regression Discontinuity Design (RDD) na progu aktywacji algorytmu oraz Difference-in-Differences (DiD) dla kohort użytkowników z różnym czasem wprowadzenia. Po pierwsze, jeśli algorytm aktywuje się po osiągnięciu określonego poziomu błędów w rozwiązaniu zadań (na przykład >30% błędnych odpowiedzi z rzędu), można zastosować Sharp RDD, porównując użytkowników bezpośrednio przed i po progu aktywacji adaptacji. Po drugie, do oceny długoterminowego efektu na utrzymanie stosuje się Synthetic Control Method: buduje się ważoną kombinację użytkowników z historycznych kohort, które nie miały dostępu do systemu adaptacyjnego, maksymalnie imituje zachowanie obecnej grupy testowej przed wprowadzeniem. Dodatkowo stosuje się Causal Forest lub Meta-learners do kwantyfikacji heterogeniczności efektu w segmentach początkowego przygotowania. Dane agregowane są za pomocą SQL z funkcjami okienkowymi do śledzenia sesji, a analiza statystyczna przeprowadzana jest w Pythonie z wykorzystaniem bibliotek causalml, pymc do bayesowskiej oceny niepewności oraz sklearn do budowy zmiennych proxy.
W internetowej szkole programowania „CodeStart” wprowadzono algorytm adaptacyjnego śledzenia, który automatycznie upraszczał lub utrudniał zadania z Pythona w zależności od tempa rozwiązywania poprzednich zadań i wzorców błędów. Menedżer produktu zażądał oceny, czy zwiększa to wskaźnik ukończenia kursu z obecnych 45% do docelowych 60%, jednak zespół analityczny napotkał problem, że wyłączenie algorytmu dla grupy kontrolnej prowadziło do masowego odpływu na drugim dniu nauki, co czyniło porównanie niepoprawnym.
Rozważano trzy opcje rozwiązania problemu oceny.
Opcja 1: Klasyczny test A/B z całkowitym wyłączeniem algorytmu dla 50% ruchu. Plusy tego podejścia obejmują prostotę interpretacji wyników i bezpośrednią porównywalność metryk między grupami. Minusy to wysokie ryzyko utraty użytkowników w grupie kontrolnej z powodu frustracji zbyt dużą trudnością lub, przeciwnie, nudą z powodu zbyt prostych zadań, co tworzy błąd przetrwania (survivorship bias) i narusza normy etyczne dotyczące równego dostępu do jakościowej edukacji.
Opcja 2: Analiza danych historycznych przed wprowadzeniem (pre-post analysis) bez grupy kontrolnej. Plusy: brak konieczności pozbawiania części publiczności poprawy oraz możliwość szybkiego uzyskania wyników. Minusy: niemożność oddzielenia efektu algorytmu od czynników zewnętrznych, takich jak sezonowość (początek roku akademickiego), zmiana jakości ruchu z kanałów reklamowych i wydarzenia makroekonomiczne, co czyni ocenę efektu niepewną i subiektywną.
Opcja 3: Zastosowanie Regression Discontinuity Design na progu aktywacji adaptacji z instrumentami. Wybrano tę opcję, ponieważ algorytm włączał się automatycznie po przekroczeniu progu błędów na poziomie 25% w module, co tworzyło naturalny eksperyment. Porównaliśmy użytkowników z 24% i 26% błędami – prawie identyczne grupy pod względem obserwowanych cech, ale z różnym statusem adaptacji. Do oceny długoterminowej zbudowano syntetyczną kontrolę z kohort zeszłego roku z podobnym rozkładem początkowych umiejętności, wykorzystując Propensity Score Matching.
Ostateczny wynik wykazał, że algorytm adaptacyjny zwiększa wskaźnik ukończenia kursu o 18 punktów procentowych (z 45% do 53%) dla użytkowników ze średnim poziomem przygotowania, ale przynosi negatywny efekt (-5%) dla zaawansowanych studentów, którym system błędnie upraszczał materiał z powodu nietypowych wzorców rozwiązywania. Na podstawie tych danych wprowadzono korekcyjny czynnik progu trudności dla doświadczonych użytkowników, co doprowadziło całkowitą konwersję do 58%.
Jak radzić sobie z sytuacją, gdy algorytm adaptacji ciągle się uczy (online learning), a jego predykcje zmieniają się w czasie, co czyni statyczną ocenę efektu nieważną?
Odpowiedź. Należy stosować thompson sampling lub contextual bandits jako część projektu eksperymentalnego już na etapie wprowadzenia. Zamiast ustalonego wpływu, modeluje się rozkład prawdopodobieństwa efektu, który aktualizowany jest przy każdym nowym obserwowaniu. Do oceny stosuje się metody off-policy evaluation, takie jak inverse propensity weighting (IPW) lub doubly robust estimators, które korygują błąd, który powstaje w wyniku zmian polityki algorytmu w trakcie zbierania danych historycznych. Krytycznie ważne jest logowanie wersji modelu i jego parametrów dla każdej podjętej decyzji w ClickHouse lub podobnym magazynie, aby później stratyfikować analizę według wersji algorytmu i uwzględnić jego ewolucję.
Dlaczego standardowe porównanie średnich (t-test) między grupami z włączonym i wyłączonym algorytmem daje zniekształconą ocenę, nawet przy randomizacji, i jak to naprawić?
Odpowiedź. Problem tkwi w efektach sieciowych (spillover effects) oraz naruszeniu założenia SUTVA (Stable Unit Treatment Value Assumption). Jeśli użytkownicy współdziałają ze sobą za pośrednictwem forów, projektów grupowych lub czatów, grupa kontrolna "zaraża się" wpływem przez uczenie się społeczne i wymianę doświadczeń. Aby to naprawić, stosuje się cluster randomization (randomizacja na poziomie klas/strumieni, a nie pojedynczych użytkowników) lub exposure mapping – modelowanie prawdopodobieństwa kontaktu z adaptacyjną wersją kursu. Alternatywnie stosuje się two-stage least squares (2SLS) z instrumentalną zmienną (np. wartość progowa błędów aktywacji adaptacji), aby wyizolować lokalny średni efekt wpływu (LATE).
Jak odróżnić prawdziwy efekt adaptacji od efektu nowości (novelty effect), kiedy użytkownicy aktywniej wchodzą w interakcje tylko dlatego, że interfejs się zmienił, a nie z powodu poprawy jakości doboru zadań?
Odpowiedź. Należy prowadzić analysis by cohorts z różnymi datami wprowadzenia i śledzić temporal dynamics efektu w czasie. Jeśli metryki zaangażowania wracają do poziomu bazowego po 2-3 tygodniach od rozpoczęcia korzystania – to klasyczny efekt nowości. Do rozdzielenia stosuje się segmented regression z punktem przełomu (interrupted time series) lub porównanie z holdout group, której algorytm "udaje" adaptacyjny, ale w rzeczywistości pokazuje losową lub statyczną treść (placebo test). Ważne jest także analizowanie nie tylko metryk proxy (czas na platformie), ale także hard metrics (wyniki końcowego egzaminu lub projektu praktycznego), które są mniej podatne na krótkoterminowe wahania motywacji i odzwierciedlają rzeczywiste przyswojenie materiału.