16

Лекция "Архитектура поиска Яндекса"

Embed Size (px)

Citation preview

Page 1: Лекция "Архитектура поиска Яндекса"

Ñîäåðæàíèå

� Èçìåðåíèå êà÷åñòâà ïîèñêà.

� Ïîñòðîåíèå ôóíêöèè ðàíæèðîâàíèÿ.

� Ïðîáëåìû â ïîñòðîåíèè ôóíêöèè ðàíæèðîâàíèÿ.

Page 2: Лекция "Архитектура поиска Яндекса"

Çàäà÷à êà÷åñòâà ïîèñêà

Çàäà÷à. Ïîñòðîèòü ôóíêöèþ ðàíæèðîâàíèÿ, êîòîðàÿ

óïîðÿäî÷èâàåò äîêóìåíòû ïî ñòåïåíè èõ ñîîòâåòñòâèÿ

ïîèñêîâîìó çàïðîñó.

Äàíî:

� Íàáîð çàïðîñîâ Q = {q1, .., qn}� Íàáîð äîêóìåíòîâ äëÿ êàæäîãî çàïðîñà

q → {d1, .., dt}

� Îöåíêè ðåëåâàíòíîñòè äëÿ ïàð <çàïðîñ, äîêóìåíò>

(rel(q, d) ∈ [0; 1])

f(q, d)?

Page 3: Лекция "Архитектура поиска Яндекса"

Çàäà÷à êà÷åñòâà ïîèñêà

Çàäà÷à. Ïîñòðîèòü ôóíêöèþ ðàíæèðîâàíèÿ, êîòîðàÿ

óïîðÿäî÷èâàåò äîêóìåíòû ïî ñòåïåíè èõ ñîîòâåòñòâèÿ

ïîèñêîâîìó çàïðîñó.

Äàíî:

� Íàáîð çàïðîñîâ Q = {q1, .., qn}� Íàáîð äîêóìåíòîâ äëÿ êàæäîãî çàïðîñà

q → {d1, .., dt}

� Îöåíêè ðåëåâàíòíîñòè äëÿ ïàð <çàïðîñ, äîêóìåíò>

(rel(q, d) ∈ [0; 1])

f(q, d)?

Page 4: Лекция "Архитектура поиска Яндекса"

Èçìåðåíèå êà÷åñòâà ïîèñêà

Îöåíêà êà÷åñòâà ïîèñêà - óñðåäíåíèå ìåòðèêè êà÷åñòâà ïî

íàáîðó çàïðîñîâ Q.

Quality(f(q, d)) =∑

qi in Q

Measure(rank for qi)n

Ïðèìåðû ìåòðèê êà÷åñòâà ïîèñêà:

� Precision-10.×èñëî äîêóìåíòîâ ñ ðåëåâàíòíîñòüþ áîëüøåé 0.5 â

top− 10.

Page 5: Лекция "Архитектура поиска Яндекса"

Èçìåðåíèå êà÷åñòâà ïîèñêà

Îöåíêà êà÷åñòâà ïîèñêà - óñðåäíåíèå ìåòðèêè êà÷åñòâà ïî

íàáîðó çàïðîñîâ Q.

Quality(f(q, d)) =∑

qi in Q

Measure(rank for qi)n

Ïðèìåðû ìåòðèê êà÷åñòâà ïîèñêà:

� Precision-10.×èñëî äîêóìåíòîâ ñ ðåëåâàíòíîñòüþ áîëüøåé 0.5 â

top− 10.

Page 6: Лекция "Архитектура поиска Яндекса"

Ïðèìåðû ìåòðèê

� DCG - Discounted cumulative gain

DCG(order for qi) =Nq∑j=1

rel(qi, dj)1 + log2j

.

� nDCG - normalized Discounted cumulative gain

nDCG(rank for qi) =DCG(rank for qi)

DCG(ideal rank for qi).

Page 7: Лекция "Архитектура поиска Яндекса"

Ïîñòðîåíèå ôóíêöèè ðàíæèðîâàíèÿ

Äëÿ êàæäîé ïàðû <çàïðîñ, óðë> ðàññ÷èòûâàåòñÿ íàáîð

ôàêòîðîâ ñîîòâåòñâèÿ äîêóìåíòà çàïðîñó

(q, d)→ (factor1(q, d), .., factor100500(q, d)).

� Còàòèñòèêà âñòðå÷àåìîñòè ñëîâ çàïðîñà â òåêñòå

äîêóìåíòà - TR.

� Ñòàòèñòèêà âñòðå÷àåìîcòè ñëîâ çàïðîñà â ññûëêàõ íà

äîêóìåíò - LR.

� Âåñ â ìîäåëè PageRank - PR.

Page 8: Лекция "Архитектура поиска Яндекса"

Ïîñòðîåíèå ôóíêöèè ðàíæèðîâàíèÿ

Ôóíêöèÿ ðàíæèðîâàíèÿ - ôóíêöèÿ îò íàáîðà ôàêòîðîâ.

Äîêóìåíòû äëÿ çàïðîñà óïîðÿäî÷èâàþòñÿ â ñîîòâåòñòâèè ñî

çíà÷åíèåì ôóíêöèè ðàíæèðîâàíèÿ.

Çàäà÷à ñîñòîèò â ïîñòðîåíèè ôóíêöèè f(q, d) ñ ìàêñèìàëüíûìçíà÷åíèåì ìåðû êà÷åñòâà

good f(q, d) = arg max(Quality(f(q, d))).

Page 9: Лекция "Архитектура поиска Яндекса"

Ïîñòðîåíèå ôóíêöèè ðàíæèðîâàíèÿ

Ôóíêöèÿ ðàíæèðîâàíèÿ - ôóíêöèÿ îò íàáîðà ôàêòîðîâ.

Äîêóìåíòû äëÿ çàïðîñà óïîðÿäî÷èâàþòñÿ â ñîîòâåòñòâèè ñî

çíà÷åíèåì ôóíêöèè ðàíæèðîâàíèÿ.

Çàäà÷à ñîñòîèò â ïîñòðîåíèè ôóíêöèè f(q, d) ñ ìàêñèìàëüíûìçíà÷åíèåì ìåðû êà÷åñòâà

good f(q, d) = arg max(Quality(f(q, d))).

Page 10: Лекция "Архитектура поиска Яндекса"

Ïðîáëåìû â ïîñòðîåíèè ôóíêöèè ðàíæèðîâàíèÿ

Ôóíêöèÿ f(q, d) - ãëàäêàÿ ôóíêöèÿ íåêîòîðîãî íàáîðà

ïàðàìåòðîâ.

f(q, d) = α1 · PR+ α2 · TR · LR...

DCG(...) - ðàçðûâíàÿ ôóíêöèÿ. Ïðèìåíåíèå îáû÷íûõ

ãðàäèåíòíûõ ìåòîäîâ îïòèìèçàöèè íåâîçìîæíî.

Íóæíî ñãëàäèòü ìåòðèêó êà÷åñòâà DCG(...).

Page 11: Лекция "Архитектура поиска Яндекса"

Ïðîáëåìû â ïîñòðîåíèè ôóíêöèè ðàíæèðîâàíèÿ

Ôóíêöèÿ f(q, d) - ãëàäêàÿ ôóíêöèÿ íåêîòîðîãî íàáîðà

ïàðàìåòðîâ.

f(q, d) = α1 · PR+ α2 · TR · LR...

DCG(...) - ðàçðûâíàÿ ôóíêöèÿ. Ïðèìåíåíèå îáû÷íûõ

ãðàäèåíòíûõ ìåòîäîâ îïòèìèçàöèè íåâîçìîæíî.

Íóæíî ñãëàäèòü ìåòðèêó êà÷åñòâà DCG(...).

Page 12: Лекция "Архитектура поиска Яндекса"

Ñïîñîáû ñãëàæèâàíèÿ

Äëÿ äîêóìåíòîâ çàïðîñà q ðàññ÷èòûâàþòcÿ çíà÷åíèÿ ôóíêöèè

ðàíæèðîâàíèÿ f(q, d)

d1 → fl1 = f(q, d1), .., dt → flt = f(q, dt).

Ïðåäïîëàãàåòñÿ, ÷òî äàííûå çíà÷åíèÿ (fl1, .., f lt) ïîðîæäàþòâåðîÿòíîñòíîå ðàñïðåäåëåíèå íà âñåõ ïåðåñòàíîâêàõ äîêóìåíòîâ

çàïðîñà St. Ñãëàæåííàÿ ìåòðèêà ðàññ÷èòûâàåòñÿ êàê

ìàòîæäàíèå ìåòðèêè DCG äëÿ äàííîãî ðàñïðåäåëåíèÿ

âåðîÿòíîñòåé;

appDCG =∑

ord in St

DCG(ord) · Prob(ord|(fl1, .., f lt))

Page 13: Лекция "Архитектура поиска Яндекса"

Ôóíêöèè âåðîÿòíîñòåé

Ìîäåëü Luce-Plackett. Àëãîðèòì ListNet-2007.

Âåðîÿòíîñòü íåêîòîðîãî ïîðÿäêà äîêóìåíòîâ (di1 , .., dit)

Prob((di1 , .., dit)|(fl1, .., f lt)) =t−1∏j=1

flijt∑

k=j

flik

.

Íåäîñòàòêè: â ñóììå t! ñëàãàåìûõ, ÷òî äåëàåò âû÷èñëåíèå çà

ðàçóìíîå âðåìÿ "çàòðóäíèòåëüíûì".

Page 14: Лекция "Архитектура поиска Яндекса"

Ôóíêöèè âåðîÿòíîñòåé

TieRank-2011. (À. Êóñòàðåâ, È. Ñåãàëîâè÷)

Ïðåäïîëàãàåòñÿ, ÷òî ôèíàëüíûå çíà÷åíèÿ ôóíêöèè

ðàíæèðîâàíèÿ ìîãóò ïðèíèìàòü òîëüêî êîíå÷íûé íàáîð

çíà÷åíèé

0 ≤ a1 < a2 < ..... < am ≤ 1.

Åñëè çíà÷åíèå ôóíêöèè f(q, d) îòëè÷àåòñÿ îò ÷èñåë íàáîðà è

ïîïàäàåò â êàêîé-òî èíòåðâàë ìåæäó íèìè

ai < f(q, d) < ai+1,

òî çíà÷åíèå ôóíêöèè ðàíæèðîâàíèÿ äëÿ äîêóìåíòà

ïðèíèìàåòñÿ ðàâíûì ai ñ âåðîÿòíîñòüþf(q,d)

ai+1−ai, è ðàâíûì ai+1

ñ âåðîÿòíîñòüþai+1−f(q,d)

ai+1−ai.

Page 15: Лекция "Архитектура поиска Яндекса"

Ôóíêöèè âåðîÿòíîñòåé

TieRank-2011. (À. Êóñòàðåâ, È. Ñåãàëîâè÷)

Äëÿ äàííîé ìîäåëè â ñóììå

appDCG =∑

ord in St

DCG(ord) · Prob(ord|(fl1, .., f lt))

íå áîëåå ÷åì 2t ñëàãàåìûõ, ÷òî ñèëüíî ìåíüøå ÷åì t!.

Ôóíêöèÿ ïîëó÷àåòñÿ íåïðåðûâíàÿ, íî ñ ðàçðûâíîé

ïðîèçâîäíîé. Äëÿ èñïðàâëåíèÿ ýòîãî íåäîñòàòêà èñïîëüçóåòñÿ

kernel ôóíêöèÿ

φ(x) = 2x3 − 3x2 + 1,f(q, d)ai+1 − ai

→ φ

(f(q, d)ai+1 − ai

).

Page 16: Лекция "Архитектура поиска Яндекса"

Ïîëó÷èëîñü !!!