[1. 검색 엔진에서 중요해진 것]
https://medium.com/@hemanthkumargadi/introduction-to-pairwise-loss-function-a47f2282f16
검색 엔진에서 가장 중요한 것은 랭킹이다.
검색한 키워드와 문서 사이의 유사성이 아니라 순서가 A,B라는 것이 중요하다.
즉, 어떻게 검색 결과를 정렬할 것인가가 중요해진 것이다.
이에 따라 정보 검색의 평가 방식은 precision/recall에서 ndcg, map방식으로 바뀌게 되었다.
-> 관련성이 없는 불필요한 문서는 제거가 잘 되고 있으니, 무엇을 먼저 보여줄 것인가로 관점이 변했다고 볼 수 있다.
LTR은 지도학습의 한 방법론으로 ranking 문제를 해결하기 위해서 쓰인다.
objects, labels이 함께 주어지면 ranking function이 loss function을 최소화하고 utility를 최대화하도록 만들어진다.
결론적으로 unseen data가 주어지면 optimal ordering list를 얻을 수 있다.
[2. Ranker는 어떻게 만들어지는가?]
information retrieval + machine learning 을 통해서 최적의 랭킹함수를 찾아낸다.
learning to rank 말 그대로 랭킹하는 법을 학습한다는 뜻으로 초창기 모델로 ranknet이 있다.
[3. 랭킹 모델의 3가지 부류]
각 3가지 방법은 모델을 학습, 평가할 때 얼마나 많은 아이템을 비교 대상으로 고려하는 지를 기준으로 나뉜다.
-pointwise approaches: score을 머신러닝으로 생성 후 정렬.
하나의 아이템 단위 접근이다. 하나의 아이템을 classifier, regressor의 학습 데이터로 사용하는 것이다.
모든 아이템에 대해서 점수를 구하고 이를 sorting하여 보여준다.
이는 전체적인 순위를 고려하는 것이 아니고, 하나의 아이템에 대한 정보를 중점적으로 봤기 때문에 ranking을 prediction한다는 관점과는 맞지 않을 수 있다.
->regression
-pairwise approaches: 2개씩 비교하며 order를 분류
아이템을 하나의 쌍으로 바라보는 접근이다. 랭킹의 정답 리스트와 pair가 일치하는 optimal한 순서를 찾아내는 것이다. 이건 score을 구해서 정렬하는 것이 아니고 두 아이템 사이의 order을 파악하는 것이다. 따라서 랭킹을 더 잘 세울 수 있을 것으로 보인다.
-> ranking SVM, Rank Boost, RankNet -> pairwise classification problem
-listwise approaches: 전체 리스트를 한번에 분류
랭킹의 정답 리스트와 한번에 전부 비교하는 방법이다. 가장 복잡도가 높지만 결과 또한 가장 좋은 편이다.
-> listnet
[4. 순서 정보를 이용하여 모델을 학습하는 방법]
검색어 쌍 [a,b]일 때, p(ab)가 0.5 이상이면 a가 b보다 상위 랭킹이다. 반대의 경우에는 b가 상위 랭킹이 된다.
(logistic regression을 output로 했다. 같은 원리로 binary classification이다.)
자세한 내용은 icml.cc/2015/wp-content/uploads/2015/06/icml_ranking.pdf 논문을 참고하자.
'이제는 사용하지 않는 공부방 > Artificial intelligence' 카테고리의 다른 글
[kaggle] titanic EDA To prediction (0) | 2021.05.15 |
---|---|
[kaggle] titanic tutorial 1 (0) | 2021.05.14 |
[추천시스템] 전체 핵심 복습 (0) | 2021.05.08 |
[밑바닥부터 시작하는 딥러닝] 6장 학습관련 기술들 (0) | 2021.05.07 |
[tensorflow] tutorial 1. mnist (0) | 2021.05.01 |