-
논문 리뷰) L^2R: Lifelong Learning for First-stage Retrieval with Backward-Compatible RepresentationsAI 논문 리뷰 2024. 11. 28. 17:30
[총평]
- 임베딩 모델에서 Memory-based Continual Learning을 위한 학습 방식을 제안- 새로운 정보가 계속 발생되는 현실을 고려하여,
모델 학습 이후 새로운 Data가 지속적으로 추가되는 상황에 대한 학습 방법론을 제안
- 지속적인 학습을 위해 Old Data와 New Data에서 각각 데이터를 선별하여 학습하는 방법을 제안
- 모델을 지속하면서도, 기존 데이터에 대한 Vector DB 인덱싱을 다시 할 필요없는 Backward-Compatible 러닝을 제안
이 중 지속적인 학습을 위해 Data를 Selection하는 방식에 대해 집중적으로 리뷰하고자 한다.
[기본적인 학습 조건]
- Continual Learning을 위한, memory-based 방식으로 접근
- model 학습을 위한, support negative sample(모델이 decision boundary를 학습하도록 positive와 대비되는 negative sample)을 선별
- 각 샘플은 중첩되지 않아야한다.
- query는 변하지 않는다 (해당 논문의 한계)
- query 인코더와 document 인코더는 따로 둔다.
논문에서 제안한 방식은 다음과 같은 상황을 가정한다.
새로운 Document가 (1시점부터 T시점까지) 순차적으로 추가되고 있으며,
- f_0 : C_0 데이터로 학습 완료한 모델
- f_t : t시점의 D_t를 추가하여 학습한 모델
- C_0 : 모델 학습시 활용한 {query, positive-docs} pair, 즉 positive-labeled dataset
- M_t : 선별된 학습 데이터를 저장할 메모리 공간
- M_c : 선별된 new data를 잠시 저장하는 메모리 공간
논문에서 제안한 Data Selection 방법의 기본 원리는 '정사영(Projection)'이다.
아래는 document 벡터를 query 벡터에 정사영하는 공식이다.
그리고 이를 d_||q로 표현하였다.
정사영을 통해, documnet 벡터 안에 포함된 query 벡터 성분을 추출한 것이라 가정하였다.
그리고, '정사영'을 활용하여 다음과 같은 2가지의 지표를 제안한다.
여기서 d⁺_q는 C_0에 존재하는 q와 pair인 labeled positive document이다.
만일, d⁺_q 보다 더 query에 가까운 벡터 d가 있다면, PSS는 값이 작게 나올것이고,
벡터 d가 d⁺_q 보다 더 query에 가깝지 않다면, PSS는 값은 크게 나올것이다.
PSS에서, 앞에 sign (.)은, 두 벡터의 방향이 같으면 (+), 다르면 (-)이다.
즉, 방향이 다른 경우를 거르기 위해 적용된 것으로 보인다.
아래 그림의 상황에서 d와 d`는 query로 정사영했을때,
d가 d`보다 query 성분을 더 많이 포함하고 있다고 보는 것이다.d`의 크기가 작거나, query와 d`의 각도가 벌어질수록 PSS 값은 더 커지게 된다.
ISD는 다양성을 위한 지표이다.
위 그림에서 {d, d`, d``, d```}에 대해 ISS를 적용하게 되면, d가 가장 ISS 값이 크게 된다.
혼자 dㅗq 벡터의 방향이 달라지기 떄문이다.
즉, Document 속에서 유니크한 특성을 갖는 벡터를 찾기 위해 고안한 공식이다.
정리하자면,
query와 유사하지 않다가면, PSS가 크게 나올것이다.
document 집합 속에서 특정 문서 d가 uniqer 하다면 ISD가 크게 나올 것이다.
논문에서 제안한 방식은 위 PSS, ISD 2개 공식을 지지고 볶아서,
단계적으로 Data를 Selection한다.
Step 1. new data selection:
1) New Data Document가 존재할때, BM25를 통해서 Query 기준 상위 n개의 Document를 추출한다.
2) PSS와 ISD를 조합한 공식으로 값이 크게 나온 data를 Support Negative sample로 지정한다.
3) 선별된 document들은 임시 메모리 공간인 M_c에 저장된다.
=> 이게 무슨 뜻이냐면, BM25로 검색할때는 query와 유사하다고 나오는데
실제로 벡터기준으로 query에 정사영해보면, 유사도가 높지 않은 document를
hard negative(query와 유사해보이지만, 실제로는 다른 내용인 negative, 검색기의 성능을 한층 더 높일수있음)로
쓰겠다는 것이다. (ANCE와 굉장히 유사한 측면이 있다)
Step 2. old data selection:
제안자는 old data를 선별할때, 크게 3가지의 조건을 고려해야할 것이라고 했다.
1. historical support sample (보존할만한 가치가 있는 데이터) 을 찾자
2. old data끼리 서로 중복되지 않고
3. new data와 중복되지 않게
=> 여기서, 목표 1과 2는 step 4에서 해결되서 올거라,
step2에서는 목표 3만 적용하는 것이 목표라고 한다.
이를 위해, 아래 공식을 통해 old data 하나하나를
선별된 new data(M_C에 존재하는 document)와의 ISD를 체크한다.
높은 ISD를 갖는 old document k개를 선별한다.
즉, old document가 new document와 중복되지 않고, unique한 벡터를 갖는지 선별하는 것이다.
이렇게 선별된 old document와 M_C로 임시 저장되어 있던 new document는
이제 학습을 위한 메모리 공간인 M_t로 저장한다.
Step 3. 학습 단계:
선별된 데이터를 보유하였으니, 이제 기존의 모델(f_t-1)을 학습시켜가중치를 업데이트 하자.
이를 f_t라 한다.
Step 4. Replace (old data => new data) :
이제 학습도 다 했으니, M_t에 존재하는 데이터는 모두 old data가 되었다.이전 세션에서 new data였던 데이터 중 전체 데이터를 대상으로 ISG 지표가 높은 순으로 m개를 살린다. (나머지는 제거)
이전 세션에도 old data였던 데이터는 다시 전체 데이터를 대상으로 ISD 지표를 적용하여, 낮은 순으로 j개를 제거한다.
(m과 j는 메모리 크기에 맞게 지정)
이렇게 되면, 다시 M_t 에는 여유가 생기며, 다시 선별된 new data를 맞이할 여유 공간이 생기게 된다.
그리고 다시 1단계로 돌아간다.
논문에서 제안한, Memory-based Continual Learning을 위한 Data Selection 수행 방법을 리뷰하였다.
1) BM25 -> PSS를 통한 hard negative sampling
2) ISD를 통한 unique data sampling은 참고할만한 방안이라고 생각한다.
(다만, 해당 방식의 hard negative sampling은 이전의 연구들과 많이 유사하다...)
그러나, step2에서는 분명 step4를 수행하면,
"1. historical support sample (보존할만한 가치가 있는 데이터) 을 찾자 "가 적용된다고 하였으나,
그러한 부분은 보이지 않았다고 생각한다...
학습된 데이터의 분포를 파악하고,
새로운 분포에 어떻게 적응해야 하는지와 같은 부분이 제시되면 더 좋았을 것 같다. (아쉬움)
그리고 query는 계속 고정으로 박혀있어서, 이 부분도 실효적이 못한 것 같다 (한계점)
728x90'AI 논문 리뷰' 카테고리의 다른 글