학교에서 gpt2 모델을 만들고 성능 개선을 위해 패러프레이즈 탐지 관련 코드를 채우는 과제가 있다!
이때 내가 패러프레이즈를 담당하게 되어 더 자세히 알아보았다. 여기서는 개념적인 부분을 다뤄보고자 한다.
패러프레이즈(paraphrase) 알아보기
패러프레이즈(paraphrase)는 같은 의미를 다른 표현으로 바꾸는 것을 의미한다. 즉, 문장의 형태는 다르지만 의미는 같은 경우를 가리킨다.
예시로 "너 오늘 학교 갔어?" 와 "오늘 학교에 다녀왔니?" 이 두 문장은 표현방식은 다르지만 같은 의미를 전달한다.
패러프레이즈 왜 중요할까?
-
의미 기반 처리의 핵심이 된다
자연어는 동일한 의미를 다양한 방식으로 표현할 수 있다. 의미 기반으로 문장을 이해하고 처리해야 하는 작업에서는 단순한 문자열 일치로는 부족하다.
-
데이터 다양성을 확보할 수 있다
하나의 의미를 다양한 표현으로 학습시킴으로써, 모델의 일반화 성능을 높일 수 있다. 이는 특히 데이터가 적은 상황에서 큰 도움이 된다.
활용 분야
- 질의응답 시스템(QA): 서로 다른 표현으로 질문하더라도 동일한 답을 제공해야 하므로, 패러프레이즈 판별이 필수적이다.
- 검색 엔진 최적화: 사용자가 다양한 방식으로 검색어를 입력해도 동일한 문서를 찾을 수 있도록 한다.
- 챗봇 및 대화형 AI: 동일한 의도의 질문을 인식하고 유연하게 대응할 수 있도록 한다.
- 데이터 증강: 기존 문장을 다양한 형태로 변형함으로써, 학습 데이터의 폭을 넓히고 모델의 성능을 개선한다.
모델은 어떻게 패러프레이즈를 판별할까?
- 문장 임베딩 방식: BERT, RoBERTa, GPT 등의 모델을 사용하여 문장을 벡터화한 후 cosine similarity로 유사도를 비교한다.
- 문장 쌍 분류 방식: 두 문장을 함께 입력하고, 의미가 같은지 분류하는 이진 분류 모델로 학습한다.
- Prompt 기반 방식: “Is sentence A a paraphrase of sentence B?”와 같이 자연어 질문 형태로 입력하여, 모델이 스스로 판단하도록 유도한다.
대표적인 데이터셋
- Quora Question Pairs: 유사 질문 쌍이 실제로 의미상 같은지를 분류하는 데이터셋이다. (실제로 나도 이 데이터를 활용해 학습한다.)
- PAWS (Paraphrase Adversaries from Word Scrambling): 단어 순서만 바뀐 문장을 포함해 까다로운 패러프레이즈 판별을 요구한다.
- MRPC (Microsoft Research Paraphrase Corpus): 뉴스 본문을 기반으로 문장 간 유사 여부를 판별하는 데이터셋이다.
패러프레이즈는 단순한 문장 재구성이 아니라, 자연어의 의미적 유연함을 이해하는 핵심적인 기술이다. 만들어놓은 gpt2 모델이 패러프레이즈 탐지를 잘 하도록 더 열심히 알아보고 코드를 찾아봐야겠다 ㅜ