CHAPTER 03 / SECTION 07
3.7 금융 표를 문장으로 바꿔 새 행 만들기
열과 값을 텍스트로 바꾸어 학습하고 생성된 행의 제약과 분포를 검증합니다.
표의 한 행을 열 이름이 붙은 문장으로 바꾼다
지우는 이제 가격 경로 대신 대출 신청 자료로 분석 도구를 시험한다. 한 행에는 연소득, 부채 비율, 주거 형태, 승인 여부가 들어 있다. 수치와 범주가 섞여 있지만, 열 이름과 값을 짝지어 적으면 언어 모델에 넣을 수 있다. 이 변환을 Serialization(직렬화)이라고 한다.
Generate Realistic Tabular Data(실감 나는 표 데이터 생성, GReaT)는 이런 문자열을 언어 모델에 여러 개 보여 주는 방식이다. 모델은 ‘연소득은 4800만 원, 부채 비율은’까지 읽고 그 뒤에 어떤 숫자나 기호가 이어질지 맞히는 연습을 한다. 여러 행을 학습하면서 열의 값이 어떤 조합으로 자주 나타나는지 익힌다. 학습할 때는 열 순서를 바꿔 특정 순서에만 익숙해지는 것을 줄일 수 있다.
새 행을 만들 때 지우가 ‘주거 형태는 임차’부터 넣으면 모델은 그 조건을 시작점으로 나머지를 이어 쓴다. 모델의 출력은 문자열이므로 다시 각 열의 값을 꺼내 표로 바꾼다. 이때 ‘4800만 원’을 숫자로 바꾸고, 승인 여부처럼 정해진 값을 쓰는 열은 그 값이 맞는지 확인한다.
그럴듯한 행과 업무 규칙에 맞는 행을 구분한다
가상의 자료에서 주택담보대출 잔액을 현재 거주 주택에 한정해 기록한다고 하자. 모델이 주거 형태는 임차인데 그 주택의 담보대출 잔액이 2,000만 원인 행을 만들면 이 자료의 정의와 맞지 않는다. 실제로 임차인이 다른 집에 담보대출을 보유할 수 있으므로 규칙은 열의 뜻을 먼저 확정한 뒤 적용한다.
지우는 빠진 열, 변환할 수 없는 수치, 허용 범위를 벗어난 값, 업무 정의와 충돌하는 조합을 검사한다. 통과한 행으로만 분포를 비교하면 삭제 과정에서 생긴 왜곡을 놓칠 수 있다. 전체 제거율과 범주별 제거율을 함께 보면 특정 유형의 신청만 사라지는지 알 수 있다. 수치를 구간으로 묶으면 모델이 학습하기 쉬워지지만, 극단 부채 비율의 차이를 잃을 수 있다.
분류 성능이 비슷해도 고객 구성이 다를 수 있다
실제 신청 100건 중 부채 비율이 높은 신청이 20건인데, 합성 신청 100건에는 5건만 있다고 하자. 두 자료로 각각 학습한 승인 예측 모델이 같은 실제 시험 자료에서 비슷한 정확도를 낼 수 있다. 예를 들어 두 모델이 부채 비율이 낮은 신청을 비슷하게 맞혔다면, 높은 신청을 맞히는 정도가 달라도 전체 점수에는 차이가 작게 나타날 수 있다.
지우는 전체 정확도와 함께 높은 부채 비율의 신청을 따로 살핀다. 그 범주에서 실제 승인과 거절을 각각 얼마나 맞혔는지 비교한다. 합성 자료로 고객 구성을 살피려는 경우에는 승인 예측 점수보다 실제 20건과 합성 5건의 차이가 더 직접적인 근거가 된다.
정밀한 숫자가 중요하면 구간화의 손실과 언어 모델의 비용을 단순한 표 생성기와 비교한다. 고객 자료는 희귀한 열 조합이 실제 신청자를 드러낼 수 있어 유출 검사를 별도로 한다. 기업 공시를 표로 생성하는 경우에는 회계 기준과 공개 시점을 함께 확인해야 한다.