Лекция "Архитектура поиска Яндекса"
TRANSCRIPT
Ñîäåðæàíèå
� Èçìåðåíèå êà÷åñòâà ïîèñêà.
� Ïîñòðîåíèå ôóíêöèè ðàíæèðîâàíèÿ.
� Ïðîáëåìû â ïîñòðîåíèè ôóíêöèè ðàíæèðîâàíèÿ.
Çàäà÷à êà÷åñòâà ïîèñêà
Çàäà÷à. Ïîñòðîèòü ôóíêöèþ ðàíæèðîâàíèÿ, êîòîðàÿ
óïîðÿäî÷èâàåò äîêóìåíòû ïî ñòåïåíè èõ ñîîòâåòñòâèÿ
ïîèñêîâîìó çàïðîñó.
Äàíî:
� Íàáîð çàïðîñîâ Q = {q1, .., qn}� Íàáîð äîêóìåíòîâ äëÿ êàæäîãî çàïðîñà
q → {d1, .., dt}
� Îöåíêè ðåëåâàíòíîñòè äëÿ ïàð <çàïðîñ, äîêóìåíò>
(rel(q, d) ∈ [0; 1])
f(q, d)?
Çàäà÷à êà÷åñòâà ïîèñêà
Çàäà÷à. Ïîñòðîèòü ôóíêöèþ ðàíæèðîâàíèÿ, êîòîðàÿ
óïîðÿäî÷èâàåò äîêóìåíòû ïî ñòåïåíè èõ ñîîòâåòñòâèÿ
ïîèñêîâîìó çàïðîñó.
Äàíî:
� Íàáîð çàïðîñîâ Q = {q1, .., qn}� Íàáîð äîêóìåíòîâ äëÿ êàæäîãî çàïðîñà
q → {d1, .., dt}
� Îöåíêè ðåëåâàíòíîñòè äëÿ ïàð <çàïðîñ, äîêóìåíò>
(rel(q, d) ∈ [0; 1])
f(q, d)?
Èçìåðåíèå êà÷åñòâà ïîèñêà
Îöåíêà êà÷åñòâà ïîèñêà - óñðåäíåíèå ìåòðèêè êà÷åñòâà ïî
íàáîðó çàïðîñîâ Q.
Quality(f(q, d)) =∑
qi in Q
Measure(rank for qi)n
Ïðèìåðû ìåòðèê êà÷åñòâà ïîèñêà:
� Precision-10.×èñëî äîêóìåíòîâ ñ ðåëåâàíòíîñòüþ áîëüøåé 0.5 â
top− 10.
Èçìåðåíèå êà÷åñòâà ïîèñêà
Îöåíêà êà÷åñòâà ïîèñêà - óñðåäíåíèå ìåòðèêè êà÷åñòâà ïî
íàáîðó çàïðîñîâ Q.
Quality(f(q, d)) =∑
qi in Q
Measure(rank for qi)n
Ïðèìåðû ìåòðèê êà÷åñòâà ïîèñêà:
� Precision-10.×èñëî äîêóìåíòîâ ñ ðåëåâàíòíîñòüþ áîëüøåé 0.5 â
top− 10.
Ïðèìåðû ìåòðèê
� 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).
Ïîñòðîåíèå ôóíêöèè ðàíæèðîâàíèÿ
Äëÿ êàæäîé ïàðû <çàïðîñ, óðë> ðàññ÷èòûâàåòñÿ íàáîð
ôàêòîðîâ ñîîòâåòñâèÿ äîêóìåíòà çàïðîñó
(q, d)→ (factor1(q, d), .., factor100500(q, d)).
� Còàòèñòèêà âñòðå÷àåìîñòè ñëîâ çàïðîñà â òåêñòå
äîêóìåíòà - TR.
� Ñòàòèñòèêà âñòðå÷àåìîcòè ñëîâ çàïðîñà â ññûëêàõ íà
äîêóìåíò - LR.
� Âåñ â ìîäåëè PageRank - PR.
Ïîñòðîåíèå ôóíêöèè ðàíæèðîâàíèÿ
Ôóíêöèÿ ðàíæèðîâàíèÿ - ôóíêöèÿ îò íàáîðà ôàêòîðîâ.
Äîêóìåíòû äëÿ çàïðîñà óïîðÿäî÷èâàþòñÿ â ñîîòâåòñòâèè ñî
çíà÷åíèåì ôóíêöèè ðàíæèðîâàíèÿ.
Çàäà÷à ñîñòîèò â ïîñòðîåíèè ôóíêöèè f(q, d) ñ ìàêñèìàëüíûìçíà÷åíèåì ìåðû êà÷åñòâà
good f(q, d) = arg max(Quality(f(q, d))).
Ïîñòðîåíèå ôóíêöèè ðàíæèðîâàíèÿ
Ôóíêöèÿ ðàíæèðîâàíèÿ - ôóíêöèÿ îò íàáîðà ôàêòîðîâ.
Äîêóìåíòû äëÿ çàïðîñà óïîðÿäî÷èâàþòñÿ â ñîîòâåòñòâèè ñî
çíà÷åíèåì ôóíêöèè ðàíæèðîâàíèÿ.
Çàäà÷à ñîñòîèò â ïîñòðîåíèè ôóíêöèè f(q, d) ñ ìàêñèìàëüíûìçíà÷åíèåì ìåðû êà÷åñòâà
good f(q, d) = arg max(Quality(f(q, d))).
Ïðîáëåìû â ïîñòðîåíèè ôóíêöèè ðàíæèðîâàíèÿ
Ôóíêöèÿ f(q, d) - ãëàäêàÿ ôóíêöèÿ íåêîòîðîãî íàáîðà
ïàðàìåòðîâ.
f(q, d) = α1 · PR+ α2 · TR · LR...
DCG(...) - ðàçðûâíàÿ ôóíêöèÿ. Ïðèìåíåíèå îáû÷íûõ
ãðàäèåíòíûõ ìåòîäîâ îïòèìèçàöèè íåâîçìîæíî.
Íóæíî ñãëàäèòü ìåòðèêó êà÷åñòâà DCG(...).
Ïðîáëåìû â ïîñòðîåíèè ôóíêöèè ðàíæèðîâàíèÿ
Ôóíêöèÿ f(q, d) - ãëàäêàÿ ôóíêöèÿ íåêîòîðîãî íàáîðà
ïàðàìåòðîâ.
f(q, d) = α1 · PR+ α2 · TR · LR...
DCG(...) - ðàçðûâíàÿ ôóíêöèÿ. Ïðèìåíåíèå îáû÷íûõ
ãðàäèåíòíûõ ìåòîäîâ îïòèìèçàöèè íåâîçìîæíî.
Íóæíî ñãëàäèòü ìåòðèêó êà÷åñòâà DCG(...).
Ñïîñîáû ñãëàæèâàíèÿ
Äëÿ äîêóìåíòîâ çàïðîñà 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))
Ôóíêöèè âåðîÿòíîñòåé
Ìîäåëü Luce-Plackett. Àëãîðèòì ListNet-2007.
Âåðîÿòíîñòü íåêîòîðîãî ïîðÿäêà äîêóìåíòîâ (di1 , .., dit)
Prob((di1 , .., dit)|(fl1, .., f lt)) =t−1∏j=1
flijt∑
k=j
flik
.
Íåäîñòàòêè: â ñóììå t! ñëàãàåìûõ, ÷òî äåëàåò âû÷èñëåíèå çà
ðàçóìíîå âðåìÿ "çàòðóäíèòåëüíûì".
Ôóíêöèè âåðîÿòíîñòåé
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.
Ôóíêöèè âåðîÿòíîñòåé
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
).
Ïîëó÷èëîñü !!!