
拓海先生、最近うちの若手が『SMILESを文章として扱えば機械学習で薬の分類ができます』って言い出して、正直何を言っているのか分からないのです。要するに、化学の難しい図を全部無視して文章だけで分かるということですか?

素晴らしい着眼点ですね、田中専務!大丈夫、複雑に見える話も分解すればシンプルです。要点を先に3つにまとめますよ。1) SMILESというのは化学構造を文字列にしたものです。2) その文字列を文章だと見立てて、自然言語処理(NLP: Natural Language Processing—自然言語処理)と同じ手法を試すのです。3) 結果としてシンプルなモデルでも競争力のある分類が得られる、という実験結果です。大丈夫、一緒に見ていけますよ。

SMILESって聞いたことはありますが、何かの略称でしたか。うちの現場で言えば図面をテキスト化しているようなものでしょうか。

その比喩はとても良いですよ。SMILESはSimplified Molecular Input Line Entry System(SMILES—簡略分子入力行表記)の略で、化学構造を1行の文字列で表す規則です。図面を文字列に落とし込むイメージで、原子や結合が順に並ぶため、文の単語に相当するトークンを作れます。現場の図面データをCSVにして読み替えるような感覚で理解できますよ。

なるほど。で、実際にどうやって分類するんですか?うちの若手は『単語を上位K個にして残りはUNKにする』とか言ってまして、何だか翻訳業者の話のようでした。

その通りで、非常に簡潔に言うとトークン化して頻度の高いトップKのトークンだけ辞書に載せ、残りはUNK(unknown—未知トークン)にまとめます。その後、トークン列を使ってシンプルな多層パーセプトロン(MLP: Multilayer Perceptron—多層パーセプトロン)などのモデルに入力し、最終的に確率が最も高いクラスを選ぶ、という流れです。処理の見方は文章分類に限りなく近いのです。

これって要するに、SMILESを普通の文章として扱うということ?化学の専門的な構造特徴を全部機械に学習させる必要はないと?

そうです、要するにその発想で合っています。専門的な化学的特徴を精密に作るよりも、まずは『文字列としてのSMILES』に対して文章分類のやり方を適用してみると、驚くほど良い結果が出ることがあるのです。ポイントはシンプルさと計算コストの低さ、実装の容易さです。

それは現場導入で助かります。とはいえ投資対効果の観点で、化学の専門家と相談するよりまず試作で効果が出るのなら短期的な価値は大きいですね。精度はどの程度期待できますか。

実験では、SMILES文字列をそのまま文章として扱うだけで、非常に競争力のあるスコアが得られていると報告されています。もちろんトップクラスの専門モデルと比べると差があるケースもあるが、開発コストと運用コストを低く抑えつつ短期間で導入し、現場での有用性を早く検証できる点が強みです。要は『まず試して学ぶ』というアプローチが有効です。

わかりました。ではまずは小さなデータで試して、効果が出そうなら化学の専門家とより深い表現を検討する、という段取りで。これなら投資も抑えられますね。自分の言葉で説明すると、『SMILESを文として扱って文章解析の方法でまずは分類してみる。うまくいけば次の投資を考える』という理解で合っていますか。

その通りです、田中専務。素晴らしいまとめですね!短期で価値を出すこと、費用対効果を確認してから深化すること、その二段階を踏むのが合理的です。大丈夫、一緒に進めれば必ずできますよ。


