28
Р Р е е ш ш е е н н и и е е з з а а д д а а ч ч и и S S e e a a r r c c h h R R e e s s u u l l t t s s R R e e l l e e v v a a n n c c e e Александр Дьяконов Московский государственный университет имени М.В. Ломоносова (Москва, Россия)

Александр Дьяконов, ВМК МГУ, Решение задачи Search Results Relevance (на платформе Kaggle)

Embed Size (px)

Citation preview

РРеешшееннииее ззааддааччии SSeeaarrcchh RReessuullttss RReelleevvaannccee

ААллееккссааннддрр ДДььяяккоонноовв

ММооссккооввссккиийй ггооссууддааррссттввеенннныыйй ууннииввееррссииттеетт

ииммееннии ММ..ВВ.. ЛЛооммооннооссоовваа ((ММоосскквваа,, РРооссссиияя))

Разбор задачи с www.kaggle.com 2 слайд из 28 Александр Дьяконов (Москва, МГУ)

Moscow Data Science Meetup 27 мая 2016 года

Задача Search Results Relevance

ППооххоожжаа ннаа ккллаассссииччеессккууюю ззааддааччуу ппооииссккаа

rrooww iidd qquueerryy pprroodduucctt__ttiittllee pprroodduucctt__ddeessccrriippttiioonn

mmeeddiiaann

rreelleevvaannccee

rreelleevvaannccee

vvaarriiaannccee

78 230 harleydavidson Harley-Davidson and Philosophy

(Paperback) 4 0.943

120 367 ninja turtle socks Highpoint Kids' 5PK No Show

(Assorted)

He will feel like a

superhero in the Teenage

Mutant Ninja Turtles 5PK

No Show Socks by

Highpoint.

4 0.800

6076 19557 long prom dress Daniella Collection

This one piece dress has

mesh and rhinestone

detailing. This dress

features long sleeves, a

round neckline and a

flared hem.

3 0.866

153 472 16 gb memory card Sandisk 16GB non-HS MSD Flash Drive

3in1 - Black (SDSDQR-016G-T46A)

SanDisk Elevate 16GB non-

HS MSD 3in, microSD memory

card with USB adapter and

SD adapter. Includes

RescuePro recovery

software.

Memory Storage Capacity:

16GB

Wired Connectivity: Micro

SD Slot

Features: Plug and Play

Includes: MicroSD Adapter,

Adapter, USB Adapter

Battery no battery used

4 0.000

Разбор задачи с www.kaggle.com 3 слайд из 28 Александр Дьяконов (Москва, МГУ)

Moscow Data Science Meetup 27 мая 2016 года

Задача

ДДаанн ззааппрроосс:: 1166 ggbb mmeemmoorryy ccaarrdd

Ему соответствует ввыыддааччаа.

Элемент выдачи –

(название товара, описание)

SSaannddiisskk 1166GGBB nnoonn--HHSS MMSSDD FFllaasshh DDrriivvee 33iinn11 -- BBllaacckk ((SSDDSSDDQQRR--

001166GG--TT4466AA))

SSaannDDiisskk EElleevvaattee 1166GGBB nnoonn--HHSS MMSSDD 33iinn,, mmiiccrrooSSDD mmeemmoorryy ccaarrdd

wwiitthh UUSSBB aaddaapptteerr aanndd SSDD aaddaapptteerr.. IInncclluuddeess RReessccuueePPrroo rreeccoovveerryy

ssooffttwwaarree..

MMeemmoorryy SSttoorraaggee CCaappaacciittyy:: 1166GGBB

WWiirreedd CCoonnnneeccttiivviittyy:: MMiiccrroo SSDD SSlloott

FFeeaattuurreess:: PPlluugg aanndd PPllaayy

IInncclluuddeess:: MMiiccrrooSSDD AAddaapptteerr,, AAddaapptteerr,, UUSSBB AAddaapptteerr

BBaatttteerryy nnoo bbaatttteerryy uusseedd

Паре (запрос, выдача) соответствует релевантность – 1, 2, 3 или 4.

Дана ещё дисперсия релевантностей (т.к. несколько ассесоров

оценивало выдачу), но не была использована.

Запомним: релевантность в обучении – медиана релевантностей,

которые проставили ассесоры

Разбор задачи с www.kaggle.com 4 слайд из 28 Александр Дьяконов (Москва, МГУ)

Moscow Data Science Meetup 27 мая 2016 года

Задача

ППооччееммуу ннее ккллаассссииччеессккааяя ззааддааччаа ппооииссккаа??

ЗЗааппррооссыы вв ттеессттее ттааккииее жжее ккаакк ии вв ооббууччееннииии!!

ЭЭттоо ммоожжнноо ииссппооллььззооввааттьь!!

Разбор задачи с www.kaggle.com 5 слайд из 28 Александр Дьяконов (Москва, МГУ)

Moscow Data Science Meetup 27 мая 2016 года

Задача

ХХоорроошшааяя ввыыддааччаа ((ддлляя ооппррееддееллёённннооггоо ззааппррооссаа))

ддооллжжннаа ббыыттьь ппооххоожжаа ннаа ххоорроошшииее ввыыддааччии ((ээттооггоо ззааппррооссаа))!!

Разбор задачи с www.kaggle.com 6 слайд из 28 Александр Дьяконов (Москва, МГУ)

Moscow Data Science Meetup 27 мая 2016 года

Функционал качества: Quadratic Weighted Kappa

показывает согласованность порядков,

когда ответы "мера релевантности"

y = 1 1 1 2 2 3 3 3 # правильный ответ

a = 1 1 2 1 3 2 3 3 # наш ответ

0.6666667

a = 1 1 1 2 2 3 3 3 # наш ответ

1

a = 3 3 3 2 2 1 1 1 # наш ответ

–1

Разбор задачи с www.kaggle.com 7 слайд из 28 Александр Дьяконов (Москва, МГУ)

Moscow Data Science Meetup 27 мая 2016 года

Quadratic Weighted Kappa

E = table(y) %*% t(table(a))

O = table(y,a)

E = E/sum(E)*sum(O)

n = length(unique(y))

W = (matrix(1:n,nr=n,nc=n) -

matrix(1:n,nr=n,nc=n,byrow = TRUE))**2/(n-1)**2

kappa = 1-sum(W*O)/sum(W*E)

a = 1 1 2 1 3 2 3 3

y = 1 1 1 2 2 3 3 3

O =

a

y 1 2 3

1 2 1 0

2 1 0 1

3 0 1 2

W =

[,1] [,2] [,3]

[1,] 0.00 0.25 1.00

[2,] 0.25 0.00 0.25

[3,] 1.00 0.25 0.00

E =

a

y 1 2 3

1 9 6 9

2 6 4 6

3 9 6 9

E = нормализованная

a

y 1 2 3

1 1.125 0.75 1.125

2 0.750 0.50 0.750

3 1.125 0.75 1.125

Kappa =

0.6666667

Разбор задачи с www.kaggle.com 8 слайд из 28 Александр Дьяконов (Москва, МГУ)

Moscow Data Science Meetup 27 мая 2016 года

Метод решения

11.. ППррееддооббррааббооттккаа ддаанннныыхх

22.. ГГееннеерраацциияя ппррииззннааккоовв

33.. ВВыыббоорр ммооддееллии // ннаассттррооййккаа

44.. ААннссааммббллии

55.. ДДееффооррммаацциияя ооттввееттоовв // рреешшааюющщееее ппррааввииллоо

Разбор задачи с www.kaggle.com 9 слайд из 28 Александр Дьяконов (Москва, МГУ)

Moscow Data Science Meetup 27 мая 2016 года

Построение очень простой модели!

SSaannddiisskk 1166GGBB nnoonn--HHSS MMSSDD FFllaasshh

DDrriivvee 33iinn11 -- BBllaacckk ((SSDDSSDDQQRR--001166GG--

TT4466AA))

УУддаалляяеемм hhttmmll--ттееггии,,

ссххллооппыыввааеемм ттеекксстт,,

ууддаалляяеемм ссппееццссииммввооллыы

ssaannddiisskk1166ggbbnnoonnhhssmmssddffllaasshhddrriivvee33iinn11

bbllaacckkssddssddqqrr001166ggtt4466aa

ДДееллааеемм 33--ггррааммммыы

ssaann,,aanndd,,nnddii,,ddiiss,,iisskk,,sskk11,,kk1166,,1166gg,,

66ggbb,,ggbbnn ......

ККссттааттии,, ддлляя ппррааввииллььннооггоо ссллоовваа

""ssccaannddiisskk""::

ssccaa,, ccaann,, aanndd,, nnddii,, ddiiss,, iisskk

ППееррееххооддиимм кк ммооддееллии

""ммеешшоокк ссллоовв""

++ ttff--iiddff

33--ггррааммммыы ммооггуутт ппооббееддииттьь ооппееччааттккии..

Разбор задачи с www.kaggle.com 10 слайд из 28 Александр Дьяконов (Москва, МГУ)

Moscow Data Science Meetup 27 мая 2016 года

Другие подходы (2е место)

hhaarrddiisskk hhaarrdd ddrriivvee

eexxtteennaall eexxtteerrnnaall

ssooddaa ssttrreeaamm ssooddaassttrreeaamm

ffrraaggaannccee ffrraaggrraannccee

1166 ggbb 1166ggbb

3322 ggbb 3322ggbb

550000 ggbb 550000ggbb

22 ttbb 22ttbb

sshhooppppee sshhoopp

rreeffrriiggiirraattoorr rreeffrriiggeerraattoorr

aassssaassssiinnssss aassssaassssiinnss

hhaarrlleeyyddaavviiddssoonn hhaarrlleeyy ddaavviiddssoonn

hhaarrlleeyy--ddaavviiddssoonn hhaarrlleeyy ddaavviiddssoonn

ННаа ппррааккттииккее ттаакк ттоожжее ддееллааюютт ––

ммннооггоо ррууччнноойй ррааззммееттккии..

ЗЗддеессьь ддлляя ппррооссттооттыы ммооддееллии ннее

ссттааллии

ЗЗааммееттиимм,, ччттоо ммооддеелльь ссттааннооввииттссяя ппееррееооббууччеенннноойй..

ДДлляя ннооввыыхх ззааппррооссоовв ттааккооггоо ррууччннооггоо

ууссттррааннеенниияя ннееооддннооззннааччннооссттеейй ннеетт!!

Разбор задачи с www.kaggle.com 11 слайд из 28 Александр Дьяконов (Москва, МГУ)

Moscow Data Science Meetup 27 мая 2016 года

Другие подходы (1е место)

ЗЗддеессьь ссооззддаанн ссллооввааррьь ссииннооннииммоовв

cchhiilldd,, kkiidd kkiidd

bbiiccyyccllee,, bbiikkee bbiikkee

rreeffrriiggeerraattoorr,, ffrriiddggee,, ffrreeeezzeerr ffrriiddggee

ffrraaggrraannccee,, ppeerrffuummee,, ccoollooggnnee,, eeaauu ddee ttooiilleettttee ppeerrffuummee

ВВссее ддееллааллии ссттееммммииннгг ((ммыы ннеетт))..

Разбор задачи с www.kaggle.com 12 слайд из 28 Александр Дьяконов (Москва, МГУ)

Moscow Data Science Meetup 27 мая 2016 года

Признаки

ННаассккооллььккоо ппооххоожжии ттееккссттыы??

ТТооччннееее:: ммнноожжеессттвваа

ssaann,,aanndd,,nnddii,,ddiiss,,iisskk,,sskk11,,kk1166,,1166gg,, 66ggbb,,ggbbnn ......

ssccaa,, ccaann,, aanndd,, nnddii,, ddiiss,, iisskk

ccooss--ммеерраа,,

ммоощщннооссттьь ппеерреессееччеенниияя ((ннооррммииррооввааннннааяя))

Разбор задачи с www.kaggle.com 13 слайд из 28 Александр Дьяконов (Москва, МГУ)

Moscow Data Science Meetup 27 мая 2016 года

Признаки

cos(описание, запрос)

cos(описание, запрос) нормируем на

max(описание, запрос) по всем описаниям этого запроса

mean(cos(описание, описание всех товаров этого запроса в

обучении: оценка = 4))

оценка товара: на нём max cos(описание, его описание)

описание =

само описание

заголовок

заголовок + описание

Разбор задачи с www.kaggle.com 14 слайд из 28 Александр Дьяконов (Москва, МГУ)

Moscow Data Science Meetup 27 мая 2016 года

Признаки

– это взаимодействия блоков данных!

Разбор задачи с www.kaggle.com 15 слайд из 28 Александр Дьяконов (Москва, МГУ)

Moscow Data Science Meetup 27 мая 2016 года

Выбор модели

ИИззннааччааллььнноо ппррооббллееммаа ккаакк ннаассттррааииввааттььссяя::

11.. ЗЗааддааччаа ккллаассссииффииккааццииии сс ккллаассссааммии [[11,, 22,, 33,, 44]]

22.. ЗЗааддааччаа ррееггрреессссииии сс ммееттккааммии [[11,, 22,, 33,, 44]]

33.. ЗЗааддааччаа ррееггрреессссииии сс ммееттккааммии [[11,, 44,, 99,, 1166]]

44.. ЗЗааддааччии ккллаассссииффииккааццииии//ррееггрреессссииии сс ммееттккааммии

[[00,, 11,, 11,, 11]]

[[00,, 00,, 11,, 11]]

[[00,, 00,, 00,, 11]]

Разбор задачи с www.kaggle.com 16 слайд из 28 Александр Дьяконов (Москва, МГУ)

Moscow Data Science Meetup 27 мая 2016 года

Выбор модели

ИИззннааччааллььнноо ппррооббллееммаа ккаакк ннаассттррааииввааттььссяя::

11.. ЗЗааддааччаа ккллаассссииффииккааццииии сс ккллаассссааммии [[11,, 22,, 33,, 44]]

ппллооххоо –– ннеетт ууччёёттаа ппоорряяддккаа

22.. ЗЗааддааччаа ррееггрреессссииии сс ммееттккааммии [[11,, 22,, 33,, 44]]

ххоорроошшоо

33.. ЗЗааддааччаа ррееггрреессссииии сс ммееттккааммии [[11,, 44,, 99,, 1166]]

ннуужжнныы ээккссппееррииммееннттыы

44.. ЗЗааддааччии ккллаассссииффииккааццииии//ррееггрреессссииии сс ммееттккааммии

[[00,, 11,, 11,, 11]]

[[00,, 00,, 11,, 11]]

[[00,, 00,, 00,, 11]]

ККаакк ппооттоомм ииссппооллььззооввааттьь ооттввееттыы??

Разбор задачи с www.kaggle.com 17 слайд из 28 Александр Дьяконов (Москва, МГУ)

Moscow Data Science Meetup 27 мая 2016 года

Настройка модели

model <- randomForest(M1, mr, mtry=40, ntree=200, nodesize=10)

a <- predict(model, M2)

b = pmin(pmax(round(1.45*(a-3.309805)+3.309805),1),4)

ИИссппооллььззооввааллииссьь ссллууччааййнныыее ллеессаа

((ддаажжее ннее ббыыллоо ззааввииссииммооссттии оотт ппааррааммееттрроовв!!))

Разбор задачи с www.kaggle.com 18 слайд из 28 Александр Дьяконов (Москва, МГУ)

Moscow Data Science Meetup 27 мая 2016 года

Отладка

kk--ffoolldd

Разбор задачи с www.kaggle.com 19 слайд из 28 Александр Дьяконов (Москва, МГУ)

Moscow Data Science Meetup 27 мая 2016 года

Ответы алгоритма

ППооччееммуу ммееддииааннаа ррааззнныыхх ааллггооррииттммоовв ллууччшшее ууссррееддннеенниияя??!!

Разбор задачи с www.kaggle.com 20 слайд из 28 Александр Дьяконов (Москва, МГУ)

Moscow Data Science Meetup 27 мая 2016 года

Почему нужны деформации

hist(train[,1], probability=TRUE, col='light blue')

points(density(a), type='l', lwd=2, col='red')

Разбор задачи с www.kaggle.com 21 слайд из 28 Александр Дьяконов (Москва, МГУ)

Moscow Data Science Meetup 27 мая 2016 года

Почему нужны деформации

ЕЕссллии ппррооссттоо ооккррууггллииттьь –– ппееррееккоосс вв рраассппррееддееллеенниияяхх

hist(round(a), probability=TRUE, col='pink')

Разбор задачи с www.kaggle.com 22 слайд из 28 Александр Дьяконов (Москва, МГУ)

Moscow Data Science Meetup 27 мая 2016 года

Почему нужны деформации

ССппееццииааллььннааяя ддееффооррммаацциияя рраассппррееддееллеенниияя ввыыррааввннииввааююттссяя

hist(pmin(pmax(round(1.45*(a-3.309805)+3.309805),1),4), probability=TRUE, col='green')

Разбор задачи с www.kaggle.com 23 слайд из 28 Александр Дьяконов (Москва, МГУ)

Moscow Data Science Meetup 27 мая 2016 года

Почему нужны деформации

ВВ ппррииннццииппее,, ммоожжнноо ппррооссттоо ввыыббииррааттьь ппооррооггии,, ччттооббыы

ввыыррооввнняяттьь рраассппррееддееллеенниияя

ппооввыыссииттьь ккааччеессттввоо ннаа ккооннттррооллее

Разбор задачи с www.kaggle.com 24 слайд из 28 Александр Дьяконов (Москва, МГУ)

Moscow Data Science Meetup 27 мая 2016 года

Почему нужны деформации

Как зависит качество от множителя

pmin(pmax(round(1.45*(a-3.309805)+3.309805),1),4)

Кстати, 3.309805 – средняя оценка.

Разбор задачи с www.kaggle.com 25 слайд из 28 Александр Дьяконов (Москва, МГУ)

Moscow Data Science Meetup 27 мая 2016 года

Для справки

Хорошая выдача (рел.3-4) похожа на хорошую выдачу в обучении (3-4).

Плохая выдача (1-2) может быть не похожа на плохую выдачу!

Разбор задачи с www.kaggle.com 26 слайд из 28 Александр Дьяконов (Москва, МГУ)

Moscow Data Science Meetup 27 мая 2016 года

Для справки

Решающее правило – переводит ответы регрессионных

алгоритмов в окончательные.

Обычно

простое

тоже требует настройки

использует постановку задачи

(непересечение классов, малое число меток у объектов и т.п.)

Разбор задачи с www.kaggle.com 27 слайд из 28 Александр Дьяконов (Москва, МГУ)

Moscow Data Science Meetup 27 мая 2016 года

Решение победителя (Chenglong Chen)

https://github.com/ChenglongChen/Kaggle_CrowdFlower

Разбор задачи с www.kaggle.com 28 слайд из 28 Александр Дьяконов (Москва, МГУ)

Moscow Data Science Meetup 27 мая 2016 года

Задача Search Results Relevance