결합 추출
Joint Extraction
이름 같은 개체와 그 사이의 관계를 따로따로가 아니라 한 번의 작업으로 함께 뽑아내는 방식.
쉽게 말하면
결합 추출은 문서에서 개체(이름, 날짜, 조직 같은 것)를 찾는 작업과, 그 개체들 사이의 관계를 찾는 작업을 따로 하지 않고 한 번에 같이 처리하는 방식을 말해요.
사진에서 사람을 찾는 사람과 물건을 찾는 사람이 따로 있고, 그 다음 또 다른 사람이 나중에 '이 사람이 이 물건을 들고 있네' 하고 짜맞추는 것과, 한 사람이 사진을 보자마자 '이 사람, 이 물건, 들고 있음'까지 한 번에 적어내는 것은 결과는 비슷해도 과정이 완전히 달라요. 결합 추출은 후자에 가까워요. 개체를 찾는 것과 관계를 엮는 것을 같은 계산 안에서 동시에 처리하기 때문에, 서로 어긋나는 결과가 나올 여지가 줄어들어요.
특히 '이 관계는 반드시 이 두 종류의 개체 사이에서만 성립한다' 같은 규칙을 미리 정해두면, 결합 추출 과정에서 그 규칙에 맞는 조합만 골라서 완성된 그림(누가 무엇과 어떤 관계인지 정리한 표 같은 것)을 만들어낼 수 있어요.
기사에서 이렇게 나와요
기사는 "개체 타입과 관계, unique_head=True 같은 구조 규칙을 선언하면 빔 서치가 스키마에 어긋나지 않는 그래프를 조립해주는 결합 추출 기능도 붙었고요"라고 설명해요. 여기서 결합 추출은 이름 뽑기와 관계 엮기가 별도 단계가 아니라 한 모델의 한 과정 안에서 함께 이루어진다는 뜻이지, 단순히 여러 결과를 나중에 합친다는 의미가 아니에요.
직접 해보기
챗봇에 아래처럼 시켜보면 결합 추출과 비슷한 결과를 체험할 수 있어요.
- 짧은 뉴스 기사나 소개글 하나를 준비한다.
- 챗봇에 다음처럼 요청한다: "아래 글에서 사람 이름과 조직 이름을 모두 찾고, 각 사람이 어떤 조직과 어떤 관계인지(예: 근무, 소속, 대표)도 함께 표로 정리해줘."
- 결과를 보면 개체 목록과 관계 목록이 따로 나오는 게 아니라 하나의 표 안에서 연결되어 나오는 걸 확인할 수 있다.
