스캐터랩 ML 세미나 시즌 4에서 다룬 여섯 연구를 각 논문의 문제와 해결 아이디어 중심으로 정리한다. 긴 시퀀스를 위한 Reformer, 작은 데이터의 multi-scale attention, 텍스트 스타일 변환, 대규모 검색용 bi-encoder와 poly-encoder, hard negative 합성까지 자연어 표현과 검색 효율에 초점을 맞춘다. 발표 링크만 나열하지 않고 각 방법의 장점과 적용 한계를 본문에서 해설한다.
핵심 포인트- Reformer는 LSH attention, feed-forward chunking, reversible layer로 긴 입력에서 Transformer의 시간과 메모리 증가를 줄인다.
- Multi-Scale Multi-Head Attention은 head마다 서로 다른 범위의 단어 관계를 보게 해 작은 데이터에서도 장·단거리 의존성을 함께 학습한다.
- Text Style Transfer는 의미와 스타일을 분리하는 접근과 분리하지 않고 discriminator로 원하는 속성을 유도하는 접근으로 나뉜다.
- 대규모 retrieval은 query와 document를 별도 encoder로 임베딩해 cross-attention 비용을 피하고, pretraining loss로 두 표현의 관계를 학습한다.
- Poly-encoder는 여러 code vector로 문맥을 압축한 뒤 응답과 attention해 bi-encoder의 속도와 cross-encoder의 정확도 사이를 절충한다.
상세 정리- 세미나 주제: 2020년 1~2월 발표를 모았으며 Embedding과 Transformer가 공통 관심사였다. 사람의 말을 기계가 다룰 표현으로 바꾸고 큰 모델의 계산을 줄이는 연구를 선별했다.
- Reformer 문제: 일반 Transformer는 입력 길이가 늘면 attention 크기가 제곱으로 증가한다. LSH로 유사한 토큰 쌍만 찾고 계산해 복잡도를 낮춘다.
- Reformer 메모리: 위치별로 독립적인 FFN을 chunk 단위로 처리하고 reversible residual 구조로 중간 activation 저장을 줄인다. 다만 근사 검색이라 정확한 attention을 놓칠 수 있어 범용 적용에는 주의가 필요하다.
- Multi-scale attention: 모든 head가 동일한 범위를 보는 대신 head마다 가까운 단어와 먼 단어 관계를 다르게 처리한다. 데이터가 작은 분류·sequence labeling·NLI에서도 RNN과 경쟁하는 성능을 냈다.
- 스타일 표현 분리: 문장의 뜻과 스타일을 잠재 공간에서 떼어낼 수 있다고 보면 의미 벡터는 보존하고 스타일 성분만 바꾼다. 이 가정이 맞지 않으면 문장 내용까지 손상될 수 있다.
- 스타일 비분리: 감정처럼 의미와 속성이 얽힌 경우 discriminator를 속이는 방향으로 전체 표현을 변환한다. 당시 데이터셋은 Yelp의 긍정·부정처럼 제한적이라 겸양 표현과 한국어 사투리 적용에는 문제 정의가 더 필요했다.
- 대규모 검색: 질문에 답하려면 관련 문서를 찾고 그 안에서 답을 생성해야 한다. 후자는 Transformer가 발전했지만 첫 단계는 여전히 TF-IDF나 BM25에 많이 의존했다.
- Bi-encoder: query와 document를 각각 인코딩해 잠재 공간에서 비교하면 문서마다 cross-attention을 반복하지 않아도 된다. 논문은 두 표현의 상관관계를 반영하는 사전학습 loss를 사용해 BM25와 TF-IDF를 넘었다.
- 사전학습 중요성: 같은 retrieval 구조라도 제안한 방식으로 pretrain하지 않은 모델은 성능이 낮았다. 구조뿐 아니라 검색 목적에 맞는 학습 신호가 핵심이었다.
- Hard negative: Symmetrical Synthesis는 정답 임베딩을 크기를 보존한 채 대칭 이동해 결정 경계 근처의 어려운 오답을 만든다. 단순 대수 계산으로 경쟁력 있는 negative를 생성했다.
- 자연어 적용 한계: 이미지와 달리 텍스트는 원 데이터의 핵심 특징이 더 강하게 드러날 수 있어 대칭 합성을 인코딩에 적용하려면 추가 검증이 필요하다고 평가한다.
- Poly-encoder 절충: 긴 context를 소수의 code vector로 줄이고 응답 embedding이 이 코드에 attention한다. bi-encoder보다 정확하고 cross-encoder보다 빠른 multi-sentence scoring을 목표로 한다.
- 실무 관찰: Poly-encoder는 치밀한 실험으로 retrieval 성능을 개선했지만 구조는 비교적 단순하다. 문맥을 더 잘 보존하는 압축 방식이 후속 개선 지점으로 남는다.
왜 읽나Transformer 기반 검색과 표현 학습에서 정확도·속도·데이터 규모의 절충을 여러 논문으로 비교하려는 NLP 엔지니어에게 유용하다.