728x90
728x90
728x90

Learning to rank란 

item의 정확한 score를 regression하는게 아니라, optimal ordering of list of items.

 

 

 

종류:Pointwise|Pairwise|Listwise

각각은 loss function에 들어가는 document의 개수에 따라 구분된다.

pointwise는 1개, Pairwise는 2개, Listwise는 

 

pointwise는 document가 query에 해당하는 relevancy를 학습하고, 실제 inference할 때는 각 document의 relevancy 순으로 출력, 즉 관건은, documents끼리 independent하다는 것, classical classification/regression을 사용

pairwise는 a pair of documents를 보고 ordering을 매김, the number of inversions를 줄이게끔 loss function을 정의하여 사용, relative order를 예측하는 게 좀 더 ranking의 본질에 가깝다. 단점은 training/inference가 시간복잡도가 크고 사실 낮은 ranking에 존재하는 pair끼리의 계산이나 상위 ranking에 존재하는 pair끼리의 계산이 동일하게 들어가는 점이 단점,  

listwise는 entire list of documents를 보고 optimal ordering을 찾는 것, 예를 들면, NDCG를 utility function으로 보고 학습, 장점이 training/inference의 시간복잡도가 낮음, 

 

Recommender system과 Ranking의 차이점은?

-ranking은 ordering이 결과임, 개별 item의 score도 predicted rating이 아니라, ordering으로서의 score이며 utility로서의 score가 아님

-ranking은 user의 input(query나 category선택, 지리적 정보 등)이 중요한 역할

 

가장 처음 드는 의문 점, labeled data를 어떻게 얻느냐?

 

1. Human (relevance) judgement

각 query마다

binary로 각 document가 relevant인지 irrelevant인지->pointwise용

document A가 B보다 더 relevant인지->pairwise용

document A,B,C의 ordering->listwise용, 다만 수집 비용이 큼(time consuming and exhaustive)

혹은

한개의 query당 얻은 document(item)의 relevance(perfect, excellent, good, fair, bad 형태의 five level이 한 예)를 judge

majority voting으로 query당 document의 label로 선정

 

2. query당 documents의 전체 고객들의 click number로 relative relevance 측정

대개 상위 ranking document가 더 클릭될 확률이 높은데 (click bias라 불림)

그럼에도 불구하고 lower ranked가 더 큰 클릭을 얻었다면 그것이 more relevant

 

각각이 단점이 존재, 둘다 noisy할 가능성이 있고

전자는 각 human이 query를 직접 관심갖고 입력한 상황이 아니므로 error가 발생할 확률이 높고

후자는 high frequency query만 labeling이 가능

 

 

 

참고자료:

medium.com/recombee-blog/introduction-to-personalized-search-2b70eb5fa5ae

 

Introduction to personalized search

Personalized search should take into account user preferences and interactions of similar users. We combined search engine and recommender.

medium.com

www.iro.umontreal.ca/~nie/IFT6255/Books/Learning-to-rank.pdf

 

728x90
728x90

앞 True/False는 예측(추론)의 맞고 틀림을 가리킨다. True:예측이 맞음, False:예측이 틀림

뒤 Positive/Negative는 예측(추론)의 결과를 가리킨다. Positive:양성으로 예측, Negative:음성으로 예측

True positive:positive라 예측했고 그게 맞음(actual도 positive)

True negative:negative라 예측했고 그게 맞음(actual도 negative)

False positive:positive라 예측했지만 그게 틀림(actual은 negative)

False negative:negative라 예측했지만 그게 틀림(actual은 positive)

728x90
728x90

RNN의 종류

seq2seq:day1, day2, ..., day10 주가 넣고, day2, day3, ..., day11주가 맞추기, 한국어문장 넣고 영어 문장 맞추기 등

seq2vec:영화 리뷰 문장 넣고 감정(-1 to 1)맞추기, encoder

vec2seq:이미지 넣고(혹은 CNN 결과) 문장 맞추기(image caption), decoder

encoder-decoder:seq2vec과 vec2seq 2-step모델, 단순 seq2seq보다 나은 성능을 보임, 그도 그럴 것이,  피번역 문장의 첫 단어보고 번역어 첫단어 맞추기보단, 피번역 문장 전체보고 번역어 첫 단어 맞추는게 맞아보임

 

RNN의 학습방식, Backpropagation Through Time(BPTT) 이해하기

https://en.wikipedia.org/wiki/Backpropagation_through_time

 

Backpropagation through time - Wikipedia

From Wikipedia, the free encyclopedia Jump to navigation Jump to search Technique for training recurrent neural networks "BPTT" redirects here. For the running events originally known as the Bushy Park Time Trial, see parkrun. Backpropagation through time

en.wikipedia.org

https://m.blog.naver.com/infoefficien/221210061511

 

Lesson 1: Recurrent Neural Network - 18. Backpropagation Through Time (part b)

BPTT를 학습하기 위하여 model를 펼쳐보겠습니다. 시간의 흐름에 따른 model 전개(unfold type)는 BP...

blog.naver.com

 

728x90
728x90

Paper:

https://arxiv.org/pdf/2004.13637.pdf

 

Remarks:

-

728x90

'ML > NLP' 카테고리의 다른 글

챗봇 평가 방법  (0) 2020.09.27
728x90

매달마다 선크림 판매량을 예측하는 모델을 학습한다고 하자.

이 때, 매달마다 선크림 판매량 데이터에서 직전년도 매달 판매량을 뺀 데이터를 가지고 학습을 하고(=remove seasonal patterns, 이를 differencing이라 함)

 

predict할 때 다시 seasonal patterns를 돌려주어 계산

728x90
728x90

one-hot encoding했을 때 feature 수가 너무 클 때

-유관 numerical features로 교체해서 사용(국가코드를 국가인구나 GDP같은 feature로)

-learnable, low-dimensional vector로 교체(즉 embedding vector 선택)

728x90
728x90

1. 시간 순으로 나눈다.

ex) 2000년부터 2010년은 학습, 2010년부터 2015년은 validation, 2015년부터 2020년은 test

주의사항:

  학습데이터에서 학습한 패턴이 미래에도 있을 것이란 보장이 되어야 학습이 의미가 있음, 예를 들면 2010년부터 2015년 사이 등장한 "급식체"같은 학습기간 동안 없었던 말투는 모델 성능이 높지 않을 수 있다. 즉 시계열 데이터가 stationary가 아니라면 모델 성능 하락, 이를 확인하기 위해서는 validation error를 시간순으로 찍어본다. 비교적 과거에서 error가 비교적 현재에서의 error보다 작다면 not stationary를 확인할 수 있고,  학습데이터의 시간 구간을 줄일 필요가 있다. 

 

2. 다른 차원으로 나눈다.

ex) 2000년부터 2020년 중 회사 1만개에 대한 데이터가 있다면,

회사 8천개의 데이터를 train, 1천개의 데이터를 validation, 1천개의 데이터를 test

주의사항:

  train data와 test data가 서로 correlated된 경향을 띌 수가 있다. 특히 앞선 예의 경우 금융위기 맞으면 둘다 망하거나 시장이 좋으면 둘다 떡상하니까, 따라서 generalization ability를 따지는 데에서 not useful할 수 있음

 

728x90
728x90

 

챗봇 평가에 어려운 점:

  정확한 평가 환경 set-up이 어렵다. Topic의 여부, 대화 길이, 평가자가 어떤 말하냐 등을 객관적으로 두기가 어렵다.

  따라서 프롬프트없이 크라우드소싱으로 사용자들이 대개 multi-turn대화에서 평가한다.

 

평가지표 humanness:

  참가자 중 챗봇이 사람같다고 대답한 사람의 비율

 

평가지표 engagingness:

  참가자 중 챗봇과의 대화를 즐기는 사람의 비율

 

그리고 이러한 값이 유의미한지 가설검증을 함께 한다.

 

728x90

'ML > NLP' 카테고리의 다른 글

[NLP][Chatbot][Paper]Recipes for building an open-domain chatbot  (0) 2020.09.28

+ Recent posts