최신 연구동향 정보를 제공하기 위해 생명과학관련 정보제공자를 모집합니다.
Bio리포트 동향리포트
단백질 시퀀스 정보를 벡터로 변환하는 방법(임베딩)에 대한 소개와 연구 동향
오세진(테라젠바이오)
목 차
1. 서론
2. 본론
2.1. 아미노산 인코딩
2.1.1. 아미노산 인코딩에 대한 소개
2.1.2. 기정의 된 방식의 인코딩
2.1.3. 이진 인코딩(binary encoding)
2.1.4. 물리화학 기반 인코딩(physio-chemical property based encoding)
2.1.5. 진화적 특징 기반 인코딩(evolutionary property based encoding)
2.1.6. 구조 기반 인코딩(structural property based encoding)
2.1.7. 조성-치환-분포(Composition-transition-distribution based encoding)
2.2. 기계학습 방식의 임베딩(Machine learning based embedding)
2.2.1. 언어 모델을 통한 단백질 서열 임베딩(NLP-based protein sequence embedding)
2.2.2. NLP기반 단백질 서열 임베딩의 기술 동향
2.2.3. 훈련 데이터 및 평가 데이터
3. 결론
4. 참고문헌
1. 서론
센트럴 도그마(Central dogma)는 DNA, RNA 그리고 단백질로 이어지는 정보전달을 일컫는 개념으로 분자생물학 연구의 근본이다. 따라서, 연구자들은 DNA 서열로 이루어진 유전체를 연구하는 것이 생명현상을 이해하고 질환을 치료하는데 주요한 접근법이라 생각했다. 이러한 합의를 바탕으로 인간게놈프로젝트(Human genome project)가 시작됐으며 대규모 염기 서열 데이터를 처리하기 위한 서열 정렬(alignment) 및 돌연변이 예측(variant effect prediction) 등의 알고리즘 개발이 활발하게 진행됐다. 또한, CRISPR-Cas9 발견과 mRNA백신에 이르기까지 염기서열 중심의 분자생물학 연구가 지난 20여 년에 걸쳐 현재에 이르기까지 진행 중이다. 하지만, 이러한 연구결과들은 DNA나 RNA에 대한 이해를 넓혔지만 단백질에는 최적화가 덜되어 있었기에 단백질에 대한 이해 및 응용에는 제한적일 수밖에 없었다.
다양한 기능들이 있지만 DNA와 RNA의 주요한 역할은 정보의 저장과 전달인 반면 단백질은 세포 내에서 실질적인 기능을 수행한다. 단백질 구조는 4종류의 구조로 분류되며 단순한 아미노산 서열의 나열인 1차 선형 구조(Primary structure)에서 시작해 3차 구조(Tertiary structure) 또는 단백질 복합체인 4차 구조(Quaternary structure)를 형성한다. 그리고, 단백질의 3차와 4차 구조가 기능을 결정한다. 따라서, 단백질의 서열로부터 형태와 기능을 예측하고 더 나아가 설계를 하는 것은 생명공학과 단백질 기반 신약 개발에 있어서 중요한 문제이다. 특히나, 단백질은 4가지인 염기서열 (A, T/U, G, C)에 비해 종류가 정규 아미노산만 20가지로 훨씬 다양하고 물리화학적(physicochemical) 특징이 더 많아 서열 분석의 난이도가 높다. 하지만, 수십 년간 서열분석을 위한 알고리즘은 DNA/RNA 염기서열 분석법과 큰 차이가 없었으며 1990년에 개발된 BLAST와 같은 서열 유사도(sequence similarity)에 기반한 고전적인 알고리즘과 통계들이 주류를 차지하고 있었다 [1].
최근 몇 년간 단백질 서열에서 구조, 상호작용, 분류, 기능 예측 및 설계에 있어서 주목할 만한 연구 결과들이 보고되었다 [2–4]. 이러한 성과는 1) 컴퓨터 하드웨어 및 알고리즘의 발달, 2) 훈련 데이터량의 증가 그리고 3) 단백질의 특징을 표현하는 아미노산 인코딩과 단백질 임베딩(protein embedding) 기법의 향상에 기인한다.
인코딩과 임베딩이란 컴퓨터가 사물을 이해할 수 있도록 특징들을 수치적 벡터 값으로 변환하는 작업을 말한다. 적절한 인코딩과 임베딩에 따른 모델의 성능 차이는 인간이 수학의 개념을 이해할 때 사용하는 기호인 힌두/아라비아 숫자 체계(Hindu-Arabic numerals)로 예시를 들 수 있다. 숫자 표기 방식은 지역과 시대 별로 다양했지만 현재는 힌두/아라비아 숫자가 장악을 했다. 그 이유는 다른 어떤 숫자 표기법보다 글자가 간단하고 10개의 기호들만으로 진법이나 자릿수와 같은 수학적 개념들을 표현하기 용이한 점이었다. 이러한 특징들을 통해 사칙연산의 난이도가 하락했고 이를 통해 수학의 발전을 가속화시켰다. 마찬가지로, 적절한 인코딩과 임베딩은 표현하고자 하는 대상의 특징을 유한한 벡터 안에 효과적으로 담아내고 모델의 업무 성능을 개선할 수 있어야 한다 (그림 1). 이번 동향리포트에서는 아미노산 인코딩과 범용적인 단백질 서열 임베딩을 위한 모델들의 동향 및 훈련-평가 데이터를 소개하고자 한다.
2. 본론
2.1. 아미노산 인코딩
2.1.1. 아미노산 인코딩에 대한 소개
아미노산을 기계가 독해 가능한(machine-readable) 형태로 표현하는 것은 컴퓨터를 활용한 단백질 구조와 기능 예측의 첫 번째 단계이고 이는 성능에 지대한 영향을 미친다 [5]. 아미노산들은 대개 20가지로 표현되며 길이가 L인 단백질로 변환될 시에는 일부 예외를 제외하고 20 x L 벡터로 표현이 된다. 단백질들을 구성하는 아미노산 서열을 디지털화하는 방식은 기정의 된 방식(pre-defined 또는 hand-crafted)과 기계학습 방식(machine-learning based 또는 protein sequence embedding)으로 구성된다. 기정의 된 방식은 연구자들이 밝혀낸 아미노산들의 다양한 특징들을 이용해 인코딩하는 기법이다. 반면, 기계학습 방식은 모델이 단백질 서열들을 스스로 학습해서 아미노산의 특징을 파악하는 것이다. 먼저, 기정의 된 방식 인코딩을 이야기한 후 단백질 임베딩을 다음 문단에서 다루겠다.
2.1.2. 기정의 된 방식의 인코딩
단백질의 아미노산들은 다양한 특징들을 갖는다. 물리화학적으로 아미노산들은 양전하(positive)와 음전하(negative)그리고 중성 여부 및 친수성(hydrophobic)과 비수성(hydrophilic)등으로 인해 분류체계에 따라 4 ~ 7개로 나뉘며 특징이 다른 것들은 그렇지 않은 것들에 비해 잘 대체되지 않는 특징이 나타난다. 그리하여 특정 서열의 모티프(motif)는 여러 종에 걸쳐 보존되기도 하며 비슷한 기능을 갖는 인산화 효소(kinase) 같은 단백질들 간에 유사한 서열이 나타나기도 한다. 그리고, 자석의 같은 극(N-N 또는 S-S)은 서로를 밀어내지만 반대인 N-S의 경우는 서로 당기듯이 단백질 접힘(protein folding)이 일어날 때 선호하는 조합이 생긴다. 이러한 특징들을 연구자들이 찾아내어 아미노산들을 인코딩하는 것이 기정의 방식이다. 이러한 기정의 인코딩 방식에는 크게 1) 이진 인코딩(binary encoding), 2) 물리화학적 특징(physio-chemical), 3) 진화적 특징(evolutionary), 4) 구조 기반(structural) 방식 마지막으로 5) 조성-치환-분포(composition-transition-distribution, CTD) 방식 등으로 나뉜다 [6]. 기정의 방식의 상세한 리뷰 및 비교는 Jing의 논문 [6]에서 확인할 수 있다.
2.1.3 이진 인코딩(binary encoding)
이진 인코딩은 원-핫 인코딩(one-hot encoding)으로도 불리는 간단하고 직관적인 방법이다. 방법은 단백질 서열 길이 (L)만큼의 20 x L 행렬을 생성하고 단백질의 N-말단에서 C-말단으로 아미노산을 읽으면서 아미노산이 있을 때는 해당 아미노산에는 1을 주는 식으로 채워 나가는 방법이다. 이것은 인코딩에 있어서 가장 기본이 되고 사전 지식(prior knowledge)이 필요 없다는 특징이 있다. 하지만, 정보량이 너무 없는 희소한(sparse) 형태의 벡터가 생성된다는 점이 문제이다. 일반적으로 희소 데이터는 기계학습 모델을 만들 때 메모리 사용이 비효율적이며 성능이 떨어지는 것이 알려져 있다 [7]. 또한, 비슷한 특징을 갖는 아미노산들도 완전히 다른 성질로 취급 받게 된다. 예를 들어 양전하(positive charge)를 띠는 Lysine과 Arginine 그리고 비극성(non-polar)인 Proline 간에는 모두 벡터상 거리가 1로 같다 [7]. 따라서, 이 방법은 대게 그 자체로 쓰이기보다는 뒤에 설명할 물리화학, 진화, 구조 기반 행렬 값 등을 보정해서 사용하게 된다.
2.1.4 물리화학 기반 인코딩(physio-chemical property based encoding)
아미노산들은 카복실기(-COOH)와 아미노기(-NH2) 그리고 작용기(side-chain)로 구조는 비슷하지만 작용기에 의해 특징이 달라진다. 다양한 아미노산의 특징들 중 비수성(hydrophobicity)은 수용액 내에서 단백질의 접힘과 상호작용이 일어날 때 가장 중요한 요소로 여겨진다. 이외에도 전하(charge)와 분자량(molecular weight) 등이 중요하며 500여 가지가 넘는 물리화학적 특징들이 알려져 있다 [8]. 하지만, 수 백가지가 넘는 특징들 간에는 다중공선성(Multicollinearity)이 높은 관계들 있는 문제가 있다. 예를 들어 전하를 갖는 여부와 비수성은 서로 관계가 있는 변수들이다. 이러한 변수들은 서로가 독립적인 성질을 대변해서 정보량을 유의미하게 증가시킬 가능성이 적다. 따라서, 일반적으로 주성분 분석 (Principal component analysis, PCA)와 같은 방식으로 차원을 축소해 다중공선성을 줄여준 후 아미노산을 인코딩을 한다. 이를 통해 모델의 불필요한 복잡도를 줄이는 한편 과적합(overfitting)되는 문제를 경감시킨다 [9].
2.1.5. 진화적 특징 기반 인코딩(evolutionary property based encoding)
때때로 종(species)이 다르더라도 아미노산 서열이 비슷한 단백질들이 존재하며 질환이 발생할 때 KRAS의 12번째 Glycine (G)이 Aspartic Acid (D)로 BRAF의 600번째 Valine이 Glutamic Acid (E) 등 특정한 아미노산으로의 치환(transition)이 선호되는 경우가 있다 [10]. 이러한 아미노산 간의 치환 확률은 서열 정렬(alignment) 또는 계통분석(phylogenetic tree)을 통해 구하여 인코딩을 하는 것이 진화적 특징 기반 인코딩이다. 대표적으로 BLOSUM (BLOcks SUbstitution Matrix)이 있다. 이것은 갭이 없는 단백질 서열 간의 비교를 통해 계산되며 62%의 서열 유사도를 가진 단백질들에서 계산된 BLOSUM62가 일반적으로 가장 성능이 좋다고 알려져 있다 [11]. 유사한 개념을 공유하는 PAM (point accepted mutation)은 BLOSUM보다 성능이 떨어지는 것으로 알려져 있다. 이외에 PSSM (position specific scoring matrix)이 활용되고는 있지만 컴퓨터 자원의 소모가 큰 단점이 있으며 [12] 모델을 만들 때 활용되기보단 주로 서열의 변화나 모티프 분석 등을 할 때 쓰인다.
2.1.6. 구조 기반 인코딩(structural property based encoding)
아미노산은 수소결합, 공유결합, 반데르발스 결합(van der Waals force) 등 다양한 결합을 사용하여 단백질의 구조를 형성한다. 이러한 결합에는 아미노산의 작용기(side chain)의 특징에 따라 주요하게 작용되는 결합이 달라지게 된다. 이러한 아미노산들 간의 상호작용 패턴을 단백질 구조 데이터를 분석하여 특징을 추출하여 활용하는 것이 구조 기반 인코딩이다. 1985년 Miyazawa가 제안했던 Quasi-chemical-method는 통계적인 접근법을 통해 기댓값 대비 아미노산 쌍(two-body interaction, 예: valine-tyrosine)에서 일어나는 결합 수를 측정하여 친화력(attraction)과 반발력(repulsion)을 산출했다. 이 방식의 방법들은 단백질들마다 세부적인 서열정보는 다르더라도 작용기-작용기(residue-residue) 간의 상호작용의 전반적인 특징은 보존되며 이러한 특징들이 모여 구조를 결정한다는 것을 가정한다 [13]. 간단한 접근법으로도 대략적인 아미노산들의 상호작용을 모사할 수 있다는 것을 증명한 이래, 잔기들의 특성을 좀 더 고려한 4-잔기 접촉력(four-body contact) 방식이 제시됐다 [14]. 하지만, 이러한 접근법들은 아미노산의 서열 맥락(sequence context)이 무시된 한계가 있었기 때문에 단백질의 2차 구조(alpha-helix, beta-sheet 그리고 loop)까지 고려한 방식이 제시됐다 [13]. 최근에는 알려진 구조 또는 Alphafold나 RosettaFold로 예측된 단백질 구조에서 아미노산들 간의 상호작용을 네트워크로 인코딩하는 것도 활용되고 있다.
2.1.7. 조성-치환-분포(Composition-transition-distribution based encoding)
앞서 설명된 다수의 방식들은 개별 아미노산을 어떻게 인코딩을 할지에 대한 문제로 단백질 서열을 인코딩하게 됐을 때 N개의 특징(feature)으로 아미노산이 표현된 N x L 행렬이 나오게 된다. 기계학습은 고정된 입력 벡터를 받아야 하기 때문에 이것은 길이가 다른 단백질들을 학습을 할 때 문제가 생기게 된다. 예를 들어, T세포 면역반응에서 중요한 MHC-class 1 단백질 아형 중 하나인 HLA-B*57:01는 달라붙는 펩타이드 서열은 길이가 8 mer에서 12 mer에 이른다. 이 경우, 해당 펩타이드들을 원-핫 인코딩 시에 20 x (8, 9, 10, 11, 12)로 총 5가지의 행렬이 나오게 된다. 즉, 펩타이드에서 아미노산 몇 개가 추가되고 빠짐에 따라 서열 길이가 달라져서 기계는 완전히 다른 형태로 인식을 하게 되는 것이다. 하지만, 아래 그림과 같이 펩타이드 서열 내 2번째 위치 (P2)와 C-terminal (P-omega)은 서열이 보존된 특징이 있는 것을 확인할 수 있다.
입력 행렬이 달라져서 생기는 문제를 해결하는 방법으로는 1) 펩타이드 길이 별로 개별적인 모델을 만드는 방법과 2) 길이가 부족한 만큼 0을 넣는 패딩(padding)을 하여서 해결하는 방식이 주로 사용되고 있다. 하지만, 이런 경우 개별 모델 별로 학습 데이터가 나뉘면서 학습량이 적어지는 문제가 생기며 패딩을 넣는 방법에 따라 모델 성능이 달라지는 문제가 생긴다. 또한 사용하는 최대 길이에 따라 0이 많아지는 희소 행렬을 입력으로 사용할 수밖에 없다 [15–17].
이런 문제를 해결하기 위해 사용되는 방식 중 하나는 아미노산의 조성(composition)을 보는 것이다. 단일(amino acid composition, AAC), 이중 아미노산(di-peptide, DP) 및 삼중 아미노산 (tri-peptide, TP) 조성을 확인하여 서열을 인코딩하는 것으로 각각 차원이 20, 400 (202), 그리고 8000 (203)의 행렬로 만든다. 서열이 비교적 짧은 경우에는 AAC가 나을 경우가 있지만 대게 DP를 많이 쓰며 TP의 경우는 그 특징상 대단히 희소한 행렬이 만들어지고 성능이 떨어져서 잘 사용되진 않는다 [18].
조성에 초점을 맞추는 경우, 아미노산들의 유사한 특징이 소실되며 희소 형태의 데이터가 생기기 쉬운 점이 있다. 이러한 점을 개선하고자, 아미노산의 물리화학적 특징에 따라 그룹을 나누어 치환되는 횟수로 인코딩하는 방식도 있다. 이 방식의 가정은 물리화학적으로 유사한 아미노산들은 유사한 기능을 할 것이고 치환되어도 큰 영향을 안 끼칠 것에 전제를 둔다. 이러한 방식으로는 Conjoint triad [19]과 Matrix of Sequence [20] 등이 있다. 두 방식은 아미노산의 종류를 7가지로 나눈 후 어떤 형태로 치환됐는지를 산출하며 각각 343과 49차원으로 서열을 인코딩한다.
앞의 조성과 치환의 단점은 서열 위치 정보가 다소 소실되는 문제가 있다. 예를 들어 DP 인코딩의 경우 ‘AACAPA’와 ‘APAACA’는 모두 같은 벡터로 인코딩이 된다. 따라서, 단백질 서열 내 아미노산의 위치 정보 소실을 막고자 Dubchak에 의해 분포(distribution)가 추가된 조성-치환-분포(CTD) 방식이 만들어졌다 [21]. 이 계열의 방식들은 공통적으로 먼저 아미노산 또는 화학그룹의 조성을 넣고 중간에는 화학그룹 간의 치환된 정보를 넣으며 마지막에는 서열을 균등하게 구간을 나눠(예: 0-0.25, 0.25-0.5, 0.5-0.75, 0.75-1) 화학그룹이 각 구간 별로 얼마만큼 분포하는지를 나타낸다. 이러한 방식을 통해 단백질 서열을 고정된 벡터로 나타내면서 동시에 서열 정보를 어느 정도 유지할 수 있게 됐다 [22].
2.2. 기계학습 방식의 임베딩(Machine learning based embedding)
앞에 소개된 기정의 된 방식의 상당수의 인코딩 기법들은 단백질 서열 내의 위치에 따른 맥락을 반영하는데 제한적이다. 예를 들어 원-핫 인코딩에서 Alanine을 (1,0,...,0)으로 1과 19개의 0으로 표현했다면 Alanine이 단백질 내에 어디에 존재하던지 모두 동일하게 (1,0,...,0)이라는 벡터로 들어가게 된다. 물론, 여러 가지 특징이 고려된 고정화된 벡터를 활용한 인코딩들은 모델의 학습을 도와서 비교적 짧은 학습시간(예: epoch)에 목표 성능을 달성하게 해줄 수도 있지만, 대상으로 하는 펩타이드의 길이에 따라서 모델이 학습한 후 중요하게 보는 특징들은 다를 수 있다. 예를 들어, 단백질의 분자량이나 변성 온도(melting temperature) 등을 유추하는 문제라면 아미노산의 조성만으로도 어느 정도 예측이 가능할 것이다. 하지만, 단백질이 인산화 효소(kinase)인지 아닌지를 판단하는 모델을 만든다면 ATP 결합 부위(ATP-binding pocket)에 관련된 모티프(motif)를 인식할 수 있어야 할 것이다. 또한, 계통분석(phylogenetic analysis)을 한다면 CTD보단 BLOSUM62나 PAM을 이용하는 것이 나을 것이다. 이와 같이, 업무(task)와 펩타이드의 길이에 따라 학습에 요구되는 특징이 달라 어느 하나가 더 좋다고 말을 할 수 없다. 다른 문제는 맥락과 상관없이 고정된 인코딩 (frozen encoding)은 동일한 차원으로 무작위 벡터값을 준 것과 큰 차이가 없으며 심지어 단순히 인코딩 차원 (space)만 늘리면 성능이 좋다는 것이다 [5]. 이러한 점은 기정의 방식 인코딩이 모델에 유용한 아미노산에 대한 정보를 주는지 의문을 주는 요소이다.
생명과학 도메인에서는 인코딩과 임베딩은 혼용돼서 사용되는 용어들이다. 하지만, 엄밀하게 임베딩은 의미(semantics)를 담아서 디지털화를 의미하는 것으로 인코딩의 세부개념에 해당한다. 여기서, ‘의미’란 특정한 문장이나 상황 속에서의 단어의 뜻을 말한다. 예를 들면, 우리는 상황에 따라 엄마, 어머니, 어머님 등 동일한 대상에 대해 다른 표현을 사용한다. 또는 동물의 ‘다리’와 건축물 ‘다리’처럼 동일한 발음과 글자를 가지지만 맥락(context)에 따라 뜻이 다른 용어도 존재한다. 이와 같이, 겉보기에는 다른 서열이지만 단백질의 구조와 기능에선 유사한 의미가 있을 수 있고 그 반대도 마찬가지이다. 이와 같이, 전체적인 맥락을 파악해서 특징의 의미를 담아내는 인코딩을 임베딩이라고 한다. 그리고, 준지도 학습(semi-supervised)을 통해 나온 기계학습 기반 서열 임베딩 결과물들은 앞의 기정의 방식보다 성능에서 유의미하게 압도적으로 좋은 것이 밝혀졌다 [1-21].
2.2.1. 언어 모델을 통한 단백질 서열 임베딩(NLP-based protein sequence embedding)
단백질 서열 임베딩 모델들은 사전학습 모델(pre-trained model)이라는 특징이 있다. 이 모델들은 대규모의 단백질 서열들로부터 아미노산 배열의 규칙을 학습하므로 구조와 기능과 관련된 전반적인 특징들도 함께 알게 된다. 이런 모델을 활용할 경우, 상대적으로 적은 데이터로 학습해야 하는 후속 업무 모델(downstream model)들의 성능을 유의미하게 향상시킬 수 있는 장점이 있다 [23].
임베딩을 할 수 있는 기법은 모델과 업무에 따라 매우 다양하다. 이 중, NLP 기반의 모델의 장점은 연구자의 선행 지식이 크게 필요하지 않다는 점에 있다. 예를 들어, 다중서열정렬(Multiple sequence alignment, MSA)나 그래프 임베딩(Graph embedding)은 특징이 잘 규명된 단백질 구조정보가 필요하다. 반면, NLP는 단백질 서열만 필요하기 때문에 비교적 만들기 쉬우며 데이터량도 풍부하다. 이러한 장점으로 NLP는 범용적으로 쓰이기 쉬우며 다른 모델들과도 붙여쓰기에 용이하다.
2.2.2. NLP기반 단백질 서열 임베딩의 기술 동향
단백질 서열은 인간의 언어는 몇 가지 유사한 점이 있다. 먼저, 인간의 언어처럼 20개의 알파벳으로 대부분의 단백질들이 표현된다. 또한, 비슷한 기능을 가진 단백질들은 비슷한 서열을 공유한다. 예를 들어 인산화 효소의 ATP-binding pocket의 DFG motif나 핵으로 이동하는 단백질들에서 나타나는 NLS (nuclear localization sequence) 등 인간의 단어처럼 특정한 뜻을 가진 부분이 존재한다. 그리고, 단백질의 1차 구조는 N-to-C로 순차성 이 존재한다. 따라서, 놀라운 속도로 발전 중인 딥러닝(Deep learning) 분야의 NLP를 단백질 서열 분석에 적용하게 된 것은 자연스러운 일이다 [24].
단백질 서열 임베딩을 NLP로 한 역사는 현재 2022년 기준으로 10년 미만일 정도로 매우 짧다. 가장 초기의 모델은 2015년 Asgari가 만든 ProtVec으로 Word2Vec의 한 종류인 skip-gram방식으로 단백질 서열을 훈련한 임베딩 방식이다 [25]. 이 방식은 단백질 서열을 3-gram 방식으로 분해한 후에 주어진 3-아미노산 토큰(예: AAA)을 보고 나서 주변의 아미노산 토큰들을 맞추는 문제를 푸는 것이었다. 이 방식은 비록 통계적인 요소가 강한 기초적인 NLP이었지만 단백질들이 NLP처리를 통해 물리화학적 특징에 따라 분류될 수 있음을 입증했다.
Word2Vec 방식의 단점은 토큰들의 의미가 맥락에 따라 달라지는 것을 표현하는데 제한적이란 것이다. 따라서, 순차적인 데이터를 처리하는데 특화된 RNN (Recurrent neural network) 기반의 다양한 모델들이 나왔다. 전반적으로 RNN은 Word2Vec 방식보다 더 나은 성능을 보여줬으며 [26] 가장 대표적인 모델은 Alley의 UniRep로 RNN의 한 종류 mLSTM (multiplicative long-short term memory)으로 2,400만 개의 단백질 서열을 학습하여 1,900차원의 고정된 벡터로 모든 단백질 서열을 표현할 수 있게 만들었다 [3]. UniRep는 단백질의 계통분류 및 기능 예측, 설계 등의 종합적인 평가에서 ProtVec이나 RGN 등의 모델보다 더 나은 것을 보여줬다.
현재의 딥러닝 분야에서 가장 중요한 Transformer는 RNN이 가지는 단점들을 해결하기 위해 2017년에 제안된 집중(attention) 알고리즘 기반 아키텍처이다. RNN은 거리가 먼 부분의 정보가 소실되는 것과 GPU를 활용한 병렬 처리가 어려운 특징이 있다. 따라서, Transformer는 RNN처럼 순차적인 방식으로 데이터를 처리하지 않고 행렬곱 하나로 모든 문장 내 요소들이 고려되게 설계를 했다. 동시에 집중(attention)을 통해 중요한 부분을 강조하게 만들어 학습의 효율을 높이는 한편 모델의 해석력(interpretability)를 증가시켰다. BERT는 Transformer에 기반한 사전학습 모델로 주어진 문장 내의 단어의 개념과 유사한 토큰(token)을 15% 정도로 무작위로 지운 후(masking) 해당 토큰이 뭐였는지 맞추는 방식으로 훈련한다 (그림 3). 자세한 알고리즘의 설명은 Vaswani [27]와 Devlin [28]에서 확인할 수 있다.
필자가 찾은 논문들 중 BERT 기반 단백질 임베딩 모델이 처음 등장한 것은 Rao의 트랜스포머로 보통 TAPEbert라고 불리는 모델이다 [23]. 해당 논문에서 TAPEbert는 벤치마크 모델들에 비해 형광 세기 및 안정도를 예측하는데 더 좋은 성능을 보여줬다. 이후, 토크나이징 과정을 개선하거나 모델의 아키텍쳐의 개선 혹은 gene ontology를 함께 학습시키는 등 보다 개선된 단백질-BERT 모델들이 나왔다. 이들 모델에서 사용되는 어텐션 기능은 query, key, value들을 output에 연결해주는 것이라 할 수 있다 [29]. 따라서, 이를 활용하면 단백질의 구조와 결합체에서 중요한 아미노산 간의 접촉 지도(contact map)를 유추할 수 있다. 자세한 어텐션 해석 및 단백질 임베딩을 위한 BERT 모델들의 비교는 Vig [30]의 논문을 참고하기 바란다.
2.2.3. 훈련 데이터 및 평가 데이터
단백질 서열을 받을 수 있는 데이터셋은 많지만 좋은 NLP를 만들기 위해선 양질의 단백질 서열이 필요하다. 이를 위해 대다수의 모델들은 Uniprot에서 데이터를 받아 사용하고 있고 크게 2가지 이유가 있다.
첫 번째 이유로, Uniprot의 단백질 서열들은 연구자들이 직접 정리한 존재 신뢰도에 따라 5가지로 분류되고 있다. 예를 들어, Ensembl이나 Pfam은 자체적인 파이프라인으로 단백질 서열을 유추하기 때문에 가상의 단백질이 있을 가능성을 배제할 수 없다. 이것은 실제 자연계의 단백질 서열의 특징과는 다소 다를 가능성이 있다.
두 번째 이유로는 서열 유사도에 따라 단백질 서열들 중에 대표적인 것들을 제공한다는 점이다. 단백질에 따라 isoform의 종류가 매우 많을 수 있고 이는 학습에서 해당 단백질에 대한 편향(bias)이 생길 가능성이 있다. 예를 들어 Uniprot에는 2억 1천5백만 개의 단백질 서열이 등록되어 있는데 이중 1백만 개는 HIV-1 바이러스의 9개 단백질에서 유래한 것이다 [31]. 또한, 아직 제거되지 못한 무작위적 돌연변이들과 시퀀싱 과정의 실수 등이 있을 가능성이 있다 [3]. Uniprot에선 단백질의 서열 유사도에 따라 데이터셋을 UniRef100, UniRef90, 그리고 UniRef50로 나뉘며 숫자가 작아질수록 단백질의 다양성은 감소하지만 대표성이 증가한다. 이러한 장점으로 다수의 논문들은 Uniprot의 UniRef50이나 UniRef90으로 클러스터링 된 것들을 사용한다. 실제로 다양한 모델들에서 서열 정보가 더 많은 BFD나 UniRef100을 훈련 데이터로 쓴 것보다 UniRef50을 쓴 경우가 낫다는 보고가 존재한다 [32]. 훈련 데이터에 관한 벤치마크는 Elnaggar [32]의 논문을 참조하기 바란다.
단백질 NLP 모델 훈련 데이터는 UniRef로 거의 통일되어 있지만, 평가 데이터는 단백질의 기능만큼이나 다양하다. 따라서, 연구자들마다 다를 수 있는 평가 데이터를 모두 소개하는 것은 비효율적이고 불가능하다. 하지만, 임베딩 모델들에 대한 공평한 평가가 필요했고 지금도 널리 쓰이는 평가 데이터 및 방식은 2019년 UniRep [3]와 TAPE [23] 논문에서 제안됐다. 이들 논문에서는 1) 단백질의 구조 예측, 2) 안정성, 3) 기능, 설계, 계통분류 등의 관점에서 진행됐다. TAPE은 UniRep와 달리 좀 더 벤치마크와 데이터셋에 중점을 둔 논문인데 여기에선 잘 쓰이진 않지만 훈련 데이터와 5가지 업무로 나뉜 테스트 데이터들을 제공한다. 각 지도 업무 평가 데이터(supervised task dataset)는 1) 2차 구조 예측, 2) 아미노산 접촉 예측, 3) 진화 계통 분석, 4) 형광단백질 성능 예측, 5) 단백질 안정성 예측으로 나뉘며 크기는 적게는 1만에서 많게는 7만 개의 정답 라벨이 제공된다. 이외에도 단백질의 구조가 밝혀진 데이터를 중심으로 정리된 ProteinNet이 있다 [33]. 하지만, 앞서 설명했듯, 5가지의 업무로는 단백질 임베딩 성능을 모두 평가 하긴 어렵다. 즉, 앞의 데이터들이 정의한 평가들에서 성능이 좋다고 해서 반드시 연구자 개별적인 업무(예. protein-protein interaction, protein-drug interaction 등)에서도 성능이 좋다는 것은 아니므로 세부 목적에 맞는 평가 데이터로 비교하는 과정이 반드시 필요하다.
3. 결론
단백질 서열을 효과적으로 디지털화하여 다양한 업무에 적절한 기계학습 모델을 만들려는 노력은 수 십여 년간 이어져왔다. 처음에는 연구자들에 의해 손수 입력된 행렬들이 인코딩 됐지만 이젠 자연어 처리를 통해 임베딩이 되는 시대에 우리가 살고 있다. 그리고, 준지도 학습이 기정의 방식보다 낫다는 것이 많은 벤치마크로 증명됐다.
하지만, 단백질 서열 임베딩에 언어 모델을 그대로 쓰는 것이 최선일지는 아직 알 수 없다. 그 이유는 단백질은 인간의 언어와 다른 특성들이 있기 때문이다. 예를 들면, 인간의 언어와 달리 단백질 서열은 어떤 아미노산들은 사라져도 큰 문제가 없을 수도 있고 인간의 단어처럼 직접적인 역할을 하는 부위의 범위를 알긴 어렵다. 즉, 단순히 NLP 방식을 사용하게 되면 최선의 결과가 나오지 않을 수도 있는 것이다. 실제로, TAPEbert는 언어적인 평가에선 RNN보다 더 나은 성능을 보였지만 몇 가지 테스트에서 성능이 떨어졌다. 또한, BERT보다 더 성능이 좋다고 알려진 XLNet기반의 모델인 ProtXLNet이 BERT모델들과의 비교에서 전반적으로 괜찮은 성능을 보였지만 Binding site에 대한 집중의 정도가 월등히 떨어진 것으로 보고 됐다 [30]. 이들 논문에선 인간의 언어 평가에서 사용되는 척도(예: Perplexity)에선 최신 NLP 모델이 더 나았지만, 세부 업무에서는 성능이 떨어지기도 했다는 공통점이 있다. 즉, 언어 모델을 단순히 단백질 서열 학습에 이식하는 것 외에 연구자들이 더 해야 하는 영역이 있는 것이다. 이러한 문제를 해결하고자 한 연구 사례로는 ProteinBERT가 있다. ProteinBERT에서 저자들은 단순히 서열을 학습하는 것 외에 단백질의 특징을 기술한 gene ontology를 함께 학습시켰고 단순 NLP 보다 나은 성능을 거뒀다 [31].
딥러닝은 대규모의 고품질 데이터를 요구한다. 단백질 서열은 연구자들의 노력으로 Uniprot에는 2022년 10월 기준 총 2억 5천만여 개의 서열이 존재한다. 하지만, 여기에 존재하는 단백질 서열의 신뢰성에 대해 면밀히 조사한 연구는 찾을 수가 없었다. 즉, 지속적인 업데이트 작업 및 UniRef50 등으로 어느 정도 클리닝을 했지만 노이즈를 줄인 최선인지는 아직은 알 수가 없다. 다른 한편으로는 업무에 관련된 벤치마킹용 데이터의 부족이다. 현재 사용되는 벤치마크 데이터는 주로 하나의 단백질의 특징에 맞춘 것이다. 하지만, 단백질은 혼자만 일하는 것이 아니라 단백질 결합체(protein complex)나 효소-기질 및 단백질-단백질 상호작용 등으로 일을 한다. 아직은 표준화된 벤치마크 데이터셋에서 ‘상호작용’이라는 지표가 빠져 있지만 추후에는 추가되어야 할 요소이다.
이와 같이, 연구자들이 아직은 모델이나 데이터 측면에서 작업을 해야 할 부분이 남아있다. 하지만, 단백질 임베딩 기법은 지난 10년도 안 되는 기간 동안 딥러닝의 발달로 급속한 발전을 이뤘다. 단백질에 중심(protein-centric) 방법론 및 데이터의 확충이 진행되면 더 나은 임베딩 모델이 나올 것이다.
4. 참고문헌
==>첨부파일(PDF) 참조
|
||
본 게시물의 무단 복제 및 배포를 금하며, 일부 내용 인용시 출처를 밝혀야 합니다.
자료열람안내
본 내용은 BRIC에서 추가적인 검증과정을 거친 정보가 아님을 밝힙니다.
내용 중 잘못된 사실 전달 또는 오역 등이 있을 시 BRIC으로 연락(view@ibric.org) 바랍니다.