2. SME.SK ODPORÚČAČ
• Aké články čítajú mne podobní ľudia a ja som nevidel?
• veľa veľa dát (~1M pageviews denne)
• každú minútu nové (~1000)
• veľa veľa traffic (peak okolo 9 ráno)
• rýchla odozva (horná hranica ~2-3 sekundy)
3. ALGORITMUS
• algoritmus k-najbližších susedov
• fulltext search ako ho nepoznáte (tf-idf zadarmo!)
• + implicitná negatívna spätná väzba
• čo už videl, ale neklikol
• + explicitná negatívna spätná väzba
• toto nechcem už vidieť (x tlačítko)
4. SYNTETICKÉ TESTOVANIE
• 15-dňové logy
• trénovacia / testovacia časť
• na koľko % z top10 klikol neskôr?
• škálovateľnosť (voči velkosti okna)
5. REÁLNE TESTOVANIE Normalized reject rate
0.7
• 2 odporúčače
• “standard”
0.6
0.5 ?
0.4
• + implicitná negatívna spätná väzba standard
%
0.3 negative feedback
• parameter veľkosti okolia 0.2
0.1
• 5 až 50 s krokom 5 0
5 10 15 20 25 30 35 40 45 50
• = 20 skupín neighborhood size
• 7 dní = 2.8M odporúčaní click/reject ratio
?
3.1
• čo merať? 2.9
2.7
• počet klikov na “toto nechcem” 2.5
• počet klikov na odporúčané články 2.3
2.1
standard
negative feedback
• pomer klikov na článok a klikov na 1.9
“toto nechcem” Signifikancia? 1.7
1.5
Kruskal - Wallis 5test 10 15 20 25 30 35 40 45 50
neighborhood size
Normalized click rate
1.2
1
0.8
!
0.6 standard
%
negative feedback
0.4
0.2
0
5 10 15 20 25 30 35 40 45 50
neighborhood size
6. NASADZOVANIE – PRÍPRAVA
• rails, mysql, sphinx, passenger, cron, apache, debian
• Virtuálny stroj od sme.sk
• Monitorovanie výkonu (New Relic RPM)
• záťaž, pamäť, pomalé akcie, databáza, dopyty, indexy...
• Reportovanie chýb (Hoptoad + Redmine)
• pošle mail keď nastane chyba, otvorí/upraví ticket...
• Automatické nasadzovanie (capistrano)
• stiahne novú verziu z repozitára, migrácie db, crontab, symlink,
restart...
7. NASADZOVANIE - REALITA
• Virtuálny stroj sme.sk >> nimbus.fiit.stuba.sk
• Monitorovanie výkonu #win
• Notifikácia chýb + Redmine #fail
• MySQL
• pri tabuľkách s >10M riadkov končí sranda
• query planner je niekedy sprostejší ako ja #fail
• Automatické nasadzovanie #win
• príkaz na vypnutie služby (.htaccess redirect 400)
8. NASADZOVANIE - REALITA
• Virtuálny stroj sme.sk >> nimbus.fiit.stuba.sk
• Monitorovanie výkonu #win
• Notifikácia chýb + Redmine #fail
• MySQL
• pri tabuľkách s >10M riadkov končí sranda
• query planner je niekedy sprostejší ako ja #fail
• Automatické nasadzovanie #win
• príkaz na vypnutie služby (.htaccess redirect 400)
9. NASADZOVANIE - REALITA
• Virtuálny stroj sme.sk >> nimbus.fiit.stuba.sk
• Monitorovanie výkonu #win
• Notifikácia chýb + Redmine #fail
• MySQL
• pri tabuľkách s >10M riadkov končí sranda
• query planner je niekedy sprostejší ako ja #fail
• Automatické nasadzovanie #win
• príkaz na vypnutie služby (.htaccess redirect 400)
10. NASADZOVANIE - REALITA
• Virtuálny stroj sme.sk >> nimbus.fiit.stuba.sk
• Monitorovanie výkonu #win
• Notifikácia chýb + Redmine #fail
• MySQL
• pri tabuľkách s >10M riadkov končí sranda
• query planner je niekedy sprostejší ako ja #fail
• Automatické nasadzovanie #win
• príkaz na vypnutie služby (.htaccess redirect 400)
11. SPUSTENIE
• pondelok 8.11. 10%!
• o 4 hodiny neskôr
• don’t panic!
• 1 jadro + 2GB RAM => 4 jadrá + 3GB RAM
• hacky hack!
• utorok 9.11.
• streda 10.11 7:30am
• mašina je mŕtva
12. SPUSTENIE 10%!
• pondelok 8.11.
• o 4 hodiny neskôr
• don’t panic!
• 1 jadro + 2GB RAM => 4 jadrá + 3GB RAM
• hacky hack!
• utorok 9.11.
• streda 10.11 7:30am
• mašina je mŕtva
13. SPUSTENIE
• pondelok 8.11.
• o 4 hodiny neskôr
• don’t panic!
• 1 jadro + 2GB RAM => 4 jadrá + 3GB RAM
• hacky hack!
• utorok 9.11.
• streda 10.11 7:30am
• mašina je mŕtva