본문 바로가기

NLP/논문이해

[논문이해] Sinkhorn Transformations for Single-Query Postprocessing in Text-Video Retrieval

논문명: Sinkhorn Transformations for Single-Query Postprocessing in Text-Video Retrieval

논문 링크: https://dl.acm.org/doi/10.1145/3539618.3592064

 

Sinkhorn Transformations for Single-Query Postprocessing in Text-Video Retrieval | Proceedings of the 46th International ACM SIG

SIGIR '23: Proceedings of the 46th International ACM SIGIR Conference on Research and Development in Information Retrieval July 2023 3567 pages Copyright © 2023 ACM Permission to make digital or hard copies of all or part of this work for personal or clas

dl.acm.org

 

 

 

Dual Softmax 를 개선한 논문인데 성능이 상당히 오르면서도 재밌고 짧은 아이디어라 가져왔다. 아래 글에 이전 방법론에 대한 정리를 해뒀다.

 

https://heygeronimo.tistory.com/87

 

[용어정리] Dual Softmax Loss

3줄 요약 softmax loss 를 2번(dual)하는데, Column 기준으로 1번, Row 기준으로 1번할 것이다. 이렇게 Loss 만 바꿨더니, 대부분의 모델 성능이 오른다. 논문의 가정은 이러하다 원래 Retrieval 분야의 loss 함

heygeronimo.tistory.com


기여점

  • 내가 DSL보다 성능 더 높은데?
  • 보통 하나의 쿼리가 들어오는 상황을 가정하지, 다른 쿼리들의 결과까지 알아야 DSL 방법론 사용이 가능하다. 그래서 이 논문은 테스트셋의 결과를 굳이 요구하지 않고도 성능을 낼 수 있어야 한다. 그 상황에서도 성능을 측정했다.

 

Sinkhorn Transformation 이 뭔데?

: 검색해보면 SWAP 관련 논문 글이 나온다. 난 비전 분야도 아닌데, 어지러워서 고민하다가 영어 위키피디아를 읽었다.

 

 

  • 읽다보면 현기증이 난다고? 정상이다. 내가 가볍게 요약해주겠다.
  • 요약: "값이 양수인 정사각행렬"은 어쩌고 저쩌고 방법을 통해 "Doubly stochastic" 할 수 있다.
  • 값이 양수인 정사각행렬: 이건 이해할 수 있다. 행렬을 이루는 요소들이 전부 0보다 크다는 말이다.
  • Doubly stochastic: 이게 뭐지? 다행히 이것도 위키피디아에 정리되어 있어서 읽었다.

 

  • row 합도 1, column 합도 1인 경우를 의미한다
  • 수학적인 관점에서 하나의 분포인데, 그걸 row 로 봐도 column 으로 봐도 된다는 의미인 것 같다.
  • 이 관점에서 보면 왜 Doubly Stochastic Matrix 를 만들려는지 이해할 수 있다.

 

Retrieval 에서 흔히 쓰이는 loss 함수

  • 첫번째식은 비디오 1개를 제공했을 때, B개의 텍스트 중 가장 어울리는 텍스트를 구하는 것이다
  • 두번째식은 텍스트 1개를 제공했을 때, B개의 비디오 중 가장 어울리는 비디오를 구하는 것이다
  • 즉, 하나는 column 기준 나머지 하나는 row 기준으로 softmax 로 확률분포를 구하는 셈이다
  • 이렇게 유사도 s를 구해놓은 행렬이 doubly stochastic matrix 라서 Sinkhorn Transformation 을 사용하는 것 같다.

 

  • 이게 본 논문에서 similarity matrix 를 후처리하는 방식이다
  • 왜 LogSumExp 를 빼냐고 묻는다면, softmax 와 관련이 깊어보인다. 왜 그런지 모르겠다면, 이 글을 보시길.
  • 매 단계마다 dim = 0 (column 기준), dim = 1 (row 기준)으로 softmax 를 반복하는 셈이다.
  • 그러면 왜 Softmax 라고 안 적고, 위처럼 적었는가? 내 추측으로는 DSL을 K번 하는 게 Sinkhorn 인데 그걸 숨기기 위해서인 것 같다. 다시 말해, DSL이 softmax 를 2번하는 건데 그걸 무한정 반복하자고 논문을 대놓고 내면 좀...

 

  • 이 방법을 무한정 반복하다보면, 동일한 비디오를 2번 가르키는 일은 없다고 한다.
  • 사실 softmax 를 column, row 번갈아가며 반복했을 때 어떻게 될지는 수학바보라서 잘 모르겠다....

 

Original vs DSL vs Sinkhorn

 

  • Orginal: DSL에서 지적했던 것처럼 하나의 비디오가 여러 개의 텍스트와 일치하는 모습을 보인다. DSL 논문에 따르면, 비디오는 다양한 것에 비해 상대적으로 텍스트는 정보가 부족하기 때문이라고 지적했던 것 같다.
  • DSL: Softmax 를 2번 취한 결과 어느 정도 해결되는 모습을 보이지만, 완전히 해결한 것은 아니다.
  • Sinkhorn 은 위 문제를 완벽하게 해결한다. DSL을 반복해서 그런 것 같기도? 근데 대체 이게 왜 되는 것이지? 그 원리에 대해선 잘 나와있지 않다....

 

실험

  • 원리에 대한 의문을 성능으로 시원하게 해결해준다
  • 성능이 압도적으로 오른다....
  • 근데 이것도 사실 문제가 좀 있다
  • DSL 같은 후처리 방식은 여러 개의 쿼리 점수를 요구한다. 그래서 test dataset 전체를 matrix 삼아서 post processing 한다.

 

Single Query Setting

One important drawback of IR rescoring methods is that they need access to an entire test set of queries. This runs contrary to the usual IR setting where only a single new query is available. Despite this fact, DSL and QB-Norm have become standard postprocessing techniques; several recent works use them to improve the final results
  • 사실 이 방식? 쓰려면 다른 쿼리에 대한 점수까지도 알고 있어야 한다
  • 근데 실제 현실에서 검색어는 1개 들어오는데 이 가정이 맞나 싶은 것이다
  • 그래서 저자는 이 문제를 지적하며, unfair 즉 불공평하다고 이야기한다
  • 진짜 현실 상황이라고 가정하고 성능을 측정하기 위해 training dataset 으로부터 sampling 을 실시한다

 

  • 확실히 test dataset 을 쓰다가 training dataset 을 사용하니 성능이 팍 식는다
  • 저자는 이 점에 대해 '역시나 traininig dataset 분포에서 test dataset 분포로 전환하면서 생긴 이점에 의해 발생한 성능'이라고 말한다. 즉, test dataset 만의 분포가 있는데 그걸 다 알고 post processing 하면 당연히 성능이 좋을 수 밖에 없다는 것이다.

 

아 이거 코드라도 주지....K번 단계를 밟았다고 했는데 그게 대체 몇 번인지도 알 수도 없고 아쉽다