본문 바로가기

논문/Patent

IPC prediction of patent documents using neural network with attention for hierarchical structure

Abstract

  • 70,000 IPC를 분류에는 많은 비용이 소모된다.
  • 특허를 ML로 분류하려는 시도가 있었지만 큰 사이즈로 인해 필요한 메모리가 많아 입력 정보가 제한된다.
  • IPC의 계층적 구조와 새로운 decoder 아키텍처를 제안한다. 

1 Introduction

 매년 전 세계에서 3M 개의 특허가 출원되며 하나의 특허를 검토하는데 6개월 이상의 시간이 소요된다. 각 특허는 international patent classification (IPC)를 몇 가지 부여 받으며 적절한 IPC를 부여받는 것이 특허 등록에 영향을 미친다. IPC 예측 모델을 개발한다면 조사관들의 부담을 줄이면서 적절한 조사관에게 특허가 할당될 수 있으며 유사 특허 검색에도 용이할 것이다. 

 IPC는 계층적 구조이기 때문에 해당 예측은 계층적 구조를 갖는 NLP multi-label 분류로 볼 수 있다. 다른 cooperative patent classification (CPC)와 file index (FI)도 계층적 구조를 가지고 있으므로 IPC 예측 모델을 다른 label 예측에도 활용할 여지가 있다. 

 Attention 기반의 기법들이 많이 개발되었지만 여전히 IPC 예측에는 기본적인 ML 방법만 연구되었다. 최근에는 deep learning 모델을 이용하여 계층적 구조의 multi-label text classification도 수행되었지만 긴 문장을 입력으로 받는 경우는 없었다. 

 The Contributions

  1. 첫 번째 청구항을 이용한 예측의 문제점을 지적하고 전체 청구항에서 필요한 정보를 추출하는 방법을 제안
  2. IPC의 계층 구조를 이용한 디코더를 제안
  3. 실제 특허 데이터를 활용하여 모델의 가용성을 검증

2 Basic information on patents

특허는 "Inventors", "Patent Numbers", 및 "IPC" 등 다양한 서지 정보가 있다. "Abstract"는 발명에 대한 간략한 설명이 폭넓게 되어있으며 양식이 있는 것이 아니기 때문에 간략한 경우에는 어떤 기술에 관한 내용인지 파악이 힘들다. "Claims"은 특허의 본질적인 내용을 나타내는 부분으로, 다음과 같이 다수의 청구항으로 구성되어 있는 것이 특징이다. 수가 적을수도 잇지만 경우에 따라서는 100개가 넘어가는 경우도 있으며, 그 자체로 완전히 기술되는 독립 청구항과 선행항을 보충하는 종속 청구항으로 나뉜다. 종속 청구항의 경우 보충하는 내용이라고는 해도 이전에 언급되지 않은 것을 추장하는 경우도 있어서 발명을 이해하기 위해서는 모든 청구항을 읽어야 한다. 

 IPC는 sections, classes, subclasses와 groups로 구성되며 section은 8개 뿐이지만 계층적으로 확장하면 약 70,000개의 subclasses가 존재하고 계층 구조 아래로 갈수록 예측이 어렵다.

An example of International Patent Classification (IPC) code G06N3/02 1. The IPC scheme is a hierarchical taxonomy with five levels. Zuo, You, et al. "Exploring Data-Centric Strategies for French Patent Classification: A Baseline and Comparisons."  18e Conférence en Recherche d'Information et Applications\\16e Rencontres Jeunes Chercheurs en RI\\30e Conférence sur le Traitement Automatique des Langues Naturelles\\25e Rencontre des Étudiants Chercheurs en Informatique pour le Traitement Automatique des Langues . ATALA, 2023.

특허 하나에 여러 IPC가 부여될 수 있으며, 2013년 특허 당 부여된 평균 IPC 수는 약 4.16개 라벨로 일부 특허에는 100개 이상의 IPC가 부여되었다.

3 Related works

계층적 multi-label 분류 문제의 현존 방법을 설명하고 HARNN과 Patent BERT를 설명한다.

3.1 Hierarchical multi-label text classification

  • SVM: 계층적 구조에 따라 손실함수가 변경되었으며 라벨의 거리가 멀수록 손실이 커진다.  Multi-label 분류 문제에서 label 수에 맞춰 이진 분류 문제를 해결해야하며 IPC는 그 수가 크기 때문에 많은 시간이 필요
  • Dicision tree: 길이가 가변하며 순서가 존재하는 텍스트 정보에 부적합
  • HARNN: 인코더는 bidirectional LSTM 디코더는 계층적 구조로 되어있다. Global과 local 두 종류로 디코더는 구성되며 global은 한번에 모든 level을 예측하고 local decoder는 parent level에 기반하여 child level을 예측한다. HARNN이 모든 계층의 IPC를 예측하는 SOTA 모델이다
  • Transformer계열은 아직 계층적 구조 예측에 연구된 바가 없다. 

3.2 Patent labeling

SVM, k-NN, Word2Vec과 같은 연구가 선행된 바 있으며, 2018년 처음으로 CNN 기반의 deep learning 방법으로 특허 분류를 시도한 바 있다.

Patent BERT는 BERT 기반 모델이며 일반적인 BERT 모델에 분류기 한 layer를 올려서 만든 모델이다. 이 모델은 multi-labeling 을 지원하지만 계층적 구조를 고려하지는 않았다. 

4 Proposed method

Fig 1. Overview of the proposed model.

제안하는 특허 분류 모델 방법의 개요는 Fig. 1 에 기술되어있다.  우선, 명사와 그들의 퍼센트를 대규모 텍스트 정보의 청구항에서 추출한다. 이후 인코더가 feature를 생성하여 decoder가 IPC를 예측한다.

4.1 Noun extraction

특허 내 평균 토큰 수는 1,200 정도이고 특정 경우는 10,000 토큰을 넘어가기 때문에 모두 고려하기엔 메모리가 부족하다. IPC를 예측하는데 있어 대부분의 경우는 명사만으로 그 경우를 예측할 수 있다. 따라서 제안하는 방법에서는 형태소 분석을 통해 모든 청구항에서 명사를 추출한다. 이 때 명사의 빈도는 중요할 수 있으나 등장 순서는 중요하지 않을 수 있다. 따라서 해당 명사 등장 빈도를 전체 명사 등장 빈도로 나누어준 비율(%)을 구했으며, 이 때 stopwords를 제거하지 않았다. 결과적으로 약 140 토큰을 유지할 수 있었다.

4.2 Encoder

  • 4.2.1 Attention: (일반적인 트랜스포머 설명, skip) 집합 트랜스포머는 트랜스포머에서 positional encoding을 제거한 것으로 그 들은 또한 가변 길이를 고정 길이로 압축하여 사용한다.
  • 4.2.2 Proposed encoder: 집합 트랜스포머를 사용하지만 여전히 명사의 비율(%) 정보를 어떻게 모델에 반영할지 생각해야 한다. 단어 임베딩은 fig. 3의 상단 그림과 같이 원 핫 벡터와 임베딩 벡터 행렬의 내적으로 계산할 수 있다. 이 원 핫 벡터를 비율(%)로 계산한다면 하단의 그림처럼 비율(%)이 고려된 임베딩 벡터가 출력된다. 

Fig 3. Interpretation of ratio encoding.

따라서 $e_i$가 $i$번째의 임베딩 벡터이고 $r_i$가 비율(%)이라면 계산된 값은 $r_i e_i$가 된다. 

Fig 4. Structure of encoder.

결과적으로 최종 인코더는 Fig.4와 같다. 

4.3 Decoder

Fig 5. Structure of decoder.

디코더는 IPC의 계층적 정보를 이용하기 위해 설계됐다.  Fig. 5는 디코더의 개요로 UNIT은 디코더에서 각 child label의 할당 여부를 예측한다. 가장 얕은 layer는 section을 예측한다. 두 번째 layer는 section 수 만큼 unit이 있으며 각 section에 해당하는 class를 예측한다.  세 번째 layer는 예측된 class로부터 subclass를 예측한다. 따라서 각 node는 각 계층에서 유일한 프로세스를 수행한다. 

 어텐션의 경우 encoder의 출력을 압축없이 사용할 수 있다는 이점이 있지만 많은 연산량과 메모리가 필요하다. Unit마다 어텐션을 연산하면 연산량이 너무 많이 필요하기 때문에 GPU 효율을 위해 전역으로 어텐션을 고려한다. 

Fig 6. Image to make a query.

Fig. 6에서 query는 출력의 선형 변환이고 선형 변환에서 행렬의 열벡터는 이전 계층의 예측 타겟의 벡터로 parent 노드 출력의 가중합이다. 즉 parent 노드의 결과가 클수록 해당 벡터가 더 많이 반영된다. 결과적으로 활성화 함수가 sigmoid이므로 이전 level에서 많은 label이 예측된다면 큰 query 값도 큰 경향성을 보인다. 이 결과는 많은 label이 있을수록 더 많은 정보를 가지고 있을 것이라는 직관과 일치한다.

Fig 7. Unit of the decoder.

 Decoder의 unit은 parent node로부터의 입력과 어텐션에 의한 context 벡터를 입력받고 출력은 child node로의 출력과 예측값을 위한 전체 모델에 대한 두 개를 출력한다. Node의 수가 굉장히 많기 때문에 큰 모델을 사용하지 못하며 사용된 unit은 Fig. 7에 기술한다. 

 중간 계층과 하위 node에 대한 출력의 크기는 해당 모델에서 수행되는 작업의 복잡성에 따라 달라져야 한다. 이는 하위 노드가 대상으로 하는 IPC 수에 따라 설정됩니다. 노드 $n$이 소유한 IPC의 개수는 $l(n)$이고, 모델이 예측하는 IPC의 개수는$L$이며, 인코더의 특징 차원은 $D$이다.

$$ \texttt{dim}h_r^n = 1+\left \lceil (D-1)\texttt{log}_ll(n) \right \rceil $$

$h_{enc}$가 인코더의 출력이고 $P(n)$이 노드 $n$의 parent node라고 할 때 전체 디코더 연산은 아래와 같다.

5 Experiment 

IPC 예측 작업에 대해 기존 방법들과 비교해 보았다.

5.1 Experimental setup

등록된 미국 특허들만 사용하고 training은 2010~2012 출월 2020 등록, test는 2013 출원 2020 등록된 특허만 사용하였다. 

Table 1. Details of the number of data. train

데이터는 PatentSQUARE를 통해 얻었으며 training의 10%를 validation data로 사용하였다. 전처리는 NLTK python library를 사용하여 입력의 각 문장에서 최빈 명사 512개를 수집하였다. 512번째 최빈 명사가 여러개 발생할 경우 임의로 선택하였다. 예측할 IPC는 학습 데이터에서 100번 이상 나타나는 IPC(총 4087개 라벨)이다.  몇 특허는 IPC가 없지만 현실 반영을 위해 제외하지 않았다. 

 Dropout과 layer normalize을 적용했고 인코더 차원은 256, 깊이는 4, dropout 비율은 0.2, 정규화 가중치는 10e-5이다. 첫 10 epochs는 임베딩 layer를 프리즈하고 학습했고 이후 5 epochs 는 프리즈하지 않고 Adam으로 학습하였다.

5.2 Evaluation metrics

 기존 연구들에서는 각기 objectives에 적합한 평가 지표를 사용했다. Patent BERT는 single label accuracy를 사용했으나 이는 현실과는 동떨어진 모델 평가 지표이다.

  Multi-label 분류 문제를 multiple-binary 분류 문제로 봤다. 각각의 IPC는 굉장히 적인 비율로 존재하고 불균일한 분포를 갖고 있는 것을 고려했다. 이진 분류 예측에서 평가결과는 threshold에 영향을 받기 때문에 AUC 방법으로 모델을 평가했다.  또한 사용 목적에서 이후 심사관이 모델 예측 결과를 심사관이 참고할 것이기 때문에 Recall@N을 추가하였다. 여기서 N은 top N개를 의미한다.

5.3 Results

먼저, 명사 추출이 적합한지 알아보기 위해 간단한 실험을 진행했다. 대상 레이블을 section으로만 제한하고 품사에 대한 측정항목을 비교했고 그 결과는 Table. 2에 정리했다. 표의 결과는 명사를 사용하는 것이 적은 단어 수에서도 성능 저하가 적으며 효율적으로 높은 성능을 보여준다. 

Table 2. 8 label classification with each part of speech.

Table. 3에 계층별 모델의 예측 정확돌르 분석했다. 계층이 하위로 갈수록 예측이 어려워지며 group에서 급격하게 정확도가 감소하는 이유는 decoding feature size가 작아서일 수 있다. 

Table 3. Evaluation by level. rank

Table. 4에 Section 별 평가 지표를 계산하였다. A, G의 정확도는 높고 B, D, E는 낮으며 일반적으로 데이터 수가 적으면 정확도가 낮아진다.

Table 4. Evaluation by section. section

Baseline 모델로 HARNN와 Patent BERT를 선택했다. HARNN은 256 차원의 크기이며 word2vec 모델로 임베딩하여 대표 청구항을 입력한다. Patent BERT는 base 크기를 사용한다. 해당 결과와 ROC 곡선은 Table. 5와 Figure. 8에 기술한다. HARNN와 patent BERT는 AUC값은 큰차이가 없지만 F-measure에서 차이가 발생하는 만큼 사전 학습의 효과를 확인할 수 있다. 제안한 ours가 가장 좋은 성능을 보여주는 것을 확인할 수 있다. 그러나 그 값이 0.25인 것으로보아 아직 상용화하기에는 발전된 여지가 많이 남았다.

Table 5. Comparison with existing methods.
Fig 8. ROC-curve ofsubgroup classification.

Figure. 9에서 Recall@N 결과를 보여주며 N=30, 70% / N=300, 95%인 것을 확인할 수 있다. 

Fig 9. Result ofrecall@N.

6 Conclusion and future work

  • 모든 청구항에서 명사와 그 비율을 추출
  • IPC의 계층 구조를 처리하는 데 global attention을 고려하면서 지역적으로 특정한 정보를 처리하는 디코더
  • Recall@N을 사용하여 할당될 가능성이 있는 레이블을 추천하는 데 사용된 모델을 테스트