Learning to rank: RankLib. Krzysztof Pawlak, Jakub Sobieski



Podobne dokumenty
ALGORYTM RANDOM FOREST

2

PODSTAWY BAZ DANYCH. 19. Perspektywy baz danych. 2009/2010 Notatki do wykładu "Podstawy baz danych"

S O M SELF-ORGANIZING MAPS. Przemysław Szczepańczyk Łukasz Myszor

Klasyfikacja i regresja Wstęp do środowiska Weka

AUTOMATYKA INFORMATYKA

Overlord - Plan testów


Uczenie się maszyn. Dariusz Banasiak. Katedra Informatyki Technicznej Wydział Elektroniki

Metody systemowe i decyzyjne w informatyce

Kierunek: Informatyka Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne. Wykład Ćwiczenia

System wspomagania harmonogramowania przedsięwzięć budowlanych

Szkolenie: Testowanie wydajności (Performance Testing)

Razem godzin w semestrze: Plan obowiązuje od roku akademickiego 2014/15 - zatwierdzono na Radzie Wydziału w dniu r.

SI w procesach przepływu i porządkowania informacji. Paweł Buchwald Wyższa Szkoła Biznesu

Inteligentne wydobywanie informacji z internetowych serwisów społecznościowych

Python : podstawy nauki o danych / Alberto Boschetti, Luca Massaron. Gliwice, cop Spis treści

Kierunek: Informatyka Poziom studiów: Studia I stopnia Forma studiów: Stacjonarne. audytoryjne. Wykład Ćwiczenia

Wydział Elektrotechniki, Informatyki i Telekomunikacji. Instytut Informatyki i Elektroniki. Instrukcja do zajęć laboratoryjnych

OFERTA. Lp. Nazwa zadania Cena netto (zł) VAT (zł) Cena brutto (zł)

WEKA klasyfikacja z użyciem sztucznych sieci neuronowych

Sztuczna Inteligencja w energetyce

Zakładane efekty kształcenia dla kierunku Wydział Telekomunikacji, Informatyki i Elektrotechniki

QualitySpy moduł reports

Forma. Główny cel kursu. Umiejętności nabywane przez studentów. Wymagania wstępne:

Inżynieria danych I stopień Praktyczny Studia stacjonarne Wszystkie specjalności Katedra Inżynierii Produkcji Dr Małgorzata Lucińska

Metody eksploracji danych w odkrywaniu wiedzy (MED) projekt, dokumentacja końcowa

Indeksowanie full text search w chmurze

Algorytm grupowania danych typu kwantyzacji wektorów

INŻYNIERIA OPROGRAMOWANIA

QualitySpy moduł persystencji

Optymalizacja systemów

Customer Attribution Models. czyli o wykorzystaniu machine learning w domu mediowym.

Kombinacja jądrowych estymatorów gęstości w klasyfikacji - zastosowanie na sztucznym zbiorze danych

Metody systemowe i decyzyjne w informatyce

POLITECHNIKA LUBELSKA Wydział Elektrotechniki Kierunek: INFORMATYKA II stopień niestacjonarne i Informatyki. Część wspólna dla kierunku

Kierunek Informatyka stosowana Studia stacjonarne Studia pierwszego stopnia

Systemy pomiarowo-diagnostyczne. Metody uczenia maszynowego wykład I dr inż. 2015/2016

NEURAL NETWORK ) FANN jest biblioteką implementującą SSN, którą moŝna wykorzystać. w C, C++, PHP, Pythonie, Delphi a nawet w środowisku. Mathematica.

LEMRG algorytm generowania pokoleń reguł decyzji dla baz danych z dużą liczbą atrybutów

Wykaz zmian w programie WinAdmin Replikator

Oprogramowanie Xesar V (opublikowano dnia ) 1 Sieć wirtualna Podłączenie maks. 14 czytników Xesar z modułem aktualizującym

Sieci neuronowe i algorytmy uczenia Czyli co i jak andrzej.rusiecki.staff.iiar.pwr.wroc.pl s.

Tematy projektów Edycja 2019

Proces ETL MS SQL Server Integration Services (SSIS)

Indeksy w bazach danych. Motywacje. Techniki indeksowania w eksploracji danych. Plan prezentacji. Dotychczasowe prace badawcze skupiały się na

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Metody drążenia danych D1.3

P R Z E T W A R Z A N I E S Y G N A Ł Ó W B I O M E T R Y C Z N Y C H

Wykaz zmian w programie WinAdmin Replikator

SPOTKANIE 2: Wprowadzenie cz. I

KIERUNKOWE EFEKTY KSZTAŁCENIA

Zastosowania sieci neuronowych

Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1

Internetowa ogólnopolska baza informatycznych projektów badawczych otwartej innowacji Platforma współpracy SPINACZ 1/46

PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W NYSIE

KARTA MODUŁU KSZTAŁCENIA

Dokumentacja Końcowa

Interaktywne wyszukiwanie informacji w repozytoriach danych tekstowych

Systemy uczące się wykład 1

8. Drzewa decyzyjne, bagging, boosting i lasy losowe

Jazda autonomiczna Delphi zgodna z zasadami sztucznej inteligencji

INŻYNIERIA OPROGRAMOWANIA TESTOWANIE SYSTEMOWE

Wyszukiwanie informacji w internecie. Nguyen Hung Son

Część 2: Data Mining

Uniwersytet Warszawski Wydział Matematyki, Informatyki i Mechaniki. Paweł Parys. Nr albumu: Aukcjomat

Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa.

KOŁO NAUKOWE GEODETÓW Dahlta

Tematy dyplomów inżynierskich 2009 Katedra Inżynierii Oprogramowania

OpenAI Gym. Adam Szczepaniak, Kamil Walkowiak

Testowanie modeli predykcyjnych

Drzewa decyzyjne i lasy losowe

Wykrywanie twarzy na zdjęciach przy pomocy kaskad

Wstęp do sieci neuronowych laboratorium 01 Organizacja zajęć. Perceptron prosty

Inteligentne Multimedialne Systemy Uczące

Google Testing. Radosław Smilgin, , TestWarez

Odniesienie do efektów kształcenia dla obszaru nauk EFEKTY KSZTAŁCENIA Symbol

PRZEWODNIK PO PRZEDMIOCIE

Zastosowanie sieci neuronowych w problemie klasyfikacji wielokategorialnej. Adam Żychowski

OMNITRACKER Wersja testowa. Szybki przewodnik instalacji

P R Z E T W A R Z A N I E S Y G N A Ł Ó W B I O M E T R Y C Z N Y C H

!!!!!!!!!!! PORTFOLIO: Analiza zachowań użytkowników serwisów internetowych. Autorzy: Marek Zachara

KARTA PRZEDMIOTU. zaliczenie na ocenę WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI

TEORETYCZNE PODSTAWY INFORMATYKI

Transformacja wiedzy w budowie i eksploatacji maszyn

Testowanie oprogramowania. Piotr Ciskowski

OMNITRACKER Wersja testowa. Szybki przewodnik instalacji

O badaniach nad SZTUCZNĄ INTELIGENCJĄ

Program naprawczy po analizie wyników sprawdzianu zewnętrznego Szkoły Podstawowej w Bilczewie Rok szkolny 2015/2016

OPIS PRZEDMIOTU ZAMÓWIENIA

Poznań, dzień Zapytanie ofertowe

Wprowadzenie do teorii systemów ekspertowych

Razem godzin w semestrze: Plan obowiązuje od roku akademickiego 2016/17 - zatwierdzono na Radzie Wydziału w dniu r.

Sieć przesyłająca żetony CP (counter propagation)

Analiza współczynników zdrowego powietrza wewnątrz budynków pod kątem indywidualnego i komfortowego samopoczucia

Załącznik nr 2. Zasady pracy aplikacji InteGrRej.

Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa.

WEKA klasyfikacja z użyciem sztucznych sieci neuronowych

System Cyfrowego Obiegu Dokumentów to rozwiązanie ułatwiające procesy przechowywania, zarządzania i wyszukiwania dokumentów.

Microsoft Access materiały pomocnicze do ćwiczeń cz. 1

UCZENIE MASZYNOWE I SZTUCZNA INTELIGENCJA Jako narzędzia wspomagania decyzji w zarządzaniu kapitałem ludzkim organizacji

Transkrypt:

Learning to rank: RankLib Krzysztof Pawlak, Jakub Sobieski

Spis Treści 1) Wprowadzenie Machine learning, Learning to rank 2) Lemur Project 3) RankLib 4) Omówienie algorytmu AdaRank 5) Przykład działania a) Transformacja danych b) Uczenie c) Tworzenie rankingów d) Dane konkursowe e) Porównywanie algorytmów

Wprowadzenie Machine Learning Uczenie maszynowe - praktyczne zastosowanie dokonań w dziedzinie sztucznej inteligencji do stworzenia automatycznego systemu potrafiącego doskonalić się przy pomocy zgromadzonego doświadczenia (czyli danych) i nabywania na tej podstawie nowej wiedzy. (Wikipedia) Początkiem uczenia maszynowego może być projekt Arthura Samuela z firmy IBM, który w latach 1952-1962 rozwijał program do szkolenia zawodników szachowych. Przykłady zastosowań: analiza i użytkowanie olbrzymich baz danych, dostosowywanie się systemu do środowiska, systemy eksperckie, wyszukiwarki internetowe, oprogramowanie do rozpoznawania mowy, automatyczna nawigacja i sterowanie.

Wprowadzenie Learning to rank Learning to rank czy machine-learned ranking (MLR) jest zastosowaniem uczenia maszynowego do konstrukcji modelów rankingowych i systemów wydobywania informacji. Wykorzystywanie wydobywania dokumentów/informacji w wyszukiwarkach internetowych, do automatycznego konstruowania modeli rankingowych, przy wykorzystaniu zbiorów treningowych i testowych.

Spis Treści 1) Wprowadzenie Machine learning, Learning to rank 2) Lemur Project 3) RankLib 4) Omówienie algorytmu AdaRank 5) Przykład działania a) Transformacja danych b) Uczenie c) Tworzenie rankingów d) Dane konkursowe e) Porównywanie algorytmów

Lemur Project http://sourceforge.net/projects/lemur/ Powstał poprzez współpracę University of Massachusetts i Carnegie Mellon University. Dostarcza zbiór open-source funkcjonalności do modelowania językowego i wydobywania informacji. Wspiera wiele technologii jak ad-hoc retrieval, site-search i text mining. Zawiera także moduł wyszukiwania Indri, który wspiera indeksowanie dużych baz tekstowych, tworzenie prostych modelów językowych dla dokumentów, zapytania, implementacje systemów wydobywania opartym na modelach językowych itp. Napisany w C i C++, zaprojektowany jako system wyszukiwania pod systemu UNIX, ale może być uruchomiony także pod Windows.

Spis Treści 1) Wprowadzenie Machine learning, Learning to rank 2) Lemur Project 3) RankLib 4) Omówienie algorytmu AdaRank 5) Przykład działania a) Transformacja danych b) Uczenie c) Tworzenie rankingów d) Dane konkursowe e) Porównywanie algorytmów

RankLib Biblioteka zawarta w Lemur Project, zawiera algorytmy learning to rank. Aktualnie zaimplementowanie algorytmy: MART (Multiple Additive Regression Trees, a.k.a. Gradient boosted regression tree) [6] RankNet [1] RankBoost [2] AdaRank [3] Coordinate Ascent [4] LambdaMART [5] ListNet [7] Random Forests [8]

Spis Treści 1) Wprowadzenie Machine learning, Learning to rank 2) Lemur Project 3) RankLib 4) Omówienie przykładowego algorytmu AdaRank 5) Przykład działania a) Transformacja danych b) Uczenie c) Tworzenie rankingów d) Dane konkursowe e) Porównywanie algorytmów

Omówienie przykładowego algorytmu AdaRank Jest to algorytm typu listwise, buduje model rankingowy przez wykorzystanie podejści teorii Boosting. Teoria boosting opiera się na koncepcie słabych i mocnych ranker'ów Słabi ranker'zy są słabo związani z prawdziwą klasyfikacją. Mocni ranker'rzy są za to mocno związani. Paradygmat teorii Boosting wiąże się z stworzeniem jednego silnego ranker'a poprzez kombinacje zestawu słabych ranker'ów. AdaRank trenuje jednego słabego rankera przy każdym obrocie pętli iteracji, i łączy tych słabych rankerów jako finalną funkcję rankingową. Po każdym obrocie pętli wagi dokumentów są przeliczane, obniża wagi poprawnie ocenionych dokumentów dla danej metryki, i podwyższa wagi dokumentów które zostały ocenione źle dla tej samej metryki.

Omówienie przykładowego algorytmu AdaRank http://web.ist.utl.pt/~catarina.p.moreira/images/adarank.png

Omówienie przykładowego algorytmu AdaRank Przy starcie algorytmu, wagi są równo rozdzielone po zapytaniach. W każdym obrocie pętli AdaRank dystrybuuje wagi do zapytań w zestawie treningowym. Kiedy słaby ranker zostanie zbudowany, algorytm wiąże do niego wagę at > 0, która oznacza ważność danego rankera.

Spis Treści 1) Wprowadzenie Machine learning, Learning to rank 2) Lemur Project 3) RankLib 4) Omówienie przykładowego algorytmu AdaRank 5) Przykład działania a) Transformacja danych b) Uczenie c) Tworzenie rankingów d) Dane konkursowe e) Porównywanie algorytmów

PRZYKŁAD DZIAŁANIA

DANE KONKURSOWE

DANE ALLEGRO - PRODUKTY "IT_ID" "IT_NAME" "IT_BUY_NOW_PRICE" "PRIC E_WITH_DELIVERY" "BUY_COUNT" "BOLD" "FEA TURED" "THUMB" "SHOP_ITEM" "FREE_SHIPPIN G" "HIGHLIGHT" "SA" 5539139138 "Przyssawka mocowan na szybę do GoPro HERO4 Session" 24 27,94 0 0 0 1 1 0 0 1 5030987655 "Toner Brother TN-2005, HL-2035, HL- 2037 Super cena" 33,19 45,19 17 0 1 1 1 0 0 0 4913452241 "AAB COOLING THERMOPAD taśma 3mm 6,0 W/mK + KLEJ 3M" 16,9 19,9 0 0 0 1 1 0 0 1

DANE ALLEGRO id","p.searchtime","p.searchq","p.item_position","p.i t_id","p.pv","p.userhash" "1","1441962641155","automat do chleba","0","5176148404","0","n000234f32eac619b ce598741d598221e" "2","1441962641155","automat do chleba","1","5356036513","0","n000234f32eac619b ce598741d598221e" "3","1441962641155","automat do chleba","2","5180704274","0","n000234f32eac619b ce598741d598221e"

PLIK WEJŚCIOWY <line>.=. <target> qid:<qid> <feature>:<value> <feature>:<value>... <feature>:<value> # <info> <target>.=. <positive integer> <qid>.=. <positive integer> <feature>.=. <positive integer> <value>.=. <float> <info>.=. <string>

PRZYKŁAD 0 qid:3649 1:649.95 2:659.95 3:0 4:0 5:0 6:1 7:1 8:0 9:0 10:1 # "ANDROID BOX MINIX X8H PLUS TRANSLATOR MESSENGER" 0 qid:3649 1:210.11 2:218.1 3:0 4:0 5:0 6:1 7:0 8:0 9:0 10:0 # "The Pragmatic Translator Massimiliano Morini" 0 qid:3649 1:1299 2:1299 3:0 4:1 5:1 6:1 7:1 8:1 9:0 10:1 # "Comet V71 Tablet Translator Tłumacz" 0 qid:3649 1:0 2:7.99 3:0 4:0 5:0 6:1 7:0 8:0 9:0 10:0 # "KURS NAUKA ANGIELSKIEGO TRANSLATOR NOWE ZESTAW" 0 qid:3649 1:0 2:12 3:0 4:0 5:0 6:1 7:0 8:0 9:0 10:0 # "SHARP IQ-3100 ładny translator, kalkulator"

TRANSFORMACJA DANYCH

MODEL DANYCH

KROK 1. IMPORT DANYCH SEARCH

KROK 2. IMPORT DANYCH ITEM

KROK 3. STWORZENIE TABELI ZAPYTAŃ

KROK 4. STWORZENIE TABELI WYNIKÓW

KROK 5. POZYSKANIE DANYCH

KROK 6. EKSPORT DANYCH

WYNIK

UCZENIE

KROK 1. WYBÓR ALGORYTMU (-RANKER) MART (gradient boosted regression tree) RankNet RankBoost AdaRank Coordinate Ascent LambdaMART ListNet Random Forests

KROK 2. WYBÓR METRYK (-METRIC2T) MAP NDCG@k DCG@k P@k RR@k ERR@k

KROK 3. WSKAZYWANIE ZBIORÓW -train -> plik ze zbiorem uczącym -test -> plik ze zbiorem testowym w celu oszacowania danych uczących -validate -> plik ze zbiorem sprawdzającym (służy do dostrojenia modelu) -save -> plik do którego ma zostać zapisany model

KROK 4. DODATKOWE PARAMETRY -feature -> Plik wskazujący które własności mają być uwzględniane w rankowaniu -norm -> normalizacja wektorów własności -kcv -tts -tvs

KROK 4. URUCHOMIENIE UCZENIA java -jar bin/ranklib.jar -train data/train.txt -test data/test.txt -validate data/vali.txt -ranker 6 -metric2t NDCG@10 -metric2t ERR@10 -save mymodel.txt

TWORZENIE RANKINGU

KROK 1. PARAMETRY OBOWIĄZKOWE -load -> wczytanie modelu -test -> wskazanie zbioru testowego do oszacowania -rank -> wskazanie zbioru testowego do stworzenia rankingu

KROK 2. DODATKOWE PARAMETRY -metric2t -> Wskazanie testowanej metryki -score -> wskazanie w jakim pliku ma zostać zapisany ranking -idv -> zapisanie osiągów modelu -norm -> normalizacja wektorów właściwości

KROK 3. URUCHOMIENIE PROGRAMU java -jar RankLib.jar -load mymodel.txt -rank data/test.txt -score myscorefile.txt

PORÓWNYWANIE ALGORYTMÓW

KROK 1. STWORZENIE WSZYSTKICH MODELI java -jar bin/ranklib.jar -train data/train.txt -test data/test.txt -validate data/vali.txt -ranker 6 - metric2t NDCG@10 -metric2t ERR@10 -save mymodel.txt

KROK 2. UZYSKANIE PLIKÓW WYDAJNOŚCI java -jar RankLib.jar -load lm.model.txt -test MQ2008/Fold1/test.txt -metric2t NDCG@10 -idv output/lm.ndcg.txt

KROK 3. PORÓWNANIE MODELI java -cp bin/ranklib.jar ciir.umass.edu.eval.analyzer -all output/ -base baseline.ndcg.txt > analysis.txt

OVERALL COMPARISON System Performance Improvement Win Loss baseline.txt 0.0916 method0.txt 0.326 +0.2344 (+255.92%) 386 94 method1.txt 0.1423 +0.0507 (+55.31%) 165 109 method2.txt 0.1541 +0.0625 (+68.21%) 186 130 method3.txt 0.1808 +0.0892 (+97.36%) 251 135 method4.txt 0.3183 +0.2267 (+247.46%) 370 94 method5.txt 0.1907 +0.0991 (+108.19%) 283 123 method6.txt 0.3308 +0.2392 (+261.18%) 392 91 method7.txt 0.2799 +0.1883 (+205.55%) 353 94

DETAILED BREAK DOWN [ < -100%) [-100%, -75%) [-75%, -50%) [-50%, -25%) [- 25%, 0%) (0%, +25%] (+25%, +50%] (+50%, +75%] (+75%, +100%] ( > +100%] method0.txt 0 2 7 34 51 79 164 82 61 0 method1.txt 0 1 4 39 65 57 72 26 10 0 method2.txt 0 4 5 39 82 61 80 25 20 0 method3.txt 0 4 11 55 65 69 124 40 18 0 method4.txt 0 2 7 39 46 71 157 79 63 0 method5.txt 0 5 7 53 58 84 146 36 17 0 method6.txt 0 3 6 34 48 83 168 81 60 0 method7.txt 0 0 8 42 44 74 174 73 32 0

PRZYKŁADOWE ZAPYTANIE zrodlo min max rank MART 431 327 340 1 RankNet 431 163 653 8 RankBoost 431 88 573 7 AdaRank 431 236 458 6 Coordinate Ascent 431 378 378 4 LambdaMART 431 358 372 3 ListNet 431 334 344 2 Random Forests 431 399 399 5