'Stefanovi Martinkovi
bývalý admin blogov 26-07-2009 15:22:36
To ze nemam zmysel pre humor uz mi asi ostane. A lzi nemam rád. Karma v
diskusiach na SME je dana algoritmom, ktory vymyslel jeden z blogerov a neda sa
administratorom nijak ovplyvnit. Berte to alebo nie.'
'R. Dyda
Stefan Martinka 26-07-2009 18:02:44
nestrapnujte sa.
"Karma je dana algoritmom, ktory vymyslel jeden z
blogerov..."
Pekne slovicko, ze - "vymyslel". A navyse - bloger!
Gratulujem k technicky dokonale dotiahnutemu sposobu a k jeho objektivite. :D
Pod taketo "exaktne" vysvetlenie sa da schovat vsetko. Uplne vsetko. Aj
loz, ktorou sa ohanate. V tom pripade sa uz necudujem, ze vyvolenym sla karma
hore, a nevyvolenym dole. Samozrejme, teraz to uz nevyznieva ako
"prilepsenie kamaratom" - lebo tak to totiz VYMYSLEL, zvykajte si...
"...a neda sa administratorom nijak ovplyvnit."
Ahaaa, ´neda sa
ovplyvnit´. Este mi nieco napiste o objektivite, nestrannosti a pravde. Ze
nemate rad lzi, to ste uz napisal. :D Take poznate, ze - zlodej krici, chytte
zlodeja?'
Tieto repliky idú k podstate. Ibaže asi trochu ináč, než si ich autori predstavovali.
Začnem objektivitou. Ako možno definovať objektívne, ktorý diskutér si zaslúži vysoké a ktorý nízke hodnotenie? Je najlepší ten, čo píše najinformatívnejšie príspevky? Alebo najvtipnejší? Či ten, ktorý vie najmenej slovami povedať najviac? Alebo ten, kto diskutuje najviac? Či snáď...? Nie, na túto otázku neexistuje jednoznačná odpoveď. Dobrý, zlý, to nie sú presné kategórie, každý si pod nimi môže predstaviť niečo iné. Subjektívne napríklad taký trejdmarkový Ďuro je podľa jednej skupiny brilantný diskutér, podľa druhej odpad. Ktorá z nich má pravdu?
Podľa mňa môže mať každý svoj názor, ale ako celok majú užívatelia SME, presnejšie čitatelia diskusií a ich prispivatelia, názor spoločný, objektívne vyjadriteľný. Presne z tohto dôvodu bol ako prvý krok vývoja karmy diskutérov urobený medzi užívateľmi prieskum. Každý respondent mohol napísať najviac 10 svojich obľúbených a 10 neobľúbených diskutérov. Kto chcel, napísal koľko chcel.
Týmto spôsobom sa získala vzorka užívateľov, na ktorých bol vyjadrený kladný alebo záporný názor komunity ako celku. Samozrejme išlo len o vzorku, respondentmi neboli všetci užívatelia a nie každý diskutér bol hodnotený. Napriek tomu bola vzorka pomerne široká. Respondenti neboli len z "klubu", ale aj náhodní okoločítajúci alebo dokonca adminmi málo obľúbené typy. Aj hodnotenia sa rôznili, mnohí diskutéri boli i medzi obľúbenými a medzi neobľúbenými, v rôznej miere. Bol to názor davu, agregovaný do niekoľkých charakteristík pre každého hodnoteného diskutéra.
Ďalej bolo potrebné na druhej strane nájsť také strojom počítateľné charakteristiky, premenné v systéme plus vhodný algoritmus počítajúci s týmito premennými tak, aby výsledok čo najvernejšie odrážal názor davu. Išlo teda o to, nájsť vhodný model. Symbolicky povedané, pokiaľ názor davu na diskutéra je vyjadriteľný číslom D (malé D - zlý diskutér, veľké D - dobrý diskutér) a nájdeme vhodné premenné X, Y, Z, ... a vhodnú modelovú funkciu f() týchto premenných, tak bude platiť
D ~ f(X, Y, Z, ...).
Ide o bežnú modelovaciu úlohu s tým, že bolo potrebné určiť jednak D pre diskutérov hodnotených davom vo vyššie uvedenej vzorke, zvoliť aké funkcie f budeme skúšať ako kandidátov na modelovú funkciu a nakoniec prebrať premenné X atd., ktoré sú k dispozícii a vhodne ich spracovať.
Každopádne toto som nevymyslel, išiel som po dávno vyšliapanej cestičke modelovania. Úprimne povedané, túto časť práce som si veľmi užíval. V mojom zamestnaní sa zaoberám o.i. podobným modelovaním v oblasti finančných rizík. Bol som priam nažhavený vyskúšať svoje inštrumentárium na problém z úplne inej oblasti.
Začal som tým, že som s programátorom SME prešiel svoje predstavy o premenných, ktoré by mi bol schopný o jednotlivých diskutéroch vytiahnuť zo systému. Niekoľko málo mojich predstáv narazilo na technické obmedzenia, ale k dispozícii som dostal napriek tomu rôzne surové dáta (napr. vek užívateľa v systéme, priemernú dĺžku jeho posledných 20 príspevkov, atd.). Tie som následne spracoval, či už do podoby kombinovaných ukazovateľov (napr. priemerná dĺžka posledných 50 príspevkov užívateľa v porovnaní s priemernou dĺžkou posledných 100 príspevkov užívateľa - ukazuje trend zmeny dĺžky toho, čo diskutér píše) alebo následnými technikami, ktorých cieľom je zvýšenie kvality výsledného modelu z rôznych pohľadov.
Dostal som niekoľko mnoho kombinovaných premenných, ktoré mohli slúžiť ako vstup do modelu. Niektoré z nich už v tejto fáze ukazovali pomerne veľkú schopnosť (štatisticky) usporiadať diskutérov od najlepších k najhorším (podľa názoru davu).
Ďalším krokom bolo spojenie premenných do jedného modelu, s čím súvisel i výber vhodnej podmnožiny premenných, teda tých, ktoré sa budú vo finálnom modeli používať. Toto všetko sa deje na jeden šup v, hm, ani neviem slovenský výraz, nazvem to v krokovej regresii. Vyberiem si jednu premennú, tú najlepšiu. K nej potom pridám druhú, ktorá s ňou najlepšie ide dohromady a prepočítam parametre modelu. Potom tretiu, ktorá s už vybranými ide dobre dohromady a zlepší kvalitu modelu. Potom štvrtú, piatu, až kým nenastane situácia, že pridanie novej premennej model výrazne nezlepší. Lepší, horší model, na ich hodnotenie existujú exaktné ukazovatele, napríklad tieto .
Výsledkom bol jeden možný model. Už ten prvý, keď som si podľa jeho výsledkov zoradil diskutérov, bol pomerne uspokojivý. Lenže také jednoduché to nie je. Modelovanie, najmä v prípade, že nepoznáte skutočný vzťah medzi vstupnými premenými a výsledkom, si často vyžaduje vyskúšať viacero podobných modelov. Tak som vygeneroval v skutočnosti desiatky modelov, z ktorých som nakoniec big bossovi predložil šesť modelov na výber. Na favoritovi zo šestice sme sa zhodli - a ten model bol následne implementovaný do diskusného systému. Po drobných úpravách, treba dodať, ale tie nemali na výsledok výrazný vplyv, išlo vlastne len o zaradenie diskutérov do škály 0-100.
Model ako taký po skončení vývoja bol veľmi silný. V rámci vývojovej vzorky boli vyššie odkázané štatistiky v hodnotách lepších, než aké od svojich modelov klientskej kvality vyžadujú banky. Keď sme na jeho základe ohodnotili diskutérov, usporiadanie tých, na ktorých som mal nejaký názor, bolo veľmi dobré.
Samozrejme stalo sa, stáva sa a vždy sa pri podobnom druhu modelov bude stávať, že niektorý diskutér dostane karmu, akú by si podľa názoru davu nezaslúžil. Ide o štatistický model so síce dobrou, ale nie perfektnou vypovedacou schopnosťou. Dobrý diskutér môže zhodou okolností mať také hodnoty modelových premenných, ktoré mu priradia zlé hodnotenie - a naopak. Toto by sa malo vyskytovať len občas. Banky majú takúto eventualitu ošetrenú dohľadom človeka, ktorý v rámci hodnotenia klienta môže zasiahnuť a nesprávne hodnotenie opraviť. Ako to má v súčasnosti diskusný systém SME, to neviem, každopádne som to administrátorom odporúčal.
Ďalšia vec je, že takéto časom "zvetrávajú". Tesne po vývoji a nasadení sú kvalitné, ale časom rozlišujú dobrých a zlých slabšie a slabšie. Súvisí to s vývojom celej diskutérskej komunity, so zmenou štýlu, vývojom okolitého sveta, zmenou technických prostriedkov atd. Z tohto dôvodu je vhodné z času na čas model obnoviť, znovuvyvinúť, preparametrizovať, akokoľvek to nazveme. V bankách je takéto obnovovanie používaných modelov nevyhnutnosťou. V diskusnom systém SME obnova snáď bude veľmi skoro.
Najhorším prípadom zvetrávania je priama strata predpovedacej schopnosti premenných preto, že hodnotené objekty prispôsobia svoje správanie hodnotiacej funkcii. Konkrétne v prípade diskusií na SME by to napríklad znamenalo, že keby sa všeobecne vedelo, že čím dlhšie príspevky diskutér píše, tým ma vyššie hodnotenie, tak by istí karmohoniči vypisovali (či copypastovali) celé litánie. Keby sa vedelo, že čím viac odpovedí na diskusné príspevky diskutéra, tým vyššia karma tohto diskutéra, karmohoniči by si navzájom odpovedali ako besní. Lenže našťastie ani jeden z týchto parametrov nie je v jednoduchej podobe v modelovej funkcii (predsa by som ich tu neprezrádzal). A vlastne celá modelová funkcia je prísne tajná - ako hovoria znalci, top sekrét. Keby sa prevalila, prestala by fungovať a to dosť výrazne.
Zosumarizujem. Áno, bol som to ja, kto vyvinul funkciu karmy diskutéra. Neurobil som to sám, jednak mi pomáhali big boss a programátori, druhak bol veľmi dôležitý vstup respondentov, ktorí vyjadrili svoj názor na iných. Nevymyslel som to, len som použil známe techniky. Pravda, takéto modelovanie nie je exaktná záležitosť, vyžaduje si istý ľudský vstup, ale moje doterajšie skúsenosti s modelovaním mi dali dostatočný základ. Výsledok bol tesne po vývoji pre mňa osobne uspokojivý. "Pravda" v tomto prípade neexistuje, existuje len zhoda s názorom komunity ako celku, nielen navzájom sa potľapkávajúceho klubu, ale i vyrývačov, vtipkárov a lurkerov. Zástupcovia všetkých týchto skupín sa zapojili do prieskumu. (Keď bude ďalší prieskum, uvítam opäť názory všetkých.) Výsledok výpočtu možno administrátor môže ovplyvniť, ale ak to aj robia, sú to jednotky prípadov z tisícok diskutérov. Ostatné robí stroj. Vypočíta karmu podľa algoritmu - ale každý jeden užívateľ má naďalej možnosť s výsledkom nesúhlasiť, lebo práve v konkrétnom prípade daného diskutéra sa model môže mýliť. Väčšinou sa však nemýli...
Má s týmto všetkým niekto nejaký problém?
P.S. Ospravedlňujem sa vopred za prípadné nepresnosti napríklad v štatistickej terminológii alebo v popise postupu. Slovenská terminológia mi nie je veľmi známa a je možné, že som niektoré kroky opísal nedostatočne. Je to už viac ako 1,5 roka, i keď snaha bola.
P.S.2. Z dobre informovaného zdroja som sa dozvedel, že admini nemajú normálne nástroje na zmenu karmy diskutéra. Takže z excesov prosím viniť len model. :-)
Ako bola vyvinutá karma diskutéra
Krátko potom, čo bol pred asi 15 mesiacmi zavedený v súčasnosti platný algoritmus pre výpočet karmy diskutéra, objavilo sa mnoho dohadov a otázok, čo je to vlastne zač, kde sa to vzalo, čo to ovplyvňuje a tak podobne. Chcel som už vtedy napísať, ako bol algoritmus vyvinutý, ale... keby som mal korunu za každý článok, ktorý som chcel napísať a nenapísal, už by som bol v neskutočnej plnke. :-) Odvtedy záujem síce trochu utíchol, ale otázky sa objavujú pomerne často. Za všetky menujem dva nedávne diskusné príspevky k známemu Batrflajovmu výberu: