본 프로젝트는 2020년 Deep&High Learning(AI 스쿨 3기)에서 강의를 수강하면서 진행하였던 특허 관련 프로젝트로서, 특허업계에서 근무하고 있는 필자의 관심 주제인 특허 문헌을 통해 Doc2Vec 모델을 구축/평가한 레포트의 내용을 본 포스트에 옮겨보았다.
Doc2Vec을 이용한 특허 IPC 코드의 분산 표현[Distributed Representations of International Patent Classification Code with Doc2Vec]
- 김승래(kingjoy87@gmail.com)
0. 요약
본 연구는 토픽이 계층적으로 분류되어 있는 방대한 특허 문헌 데이터에서, 텍스트를 비롯한 주제 토픽(IPC 코드)을 벡터로 취급하여 Doc2Vec 모델을 생성/학습시키고, 전체 문헌의 범주에서 사상되는 토픽(IPC 코드)들의 분산 표현을 통해 단어/토픽 사이의 연관 관계를 조망하는 것이다. 이를 위해 약 4백만건의 특허 문헌의 텍스트 정보와, 특허 출원시 대한민국 특허청으로부터 부여받는 분류 코드, 즉 IPC(International Patent Classification) 코드를 Paragraph ID로 라벨링하여 학습시킨 Doc2Vec 모델을 이용하였고, 벡터 공간에 사상되는 IPC 코드의 분산 표상을 구축 및 최적화 방법을 다룬다.
1. 개요
- "word embedding" 및/또는 "document embedding"에 있어서, Word2Vec 또는 Doc2Vec 방식이 잘 알려져 있다.
- 이중, Doc2Vec은 paragraph vector와 word vector 각각의 좌표값을 비지도학습 방식으로 훈련하여 문헌들의 분산된 표상을 구축하는 임베딩 방식이다.
- 일반적으로 Doc2Vec은 방대한 양을 갖지만 레이블 정보가 희박한 Data를 단어 및 문서 단위로 임베딩하는 용도로 활용된다.
- 본 연구는, 계층 클래스(hierarchy class) 구조를 갖는 레이블(토픽)이 체계적으로 부여된 방대한 문헌 데이터가 존재할 경우, 개별 문서 단위가 아닌 레이블 단위로 학습된 Doc2Vec 모델을 구축함으로써 Data를 구성하는 토픽들 간의 논리 구조/관계를 추론하는 방법론을 제시한다.
- 이는 문서 집합에서 추상적인 토픽을 발견하는 토픽 모델링(topic modeling)과는 반대로 계층적으로 구조화된 토픽을 이용하여 전체 문헌 pool의 단어 및 토픽의 분산 표현을 최적화시키는 것으로 이해될 수 있다.
- 본 연구에서는 1987년 이후부터 2020년 사이에 출원되고 공개된 한국 특허/실용신안 문헌 430만건의 텍스트 정보(자료출저: KIPRIS)에, 문헌 각각의 IPC 코드를 Paragraph ID로 단계적으로 라벨링한 Data Set을 통해 Doc2Vec 모델을 구축하였다.
2. 특허문헌 & IPC & DataSet 소개
2.1. 특허/실용신안
- 특허/실용신안 문헌(이하, 특허 문헌)은 토픽이 체계적으로 분류되어 있는 방대한 풀을 갖는 데이터 중 하나이다.
- 특허문헌의 경우, 출원시 특허청 자체 프로세스를 통해 국제적으로 통일된 특허 분류체계인 IPC 코드를 적어도 하나 이상 부여받게 되며, IPC 코드는 해당 특허의 주제/분야를 4단계의 계층구조로 표현할 수 있다.
- 특허청의 DB 검색 서비스(키프리스)에서 제공되는 데이터 중, 1945년~2019년 사이에 출원되어 공개된 특허/실용신안 문헌(이하, 특허문헌)의 누적 건수는 총 4,565,826 건에 달한다.
- 특허문헌은 대표적으로 아래와 같은 대표 항목으로 이루어진다.
- 제목
- 요약
- 청구범위
- 발명의 설명
- 서지 정보
- 이상의 항목들 중, 해당 특허 발명의 핵심 사상을 담고 있는 부분은 "청구범위"이며, 청구범위는 출원인이 특허를 통해 권리범위를 확보하고자 하는 발명의 핵심 아이디어가 언어를 통해 현출되는 부분이다.
2.2. IPC 코드
- 대한민국 특허청의 경우 1981년부터 출원되는 신규 특허/실용신안 문헌에 대해서 국제 특허 분류 기준인 IPC(International Patent Classification) 코드를 부여하기 시작하였으며, 현재까지도 유지되고 있다. (참조: WIPO IPC Publication)
- IPC의 구성은 기술 전체를 8개의 섹션으로 나눠 알파벳 A~H로 표시하며 각각의 센셕에 대해 클래스, 서브클래스, 메인그룹, 서브그룹으로 계층적 구조로 나뉜다.
- 이상과 같이, IPC는 하위 그룹이 상위 그룹의 세분류로 포함되는 계층적 & 트리형 구조를 가지며, 특허문헌은 약 70,000개의 IPC 코드 중 하나 이상을 부여 받을 수 있다.
2.3. DataSet
- 본 연구에서는 요약, 청구범위 또는 IPC 코드가 대다수 누락되어 있는 1980년대 중반 이전의 문헌들은 제외하고, 1987년~2020년 사이(1987.01.01.~2020.03.01.)에 출원/공개된 특허/실용신안 문헌(이하, 특허 문헌) 약 439만 건 중, 날짜 내림차순으로 총 430만건을 취합하여 본 Data Set으로 구축하였다.
- 본 Data Set의 자료는 특허청 DB검색 사이트 KIPRIS(http://www.kipris.or.kr/)를 사용하여 취합하였다
- 본 Data Set은 다음의 식별항목을 포함한다.
- Index : 식별번호
- Claims : 청구범위 텍스트 (Words)
- IPC: IPC 코드 (Paragraph ID)
3. 개발 과정
3.1. 요약
- 본 모델의 개발 과정은 다음과 같이 정리할 수 있다.
- 한국 특허/실용신안 문헌(이하, 특허문헌) 430만건의 청구항 텍스트 & IPC 코드 추출
- 청구항 텍스트 단어들을 형태소 단위로 분석하여 명사만 토크나이징(형태소 분석기: mecab-ko-dic(eunjeon))
- IPC 코드를 i)클래스/ii)서브클래스/iii)메인그룹/iv)서브그룹으로 단계별로 라벨링한 데이터세트 구축
- doc2vec 모델(word vector & paragraph vector) 학습 with Gensim(https://radimrehurek.com/gensim/)
- 별도의 무작위 특헌 문헌들(Test Set)의 IPC 코드 추론을 통해 성능을 계측
3.2. 모델 특징
- 본 모델의 dataset은 1980년대 후반부터 2020년 초까지 공개된 국내 특허문헌들(430만건)을 포함하고, dataset 전부를 training data로 활용함
- 전체 문헌 풀(pool)이 갖는 토픽의 분포/경향성을 반영
- 시대별 요인은 고려하지 않았음 (추후 논의 사항)
- 텍스트 데이터로 특허문헌의 청구범위(Claims) 만을 사용함
- 청구범위가 특허문헌의 핵심
- "발명의 설명"은 발명의 상세한 설명이 기재되어 있는 부분에 해당하지만 데이터의 구축이 쉽지않음
- "요약"은 대표청구항의 내용을 옮겨적는 문헌들이 대다수이며, 과거문헌들(1980년대 이전 문헌) 중 요약이 없는 문헌들이 상당수를 차지함
- 청구범위에 사용되는 단어 & 표현의 특수성이 토픽 주제의 변별에 유리할 것으로 판단
- 명사로 분류되는 형태소만 추출(즉, 동사는 배제함)
- 형태소 분석기는 mecab-ko-dic(eunjeon)을 사용
- 모델의 특성상 맥락에 대한 심도깊은 표현을 제공하기 위한 것이 아니므로, 효율/경제성의 이유로 명사만 취급함
- 한국 문헌의 특성 상, 특히 청구범위의 기술 방식에 있어서, 한자어가 차지하는 비중이 상당히 높기 때문에, 명사를 추출하더라도 술어에 해당하는 한자가 포함되어 충분한 주술관계가 반영된다는 점을 고려함
- IPC 코드 & CPC 코드 중 IPC 코드를 우선적으로 채택함.
- CPC 코드가 보다 세분화된 분류를 제공하지만, CPC가 국내에서 정식으로 채택된것이 2015년 이후임에 따라 누락이 존재하므로, 기존의 IPC 코드가 보다 적합하다고 판단함
- CPC 코드의 신생 클래스("X", "Y")는 분류의 변별력에 마이너스되는 요소로 작용할 여지가 존재함
- IPC → CPC 변환은 문제없지만, 반대는 그렇지 않음
- 중첩되지 않는 무작위 특헌 문헌들의 IPC 코드 추론을 통해 성능을 테스트함
- 전체 문헌들의 토픽 분포 경향을 반영시키는 것이 목적이므로, training data 이후에 공개된 무작위 특허문헌 1200건(test set)에 대해서, IPC 코드를 얼마나 가깝게 추론하는지를 본 모델의 성능 지표로 사용함
3.3. 모델 설계/학습
3.3.1. 태그 설정
- IPC 의 레벨에 따라 단계적으로 라벨링한 4 개의 데이터 세트를 구축하여 각각으로부터 4 개의 모델 1~4를 학습
- 본 연구에서 사용되는 모델 [1~4] 모두 다음과 같은 동일한 조건으로 gensim을 사용하여 학습하였다.
3.3.2. Model [1]
- IPC 코드를 125개의 클래스(class) 단위로 문서의 Paragraph ID를 라벨링
3.3.3. Model [2]
- IPC 코드를 626개의 서브 클래스(sub-class) 단위로 문서의 Paragraph ID를 라벨링
3.3.4. Model [3]
- IPC 코드를 7360개의 메인 그룹(main-group) 단위로 문서의 Paragraph ID를 라벨링
3.3.5. Model [4]
- IPC 코드를 69151 개의 서브 그룹(sub-group) 단위로 문서의 Paragraph ID를 라벨링
4. 결과
4.1. IPC 예측 TEST
4.1.1 테스트 방법
- dataset과 중첩되지 않는 1200개의 특허문헌(training set 이후에 출원된 특허 문헌)을 testset으로 구축
- 모델에 test data를 입력하였을 경우, 코사인 유사도가 가장 높은 것으로 추론된 상위 10개의 IPC 코드 중에 어느 하나라도 실제 IPC 코드(들)에 포함되어 있는지 여부를 기준으로 HIT/FAIL 결정
- 전체 testset(1200개) 중 HIT으로 판별된 문서의 비율을 성능 지표로 활용하였음
- testset 역시 클래스/서브클래스/메인그룹/서브그룹으로 단계별로 예측 성능을 측정
4.1.2. 결과
- 4 개의 모델 각각의 testset에 대한 IPC 예측 성능이 아래의 표와 같이 측정 되었다.
- 당초의 예상과 같이, 하위 레벨의 분류 태그를 사용할수록 예측 성능이 증가되는 점을 확인할 수 있었다.
- 클래스 및 서브 클래스 예측에서의 성능 증가 경향을 보았을 때, 태그 레벨이 증가함에 따라 성능의 증가 비율은 점차 감소되었다.
4.2. 유사 단어 벡터 평가
- 하기의 단어들(word vectors)에 대한 각각의 모델별 cos 유사도 상위 단어의 추론을 통해, 모델별로 유사 벡터들을 비교해 보았다.
- 가급적으로 이종의 분야에 걸쳐서 사용되는 단어(다의어)를 사용하였다
- 몇가지 단어의 유사도 추론만으로는 모델 레벨에 따른 경향을 파악하는 것이 용이하지는 않았다
- 하지만, 모델 레벨의 증가에 따라서 단어가 특정 분야/그룹에 편중되지 않고 보다 여러 분야를 포괄하는 방향으로 학습이 되는 경향을 확인하였다.
4.3. 유사 IPC 벡터 평가
4.3.1. 모델 [2]
4.3.1. 모델 [3]
4.4. IPC context 평가
- 단어 벡터 사이의 문맥 평가에 사용되는 "king + (woman - man) = queen " 구조와 유사한 방식의 문맥 평가를 IPC 벡터에 적용함
- model [2]를 이용한 평가만 수행
4.4.1. 부품 관계
4.4.2. 상호 대응물 관계
4.4.3. 제조기술-제조품 관계
4.4.4. 응용 기술 관계
- 이상의 결과는 상대적으로 결과가 잘 뽑힌 예시들만 선별해서 올린것이며, 몇몇 IPC 벡터들의 경우 이해할 수 없는 결과를 내놓는 경우도 존재하였음
- 다만, 단어 벡터가 아닌 문서 벡터(IPC 벡터) 수준에서 어느정도 문맥적인 상호 관계가 구축되었다는 점에서 유의미한 결과로 여겨짐
4.5. 기타 테스트
4.5.1. 다중 레벨(Multi-Level) 태그 테스트
- 트리 구조에 따른 종속 관계를 보다 모델에 반영시키기 위하여, 상위 레벨의 코드를 추가적으로 태깅하여 성능의 변화를 측정함
- 상위 레벨의 IPC 태그를 추가적으로 태깅한 3 개의 모델을 학습하여 성능을 비교함
1. model [2+3]
- IPC태그를 메인그룹(level 3)과 서브클래스(level 2)를 함께 사용
- ex) H01F 1/01 → [H01F 1], [H01F]
2. model [3+4]
- IPC태그를 서브 그룹(level 4)과 메인그룹(level 3)을 함께 사용
- ex) H01F 1/01 → [H01F 1], [H01F 1/01]
3. model [1+2+3+4]
- 모든 레벨의 IPC태그를 함께 사용 - 클래스(lv1), 서브클래스(lv2), 메인그룹(lv3), 서브그룹(lv4)
- ex) H01F 1/01 → [H01], [H01F], [H01F 1], [H01F 1/01]
- IPC 예측 성능 비교 결과, 이상의 표와 같이 단일 레벨의 IPC를 사용하는 모델보다 오히려 성능이 하락하는 것을 확인할 수 있었다.
- 더불어, 보다 많은 상위 레벨의 IPC를 함께 태깅할수록 성능의 하락이 더욱 두드러짐
4.5.2. 레벨 샘플링 테스트
- IPC의 서브 그룹(lv4)은 자체적으로도 9단계의 트리 계층을 가짐
- 서브 그룹간의 계층 관계를 반영하되, 필요 이상의 과도한 세분류를 완화하기 위해, 서브 그룹을 상위 2 단계에서만 반영하도록 샘플링하여 테스트를 수행함
- IPC 예측 성능 비교 결과, 샘플링을 적용한 모델(model [4_lv2])의 성능이 기존 모델 [4]보다 성능이 하락하였음
4.5.3. CPC 태그 테스트
- IPC 코드 대신 CPC를 사용하였을 경우의 성능 변화를 측정함
- 기존의 모델 3 및 모델 4의 dataset과, trainset의 IPC를 CPC로 변환하여 학습 및 테스트를 수행함(참조: CPC-IPC 매칭표)
- IPC/CPC 예측 성능 비교 결과, CPC를 사용하였을 경우 예측 성능이 좀더 향상되는 것을 확인할 수 있었음
- 특히 메인그룹(lv3)의 CPC 를 사용하는 모델(model [3_CPC])에서 성능의 향상이 존재하였음
- 서브그룹(lv4)의 CPC 를 사용하는 모델(model [4_CPC])의 경우 예측 확률이 감소하였지만, CPC의 서브그룹 태그 개수가 20만여개로 IPC의 서브그룹 개수(7만여개)보다 2 배 이상을 상회한다는 점을 고려하였을 때, 이상의 결과만으로 객관적인 비교는 어려운것으로 판단됨
5. 활용
5.1. 유사 문헌 검색
- 발명 또는 기술을 설명하는 텍스트 정보를 입력받아 동일하게 토크나이징/벡터화하고, 모델에 입력하여, Data Set의 문헌 중 가장 유사도가 높은 문헌을 추론 할 수 있었음
- 다만, 3.2. 에서 언급한바와 같이, 본 모델은 발명의 내재적인 맥락을 심도깊게 표현하기 위한 목적이 아니므로, 유사 분야의 특허 검색이 가능한 정도 이상의 수준을 기대하기는 쉽지 않을 것으로 판단됨
- 추가적으로 검색하고자 하는 분야를 한정/배제하고자 할 경우 해당 분야의 IPC/CPC 벡터를 이용하여 추론값에 가중치를 부여할 수 있을 것으로 예상됨
5.2. IPC 맵
- 모델별로 훈련된 IPC 태그들을 시각화하여 IPC 코드의 관계 구조를 조망
- 산업 기술 지형의 파악 & 연관 기술들의 Landscape 제공
- 현행 IPC/CPC 체계의 분류 효율성/적합성 평가
- IPC/CPC 등 특허 분류 체계의 취약/누락/중복 부분에 대한 검증
- 모델 성능 검증 & 성능 향상에 활용
- 해결 과제 <-> 해결 수단 사이의 맥락 유추 (ex. TRIZ, OS matrix 등의 기술 분석 및 시장 분석에도 활용할 가능성이 있을것으로 판단)
6. 결론 & 보완점
- 먼저, 본 연구는 2020년 당시 다른 생업이 있는 필자가 여가시간을 활용하여 진행한 프로젝트인만큼, 객관적/학술적인 시각에서 검증해야될 과정이 누락되거나, 의도적으로 건너뛴 부분 역시 존재하는 점을 밝혀둔다.
- 구체적으로, i)검증 셋의 생략, ii)고정된 에폭/벡터사이즈, iii)토크나이징 기준, iv)텍스트 항목 선별 기준, v)테스트 방법/기준 등을 비롯한 전체적인 모델 설계 방향에 있어서 미흡한 부분이 존재하지만, 전반적인 경향성을 살펴보는데 있어서는 유의미한 결과를 확인할 수 있었다고 판단된다.
- 청구범위만을 추출하여 진행하였기에 다른 항목들(요약, 발명의 설명, 제목)을 활용하였을 경우와의 성능 차이를 다루지는 못한점도 아쉬운 부분이지만, 본 모델의 주 목적이 IPC 코드 벡터의 분산 표상을 구축하는데 중점을 둔 만큼, 청구범위만을 다뤄서 진행하는 것이 가장 효율적이었다고 판단된다.
- 또한, 중요하게 언급되지는 않았지만 형태소 분석기의 정확도가 본 연구 모델의 성능에 매우 큰 영향을 미칠 것으로 생각된다.(본 프로젝트를 진행할 당시(2020년 초)는 mecab-ko-dic(by eunjeon)이 정확도와 (특히) 속도에 있어서 상대적으로 우수하였다.
- 프로젝트 당시 Doc2Vec을 통해 이러한 다중의 태그의 라벨링을 통해 학습시키는 아이디어는 아래의 특허와 같이 이미 개시되어 있었다는 점을 밝혀둔다
본 프로젝트와 관련해서 별도로 흥미로웠던 주제나 향후 프로젝트는 후속 포스트를 통해 올려볼 예정이다.
'Doc2Vec Patent Project' 카테고리의 다른 글
AI로 본 전자 기업들의 2021년 연말 특허 동향 #1 (0) | 2022.01.09 |
---|