タンパク質を用いたディープラーニング
Protein-based deep learning.
この記事を書く際には、2つの対象読者を想定しています。1つ目は機械学習に入門しようとしている生物学者であり、もう1つは生物学に入門しようとしている機械学習者です。もし生物学または機械学習のいずれにも詳しくない場合でも、どうぞご参加ください。ただし、時折混乱するかもしれません。そして、両方に詳しい場合は、この記事は必要ないかもしれません – これらのモデルが実際にどのように機能するかを確認するために、直接例のノートブックに移動できます:
- タンパク質言語モデルのファインチューニング(PyTorch、TensorFlow)
- ESMFoldを使用したタンパク質の折りたたみ(現時点では
openfold
の依存関係のため、PyTorchのみ)
生物学者向けの紹介:言語モデルとは一体何なのか?
タンパク質を扱うモデルは、BERTやGPTのような大規模な言語モデルに強く影響を受けています。したがって、これらのモデルがどのように機能するかを理解するために、2016年ごろに遡ってみましょう。ドナルド・トランプはまだ選出されておらず、Brexitも起こっておらず、ディープラーニング(DL)は毎日新記録を打ち立てている最新の技術です。DLの成功の鍵は、人工ニューラルネットワークを使用してデータの複雑なパターンを学習することです。ただし、DLには1つの重大な問題があります – 実際には、良い結果を得るためには非常に多くのデータが必要であり、多くのタスクではそのデータが利用できませんでした。
例えば、英語の文を入力として受け取り、それが文法的に正しいかどうかを判断するためのDLモデルを訓練したいとしましょう。そのためにトレーニングデータを集めると、以下のようなものになるでしょう:
理論的には、当時このタスクは完全に可能でした – このようなトレーニングデータをDLモデルに与えれば、新しい文が文法的に正しいかどうかを予測することができるようになるはずです。しかし、実際にはうまくいかなかったのです。なぜなら、2016年当時、ほとんどの人々が各タスクごとに新しいモデルをランダムに初期化していたからです。これはつまり、モデルがトレーニングデータの例だけから必要なすべての知識を学ぶ必要があったということです!
それがどれほど困難であるかを理解するために、機械学習モデルであり、私があなたに学習してほしいタスクのトレーニングデータを与えるとします。以下に示します:
ここで、あなたが見たことのない言語を選んだため、おそらく自信を持ってこのタスクを学習できるとは思えません。おそらく何百回も何千回もの例を見るまで、入力の中で再発する単語やパターンをいくつか見つけ出すことができるかもしれません。その場合でも、新しい単語や一般的でない表現が登場すると、あなたは間違った予測をする可能性があります。偶然ではありませんが、当時のDLモデルの性能もほぼ同じでした!
では、同じタスクを英語で試してみましょう:
今回は簡単です – タスクは単に映画のレビューがポジティブ(1)かネガティブ(0)かを予測することです。2つのポジティブな例と2つのネガティブな例だけで、おそらくほぼ100%の正確さでこのタスクを達成できるでしょう。なぜなら、英語の語彙や文法、映画や感情表現に関する文化的な文脈について、すでに豊富な前提知識を持っているからです。その知識がなければ、最初のタスクのような状況になります – 入力の中にさえ表面的なパターンを見つけるには、膨大な数の例を読む必要があります。そして、何十万もの例を研究する時間をかけても、英語のタスクにおいてたった4つの例だけで得られるよりもはるかに正確な予測はできません。
重要なブレークスルー:転移学習
機械学習では、このような既知の知識を新しいタスクに転移する概念を「転移学習」と呼びます。このような転移学習をDLにうまく適用することは、2016年ごろのこの分野の主要な目標でした。2016年までには、事前学習された単語ベクトル(非常に興味深いものですが、このブログ記事の範囲外です!)などが存在し、一部の知識が新しいモデルに転移できるようになっていましたが、この知識の転移はまだ比較的表面的であり、モデルはまだ大量のトレーニングデータが必要でした。
この状況は2018年まで続きました。その年、ULMFiTと後にBERTという2つの重要な論文が発表されました。これらは、自然言語の転移学習を本当にうまく機能させた最初の論文であり、特にBERTは事前学習された大規模な言語モデルの時代の始まりを示しました。両論文で共有されているトリックは、ディープラーニングの人工ニューラルネットワークの内部構造を利用したものです – これらの論文では、トレーニングデータが非常に豊富なテキストタスクで長時間にわたりニューラルネットワークを訓練し、そのニューラルネットワーク全体を新しいタスクにコピーするだけで、ネットワークの出力に対応するごくわずかなニューロンだけを変更しました。
このULMFiT論文の図は、転移学習を使用した場合と、3つの異なるタスクでモデルをゼロからトレーニングする場合との間の性能の大幅な向上を示しています。多くの場合、転移学習を使用すると、トレーニングデータの100倍以上のパフォーマンスが得られます。そして、これは2018年に発表されたものです – 現代の大規模言語モデルはさらに優れた結果を出すことができます!
これがうまくいく理由は、非自明なタスクを解決する過程で、ニューラルネットワークが入力データの構造に関する多くの情報を学習することです – ビジュアルネットワークは、生の画素を与えられた場合に線や曲線やエッジを識別することを学習します。テキストネットワークは、生のテキストを与えられた場合に文法構造の詳細を学習します。ただし、この情報はタスク固有ではありません – 転移学習が機能する主な理由は、「タスクを解決するために必要な情報の大部分は、そのタスクに特定されない」ということです!映画のレビューを分類するためには、映画のレビューについて多くを知る必要はありませんが、英語と文化的な文脈に関する広範な知識が必要です。トレーニングデータが豊富なタスクを選択することで、ニューラルネットワークにそのような「ドメイン知識」を学習させ、後でトレーニングデータがはるかに難しい新しいタスクに適用することができます。
この時点で、おそらく転移学習が何であるか、そして大規模言語モデルが単に多くのテキストデータでトレーニングされた大規模なニューラルネットワークであることを理解していると思います。これは新しいタスクに転送するための最適な候補です。以下では、同じ技術がタンパク質にも適用できる方法を見ていきますが、まずはもう半分の読者のために紹介文を書く必要があります。既に理解している場合は、この次の部分をスキップしてください!
機械学習の人々への紹介:タンパク質とは一体何ですか?
1つの文で学位を縮めると、タンパク質はたくさんのことを行います。一部のタンパク質は酵素であり、化学反応の触媒として機能します。体が栄養素をエネルギーに変換する際、食べ物から筋肉の運動までの経路の各段階は酵素によって触媒されます。一部のタンパク質は構造的であり、例えば結合組織で安定性と形状を提供します。化粧品の広告を見たことがある人は、おそらくコラーゲンやエラスチン、ケラチンなどの言葉を見たことがあるでしょう – これらは私たちの皮膚や髪の構造の多くを形成するタンパク質です。
他のタンパク質は健康と病気において重要です – 誰もがCOVID-19ウイルスのスパイクタンパク質についてのニュースレポートを覚えているかもしれません。COVIDのスパイクタンパク質は、ACE2というタンパク質に結合し、これにより細胞内に入り込んでウイルスのRNAを届けることができます。この相互作用が感染に非常に重要だったため、これらのタンパク質とその相互作用のモデリングはパンデミック中の重要な焦点でした。
タンパク質は複数のアミノ酸から構成されています。アミノ酸は比較的単純な分子で、すべて同じ分子骨格を共有しています。この骨格の化学的な特性により、アミノ酸は融合して長い鎖状になることができます。ここで重要なことは、わずかな種類のアミノ酸しかないということです – 20種類の標準アミノ酸と、特定の生物によって異なるいくつかの珍しいアミノ酸が追加される場合もあります。タンパク質の多様性が生じるのは、これらのアミノ酸が任意の順序で組み合わされることによるものであり、結果として、鎖の異なる部分がお互いに結びつき、折りたたまれることで、異なる形状と機能を持つタンパク質鎖が生じます。テキストを例えに考えてみてください – 英語には26の文字しかないのに、それらの26の文字の組み合わせで書くことができるさまざまな種類のものを考えてみてください!
実際、アミノ酸が非常に少ないため、生物学者はそれぞれのアミノ酸にユニークなアルファベットを割り当てることができます。これにより、タンパク質をテキスト文字列として書くことができます!例えば、タンパク質にメチオニン、アラニン、ヒスチジンのアミノ酸が鎖状に存在するとします。それらのアミノ酸の対応する文字はただのM、A、Hであり、その鎖は単に「MAH」として書くことができます。ただし、ほとんどのタンパク質は3つではなく、数百または数千のアミノ酸を含んでいます!
この図はタンパク質の2つの表現を示しています。すべてのアミノ酸は炭素-炭素-窒素の連続を含んでいます。アミノ酸がタンパク質に結合すると、この繰り返しパターンはタンパク質全体の長さにわたって続き、これをタンパク質の「バックボーン」と呼びます。しかし、アミノ酸はこのC-C-Nバックボーンに付着している原子である「側鎖」によって異なります。下の図では、一般的な側鎖をR1、R2、R3としてラベル付けしていますが、これは任意のアミノ酸になり得ます。上の図では、中央のアミノ酸はCH3の側鎖を持っています – これにより、これがアラニンというアミノ酸であることが識別され、Aの文字で表されています。(画像の出典)
たとえテキスト文字列として書くことができるとしても、タンパク質は実際には「言語」ではありません。少なくともノーム・チョムスキーが認識するような言語ではありません。ただし、タンパク質にはテキストと非常に似た特徴がいくつかあり、機械学習の観点からは非常に類似したドメインとなっています。タンパク質は、固定された小さなアルファベットで構成される長い文字列であり、理論的には任意の文字列が可能ですが、実際にはごく一部の文字列のみが意味を持ちます。ランダムなテキストはゴミであり、ランダムなタンパク質は形のない塊です。
また、タンパク質の一部のみを分離して考えると情報が失われます。同様に、大きなテキストから抽出された単一の文を読むだけでは情報が失われます。タンパク質の領域は、その形状を安定化し修正するために他のタンパク質の一部が存在する場合にのみ、その自然な形状を取ることができます!したがって、グローバルセルフアテンションによってうまく捉えられる長距離相互作用は、タンパク質を正しくモデリングする上で非常に重要です。
この時点で、タンパク質が何であり、なぜ生物学者がそれに関心を持つのか、おおよそ分かるかと思います。アミノ酸の小さな「アルファベット」にもかかわらず、タンパク質は多様な構造と機能を持ち、生のアミノ酸の「文字列」を見るだけでこれらの構造と機能を理解し予測することができれば、非常に貴重な研究ツールとなります。
まとめ:タンパク質の機械学習
これまでに、言語モデルによる転移学習の仕組みとタンパク質の特性について見てきました。そして、その背景を把握したら、次のステップはそれほど難しくありません。タンパク質に対しても同じ転移学習のアイデアを使用することができます!英語のテキストを用いたタスクの事前学習ではなく、タンパク質を入力とするタスクでモデルを事前学習し、多くのトレーニングデータを利用します。これを行うことで、モデルはタンパク質の構造について多くの知識を習得することができます。これは、言語モデルが言語の構造について多くの知識を習得するのと同様です。そのため、事前学習されたタンパク質モデルは、他の任意のタンパク質ベースのタスクに転移させるための最適な候補となります!
生物学者がタンパク質モデルのトレーニングに関心を持つ機械学習タスクはどのようなものでしょうか?最も有名なタンパク質モデリングタスクはタンパク質の折りたたみです。このタスクでは、「MLKNV…」のようなアミノ酸鎖が与えられた場合に、そのタンパク質が折りたたまれる最終的な形状を予測します。これは非常に重要なタスクであり、タンパク質の形状と構造を正確に予測することで、タンパク質の機能やその働き方に関する多くの洞察が得られます。
この問題は、現代の機械学習よりもずっと前から研究されてきました。Folding@Homeなどの初期の大規模分散コンピューティングプロジェクトでは、原子レベルシミュレーションを使用してタンパク質の折りたたみをモデル化しており、細胞から単離されたタンパク質の構造を観察するためにX線回折を用いるタンパク質結晶学という分野があります。
ただし、ディープラーニングの登場により、この状況は一変しました。AlphaFoldや特にAlphaFold2は、タンパク質固有の追加要素を持つトランスフォーマーディープラーニングモデルを使用して、生のアミノ酸配列から新しいタンパク質の構造を非常に正確に予測する驚異的な結果を達成しました。タンパク質の折りたたみに興味がある場合は、ESMFoldノートブックをチェックすることを強くお勧めします。ESMFoldはAlphaFold2に似た新しいモデルですが、「純粋な」ディープラーニングモデルであり、外部のデータベースや検索手順を必要としません。そのため、セットアッププロセスは簡単で、モデルの実行速度も速くなりますが、優れた精度を保ちます。
ホモ二量体P. multocidaタンパク質グルコサミン-6-リン酸デアミナーゼの予測された構造。この構造と可視化は、上記のESMFoldノートブックを使用して数秒で生成されました。濃い青の色が最も構造の信頼性が高い領域を示しています。
タンパク質の折りたたみは興味のあるタスクの唯一のものではありません!生物学者がタンパク質を使用して行いたい分類タスクはさまざまです。たとえば、タンパク質がどの細胞部位で作用するかを予測したり、タンパク質が作成された後に特定の修飾を受けるアミノ酸を予測したりするかもしれません。機械学習の文脈では、これらのタスクは「シーケンス分類」と呼ばれます。タンパク質全体を分類する場合は「シーケンス分類」、各アミノ酸を分類する場合は「トークン分類」と呼ばれます。
重要なポイントは、タンパク質は言語とは非常に異なるものの、ほぼ同じ機械学習アプローチで処理できるということです。大規模なタンパク質配列データベースでの事前学習に続いて、トレーニングデータがはるかに少ない興味深いタスクに対する転移学習が行われます。実際、BERTのような大規模な言語モデルと比較して、複雑な単語の分割や解析は必要ありません。タンパク質には「単語」の区切りがないため、最も簡単なアプローチは、各アミノ酸を単一の入力トークンに変換することです。
すごく面白そうだけど、どこから始めればいいかわからない!
既にディープラーニングに詳しい方なら、タンパク質モデルの微調整のコードは、言語モデルの微調整のコードと非常に似ていることに気付くでしょう。興味があれば、PyTorchとTensorFlowの両方のサンプルノートブックがありますし、UniProtのようなオープンアクセスのタンパク質データベースから大量の注釈付きデータを取得することもできます。UniProtにはREST APIと素敵なウェブインターフェースもあります。主な困難は、探索する興味深い研究方向を見つけることであり、それはこのドキュメントの範囲を超えていますが、きっと多くの生物学者があなたと協力したいと思っているはずです!
一方、生物学者の場合、試してみたいアイデアがいくつかあるかもしれませんが、機械学習のコードに飛び込むことに少し抵抗があるかもしれません。心配しないでください!私たちは、データローディングセクションが他の部分とかなり独立しているように設計された例のノートブック(PyTorch、TensorFlow)を提供しています。つまり、シーケンス分類やトークン分類のタスクを考えている場合、必要なのはタンパク質のシーケンスのリストとそれに対応するラベルのリストを作成し、そのリストを読み込むか生成するコードに私たちのデータローディングコードを置き換えるだけです。
具体的なリンク先の例では、基本の事前学習モデルとしてESM-2が使用されていますが、これは現在の最先端です。ただし、この分野で活躍している人々は、ProtBERT(論文リンク)などのRost labのモデルにも精通している可能性があります。これらのモデルはその種のモデルの中でも最初期のものであり、バイオインフォマティクスコミュニティから驚異的な関心を集めています。リンクされた例のコードの多くは、facebook/esm2...
というチェックポイントパスをRostlab/prot_bert
のようなものに変更することで、ProtBERTなどの基本モデルを使用するように簡単に切り替えることができます。
結論
ディープラーニングと生物学の交差点は、今後数年間で非常に活発で成果の多い分野となるでしょう。ただし、ディープラーニングが速く進化する分野である一方で、人々が結果を再現し、新しいモデルを自分たちの用途に適応する速さも特徴です。その精神に則り、コミュニティに役立つと思われるモデルをトレーニングした場合は、共有してください!上記のノートブックには、モデルをハブにアップロードするためのコードが含まれており、他の研究者によって自由にアクセスされ、拡張されることができます。この分野への利益に加えて、関連する論文に対する可視性と引用も得ることができる素晴らしい方法です。Spacesを使用してライブのウェブデモを作成することもできます。これにより、他の研究者がタンパク質のシーケンスを入力し、一行のコードを書かずに無料で結果を得ることができます。幸運を祈ります。そして、レビューアー2があなたに優しくあることを願っています!
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles