본문 바로가기

논문/Patent

PatentNet: multi‑label classification of patent documents using deep learning based language understanding

 

 

Abstract

  • 특허 문서 분류는 multi-label classification을 많은 labels에 대해 수행하는 것
  • 사전 학습된 언어 모델 (BERT, XLNet, RoBERTa, ELECTRA)를 미세조정하여 성능 확인
  • USPTO-2M 데이터와 M-patent 데이터로 실험 수행
  • XLNet이 가장 좋은 성능

Introduction

  • 특허 전문가와 특허 정보 사용자에게 특허 분석과 관련된 기술의 자동화의 필요성이 대두되고 있다.
  • 특허 분류에는 IPC(국제 특허 분류) 또는 CPC(협력 특허 분류)와 같은 일반적인 표준 분류 구조가 사용(Shalaby & Zadrozny, 2019).
  • 그러나 전통적인 텍스트 처리 방법을 활용하면 특허 텍스트를 성공적으로 처리하지 못했으며 이는 특허가 길고 복잡한 법적 문서이기 때문이다. 특허 문서에서 모호하고 새로운 용어를 의도적으로 사용하는 것은 포함된 지적 재산에 대한 권리를 최대한 광범위하게 보호하고 유지하기 위한 것이다(D'hondt et al., 2017; Shalaby et al., 2018; Gomez & Moens, 2014) . 특허 문서에는 전문 용어, 복잡하거나 새로운 기술 단어가 가득하다. 
  • 특허 분류는 더욱 어려운 multi-label classification 문제가 된다. 그 이유는
    • IPC는 수많은 레이블이 있는 복잡한 계층 구조로 구성
    • 이들 카테고리의 특허 분포는 불균형하다.
    • 다중 레이블 분류는 이진 및 다중 클래스 분류 문제와 다르며 배우기가 어렵다.
  • 이러한 진전에도 불구하고 특허 분류를 위해 제안된 딥러닝 모델에는 특허 데이터에 적용하면 성능이 그다지 만족스럽지 니다. 이러한 모델은 특허 텍스트의 종속성을 인코딩하고 동일한 의미나 개념을 나타내는 데 사용되는 여러 단어 단위를 이해할 만큼 강력하지 않다.
  • 최근 트랜스포머가 개발된 이후 그 기반의 모델들에는 여러가지다 있다. [BERT (Devlin et al., 2018), XLNet (Yang et al., 2019), RoBERTa (Liu et al., 2019), ELECTRA (Clark et al., 2020), OpenAI GPT-3 Brown et al. (2020)] 그러나 특허 문서에 대한 효용성은 연구된 바 없다.
  • 일부 연구에서는 multilabel 문제를 binary 또는 multiclass 문제로 제한하는데, 이는 특허 분류 문제의 특성과 다르다. 따라서 multilabel 특허 분류 작업을 위해 최신 사전 훈련된 언어 모델을 활용하고 이를 미세 조정할 것이다.
  • 주요 기여
    • (1) Multilabel 특허 분류 문제에 대해 사전 훈련된 언어 모델, 즉 BERT, XLNet, RoBERTa 및 ELECTRA를 미세 조정하고 비교
    • (2) 사전 훈련된 언어 모델을 특허 분류 문제를 위해 제안된 다른 딥러닝 기반 모델과 비교
    • (3) 이전 딥러닝 모델의 경우 분류 성능을 향상시키기 위해 다양한 단어 임베딩을 사용하는 효과를 추가로 조사
    • (4) 다중 라벨 분류 작업에 더 적합한 몇 가지 측정값을 사용하여 실험 결과를 평가

Related works

  • TF-IDF 방식의 단어 임베딩은 문서들 간 용어가 유사해야하며 새로운 단어가 나오면 임베딩 공간에 벡터를 표현할 수 없다. 또한 다의어를 표현할 수 없기 때문에 fast-Text라는 단어 접근 방식을 제안
  • 구글 뉴스 데이터에서 성공한 사례가 있지만 더 나은 단어 임베딩을 위해서는 특허 도메인으로 특화된 단어 표현이 필요
  • Risch와 Krestel(2019)
    : 5M 이상의 특허 문서에 대해 fastText 을 사용하여 단어 임베딩 표현을 훈련했다. 그런 다음 특허 분류 작업을 위해 임베딩을 양방향 GRU 아키텍처에 공급했다. 그러나 그들은 각 특허 문서에 대해 IPC의 subclass 하나만 고려하여 multiclass 분류를 수행했다.
  • Shalabyet al. (2018)
    : 특허 문서와 그 구조를 Fixed Hierarchy Vectors(FHV) 모델로 표현하고 multilabel 분류를 위해 단일 계층 LSTM 아키텍처를 사용했다. 그들은 IPC 분류 계층의 세 가지 수준, 즉 section, class 및  subclass에 대한 실험을 수행했다.
  • Huet al. (2018a)
    : word2vec 단어 임베딩을 사용하고 multilabel 특허 분류를 위한 CNN과 BiLSTM 모델을 결합한 모델을 제안했지만 mechanical 특허만 고려했다. 
  • Li et al. (2018)
    : 단어 임베딩(word2vec)과 CNN(Convolutional Neural Network)을 결합한 딥러닝 알고리즘인 DeepPatent를 제안했다. DeepPatent는 CLEF-IP(Piroi et al., 2011) 경쟁에서 다른 알고리즘을 능가했으며 이전 벤치마크보다 훨씬 큰 새로운 USPTO-2M 데이터 세트에 기여했다. 제목과 초록의 처음 100단어만이 좋은 성과를 거둘 수 있다는 결론을 내렸다. 
  • Abdelgawadet al. (2019)
    : 최신 딥러닝 모델을 적용하고 특허 분류 작업에 대한 다양한 단어 임베딩 및 신경망 최적화의 효과를 조사했다. 그러나 그들은 연구 범위를 single label 분류 작업으로 제한했다..
  • Roudsariet al. (2021)
    : CNN 모델을 사용하여 multilabel 특허 분류에 대한 정적 단어 임베딩과 문맥적 단어 임베딩을 활용하는 효과를 조사했지만 IPC 89개 subclass 라벨만 고려했다.
  • Lee and Hsiang(2019)
    : 미세 조정 접근법을 채택하고 특허 분류 작업을 위해 사전 훈련된 BERT 모델을 사용했다. 그러나 연구 범위는 제한되어 있으며 향후 연구로 인해 CPC 하위 클래스 분류 및 특허 청구항에 더 중점을 두었습니다. 이는 특허 청구 생성의 후속 작업이었다.

Pre-trained laguage models

Fig. 1 An overview of RTD in ELECTRA (Clark et al., 2020)

(skip)

Multi‑label patent classification

$n$개의 특허 문서 $P=\{p_1, p_2, ...,p_n\}$라고 할 때 각 문서는 $k$ 개의 단어 또는 토큰으로 구성된다 $p_i=(c_1, c_2,...,c_k)$ 특허 문서 $p_i \in P$는 여러 레이블 $l_j \in L$에 할당될 수 있다. 여기서 $L =\{l_1,..., l_m\}$은 $m$ 레이블의 집합이고 특허 문서 p의 label은 $label(p)=\{l_x,..., l_z\}$이다. 이 연구에서는 IPC의 subclass 수준만 고려한다. 학습하려는 함수는 $f:P \rightarrow 2^m$이며 정확한 라벨의 집합이다.

Fig. 2 Preview of finue-tuning process using pre-trained language models

 사전 훈련된 언어 모델을 사용하고 multilabel 특허 분류 문제의 downstream 작업을 위해 이를 미세 조정했다. 사전 훈련된 BERT, RoBERTa, XLNet 및 ELECTRA 언어 모델을 활용합니다. 특허 분류를 위해 크기가 m(라벨 개수)인 선형 레이어가  모델 위에 추가한다. Fig 2는 미세 조정 개요를 보여준다.

 텍스트 전처리 단계에서 BERT와 ELECTRA는 WordPiece(Wu et al., 2010; Schuster & Nakajima, 2012)를 RoBERTa는 BPE(Byte-Pair Encoding)(Sennrich et al., 2015)를 사용하고 XLNet은 텍스트 토큰화 및 모델 어휘 구성을 위해 Unigram 또는 BPE 방법과 결합된 SentencePiece(Kudo & Richardson, 2018)를 사용한다.

 각 특허 텍스트와 관련된 IPC 하위 클래스 라벨이 인코딩됩니다. m개의 고유 레이블이 주어지면 각 문서는 레이블 수와 동일한 위치에 할당된다. $l_i \in \{0, 1\}^m$ 형태의 binary에서 $i$번째 문서가 $j$번째 레이블에 속하면 $l_{ij} = 1$이고 그렇지 않으면 $l_{ij} = 0$이다.

  사전 훈련된 각 언어 모델의 hidden state는 $H$이다. [CLS] 토큰이 시작 부분에 삽입되며, 시퀀스 끝에 위치한 XLNet 모델은 제외된다. Fig 2에서 주황색으로 표시된 필수 [CLS] 토큰은 각 특허 문서 $p_i$에 대한 표현으로 사용된다. ($S_i \in \mathbb{R}H$) 훈련해야 하는 분류 계층 가중치는 $W \in \mathbb{R}m \times H$로 표시된다.

 분류기는 binary cross-entropy와 sigmoid 함수를 이용한다. 

Experiment

Dataset

USPTO-2M

https://www.uspto.gov/learning-and-resources/bulk-data-products

 

Bulk Data Products

EIPD Bulk Data Products Landing Page.

www.uspto.gov

Table 1 Description of USPTO-2M

  • 제목, 서론, 특허번호, IPC subclass 수집
  • 다운 받은 결과 1,739개의 데이터가 라벨이 없어서 1,719개의 데이터를 라벨을 교체
  • 100개 이하의 문서가 있는 라벨은 제거
  • 10개 이하의 단어만 있는 문서 제거
  • 총 544개의 IPC subclass 수준에서 분류

M-patent

Subset of the CLEF-IP 2011(Piroi et al., 2011) dataset

Table 2 Description of M-patent

  • 1.35M 개의 영어, 불어, 독어로 이루어진 CLEF-IP데이터의 subset
  • 제목, 서론, 설명, 청구항으로 구성된 영어 특허의 F 카테고리에서 IPC를 수집
  • 불필요한 문서를 제거하고 69,522개의 데이터를 이용

Evaluation measures

 Multi-label 분류에서 하나 이상의 label이 동시에 할당될 수 있다. 그런데 특허 문서의 IPC의 분포는 불균형을 이루고 있다.

 Multi-label 평가 지표는 크게 label-basedexample-based로 나뉜다. (Multi-label Classification 평가지표: Example-based vs Label-based Evaluation (tistory.com)) Example-based는 각 example에 대해 계산 후 example 수로 평균 내는 것이고 label-based는 각 label에 대해 계산 후 평균을 내는 것이다. 평균을 내는 방식은 크게 macromicro가 있다. Macro-averaging label 별로 평가 지표를 계산 후 label 수로 평균을 내는 것이다. Micro-averaging은 각 라벨의 결과들을 합쳐서 평균을 낸다. 이 방식은 데이터 불균형을 그대로 반영하기 때문에 불균형 데이터에서는 micro-F1을 주로 사용한다.

$$ \texttt{Micro Precision} = \frac{\sum^m_{i=1}TP_i}{\sum^m_{i=1}TP_i+\sum^m_{i=1}FP_i} $$

$$ \texttt{Micro Recall} = \frac{\sum^m_{i=1}TP_i}{\sum^m_{i=1}TP_i+\sum^m_{i=1}FN_i} $$

$$ \texttt{Micro F1} = \frac{2 \times \texttt{Micro Precision} \times \texttt{Micro Recall}}{\texttt{Micro Precision} + \texttt{Micro Recall}} $$

또한 ranking-based 측정도 두 가지 (Coverage Error, Label Ranking Average Precision(LRAP)) 고려했다

3.3. Metrics and scoring: quantifying the quality of predictions — scikit-learn 1.3.0 documentation

 

3.3. Metrics and scoring: quantifying the quality of predictions

There are 3 different APIs for evaluating the quality of a model’s predictions: Estimator score method: Estimators have a score method providing a default evaluation criterion for the problem they ...

scikit-learn.org

Coverage Error는 모든 실제 레이블을 포함하기 위해 순위가 매겨 져야하는 거리로 가장 좋은 값은 example 당 y_true 의 평균 레이블 수와 같다 .

수식은 $rank_{ij}=|\{g:\hat{l}_{ig} \geq \hat{l}_{ij} \} |$ 일 때 아래와 같다.

$$\texttt{Coverage Error} = \frac{1}{n}\sum_{i=1}^{n}\max_{j:l_{ij}=1} rank_{ij}$$

import numpy as np
from sklearn.metrics import coverage_error
y_true = np.array([[1, 0, 0], [0, 0, 1]])
y_score = np.array([[0.75, 0.5, 1], [1, 0.2, 0.1]])
coverage_error(y_true, y_score)

https://www.geeksforgeeks.org/ml-multilabel-ranking-metrics-coverage-error/

 

ML | MultiLabel Ranking Metrics - Coverage Error - GeeksforGeeks

A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.

www.geeksforgeeks.org

첫 example은 모든 y_true를 얻기 위해 rank 2까지 y_score를 봐야하고 두 번째 example은 rank 3까지 봐야하므로 값은 2.5이다.

LRAP은 잘못 정렬 된 레이블 쌍의 평균 수이며 값은 0에서 1사이이며 1에 가까울수록 좋다. $L_{ij} = \{g:l_{ig}=1,\hat{l}_{ig} \geq \hat{l}_{ij}\}$ 일 때 아래와 같다.

$$LRAP=\frac{1}{n}\sum^{n}_{i=1}\frac{1}{||l_i||_0}\sum_{j:l_{ij}=1}\frac{|L_{ij}|}{rank_{ij}}$$

https://www.geeksforgeeks.org/multilabel-ranking-metrics-label-ranking-average-precision-ml/

 

Multilabel Ranking Metrics-Label Ranking Average Precision | ML - GeeksforGeeks

A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.

www.geeksforgeeks.org

 몇 이전 작업들은 CLEF-IP에서 사용된 평가지표를 사용한다. 우선 각 문서의 label 수인 $k$를 예측한다. 이후 precision, recall 및 F1 을 계산한다. 해당 연구에서는 top-1 대해서만 계산했다.

Baselines and experiment setup

Li et al. (2018)은 제목과 초록의 처음 100단어가 분류 성능이 가장 좋았다고 결론내렸다. DeepPatent 모델과 직접적인 비교를 위해 USPTO-2M 데이터에 대해서 처음 100단어만 사용한다. 

Fig. 3 Number of words statistics of the datasets

 M-patent 데이터셋의 경우 Fig. 3에서 보여지는 것과 같이 제목과 서론의 95%가 128단어보다 적다. 따라서 최대 128단어까지만 사용하며 80/20으로 데이터를 나누었다. 

Baseline 모델과 사용된 언어 모델

  • DeepPatent
    • 유사하게 CNN 아키텍처를 사용하여 200차원의 skip-gram 기반의 단어 임베딩을 학습
    • 세 종류의 kernel 크기의 (3~5) convolution layer 사용하며 각 층 출력에 max-pooling 을 적용
    • 최종 층은 fully connected layer를 사용하여 label 수만큼의 출력과 sigmoid를 활성화 함수로 적용
    • 200차원의 CBOW와 fastText도 적용하여 확인
  • LSTM
    • Single layer에 128 unit의 LSTM 적용
  • BiLSTM
    • 위와 동일
  • CNN-BiLSTM
    • Kernel 크기 3의 convolution layer, ReLU 활성화 함수와 128 unit
    • Global max-pooling 연산이 입력 feature 벡터를 얻기 위해 사용
    • 출력은 dropout 적용 후 fully connected layer에 적용
  • 모든 모델에 대해
    • Adam optimizer, binary cross-entropy 손실함수 적용
    • 임베딩 layer와 fully connected layer 입력 전에 dropout 적용 수치는 각각 0.2, 0.25
    • DeepPatent : USPTO-2M 50 epochs, M-patent 40 epochs 
  • Word embedding pre-training
    • Window size 5, 200 차원의 단어 임베딩의 skip-gram, CBOW 및 fastText 사용
    • 알파벳이 아닌 글자, 구두점, stop words, 소문자 변환, lemmatization, 및 다중 공백을 단일 공백으로 하는 전처리 수행
  • Fine-tuning pre-trained language models

Table 3 Pre-trained models name and details
Table 4 Hyperparameter setting for fine-tuning various pre- trained models

  • 원본 논문의 설정을 그대로 따르려 했으며 M-patent의 경우 15 epochs에 early stopping patience level 3으로 설정
  • 180GB RAM operating machine with Intel(R) Xeon(R) Gold 5120 CPU @ 2.20GHz, 16 cores and two Tesla V100 GPUs with 16 GB of RAM

Experimental results and discussion

 

Table 5 Experiments on M-patent dataset

사전 학습된 언어모델이 Top-1 예측에 좋은 성능을 보여준다. XLNet이 micro-F1과 LRAP을 포함하여 가장 좋은 성능을 보여준다. Baseline 모델에서는 CBOW가 적용된 모델을 제외하고 DeepPatent, CNN-BiLSTM순으로 좋으며 LSTM이 가장 저조한 성능을 보여주었다. LSTM 계열은 높은 precision에 비해 낮은 recall 값을 보여주었다. 

Fig. 4 Performance of the pre-trained language models on M-patent evaluation dataset

과적합 방지를 위해 early stopping을 적용하여 11epochs 넘게 학습된 모델은 없다. Fig. 4(c)에서 XLNet이 가장 학습시간이 길게 소요되었다.

Table 6 Experiments on the USPTO-2M dataset

Table 6은 USPTO-2M에 대한 실험결과이며, baseline인 DeepPatent의 경우 word2vec을 사용하는 것보다 학습된 fastText를 사용하는 것이 더 좋은 성능을 보여준다. 모든 PLM은 DeepPatent를 모든 평가지표에서 우위에 있다. XLNet의 경우 SOTA를 달성했다. 

 Table 5, 6에서 사용된 Micro metrics는 threshold 0.5를 기준으로 높으면 1 낮으면 0으로 하여 계산한 결과이다. 하지만 대부분 특허관련 작업의 경우 recall이 중요하게 고려된다.

Fig. 5 Comparison of various threshold values for XLNet model on USPTO-2M dataset
Fig. 6 Comparison of various threshold values for XLNet on M-patent

Fig. 5, 6은 XLNet이 각 데이터에 대해 threshold에 따라 Micro 값이 어떻게 변하는지를 보여준다.  (ROC curve를 그리면 명확해질 것) 

추가적으로 M-Patent의 description을 추가한 처음 128 단어를 입력으로 넣어 준 경우 micro F1 향상은 없었다.

Fig. 7 Performance comparison of the models using different sections of the patent on the M-patent dataset

 Fig. 7에서 확인할 수 있듯이 Title+abstract만 입력하는 것이 특허 분류에 더 좋은 성능을 보여준다. 

 전체 baseline 모델에 대해 FastText가 out-of-vocabulary에 대해 강점이 있어 좋은 성능을 보여주었지만, 결과적으로 사전 학습된 언어모델이 다의어와 out-of-vocabulary에 강점이 있다. 

 XLNet의 경우 다른 모델과 달리 autoregressive의 장점을 갖고있으며, 순열 언어 모델링의 경우 더 많은 종속성과 구문 구조를 파앍할 수 있기 때문에 분류 작업에 강점이 있다. 다만 XLNet의 경우 더 많은 학습 시간이 소요된다는 단점이 있다.

2020년에 구글에서는 patent for BERT라는 모델을 공개하였으나 이 논문에서는 연산량 때문에 고려할 수 없었다.