見出し画像

BERT(Bidirectional Encoder Representations from Transfomrer)

確か昨年2018年にはグーグル翻訳の精度が飛躍的に上昇した話題で、適当な日本語を翻訳させてその成果を実感した。しかし、人間に比べれるとまだまだと感じた。
最近、ツイッターで英語を母国語とする方が僕の日本語ツイートを理解されており翻訳を利用していることも分かっていた。なぜ分かったかは、僕のリプライする英語が低レベルなので、彼の英語を僕が理解するのに翻訳が正しく機能することを願ったからだ。いや、あなたの英語は脳内翻訳で理解しているけど、僕の英語の脳内出力が酷いんだ。意味が通じていない原因を翻訳の性能に求めるのも分かるが、ツイート内容は極めて抽象的だし、日本語でも意味が通じない可能性は極めて高い。

一方、個人的につい最近 kaggle のホームページで machine learning と deep learning のコースに出会った。プログラミングは独学 of 独学なので、python のコースでも目から鱗のような知識との出会いがある。ちょうど、bot に wikipedia を内容を理解させるのに、単語レベル、アルファベットレベルに文章を切って、そこからいかに統合するか悩んでいた。画像のベクタ形式とラスタ形式から着想を得て、文章の波長(ベクタの構成要素)を得ることができたら、ベクタの拡大と縮小は、それぞれ詳細とまとめに対応して、見えない世界が見えるのでは!?と胸が高鳴っていたが実装の壁の高さに悩んでいた。

Kaggle で牛歩のようにコースを進めながら、文章に deep learning を適用するサンプルをググったら、BERT(Bidirectional Encoder Representation from Transformer) に出会った。

2019年8月14日 https://twitter.com/273sn/status/1161589552974159873

飛躍的な精度向上が「Attention」によるものだと知り、確かに実際問題、文章のどの部分に注意するかは非常に大きな問題と感じていたので、その解決の可能性にさらに胸が高まった。さらに、BERT が英語のみならず複数の言語に対応していることから、ツイッターのラテン語たんのアルファベットの呟きをラテン語と勘違いし google によるツイッター翻訳(BERTと思われる)にかけたところ、Sunuki が Sun岐 と訳されていた。讃岐「岐」が香川に関するツイートという文脈を受けていることに感動した。Bidirectional にすることで、つまり、文頭から文末だけでなく文末から文頭を考慮することで文脈を読み取る力、注意力が向上したと私は考えている。

それでは、その注意力を確かめなくてはならない。
このページは最初にみたときは大発見のような気分だった。attention の効果について、精度が上がっているが構造は全く理解できない(8/23)
https://machinelearningmastery.com/encoder-decoder-attention-sequence-to-sequence-prediction-keras/
次に、attention の引用元へ
https://medium.com/datalogue/attention-in-keras-1892773a4f22
忘れていた git の account から clone してコードを読む。memory が不足する事態に直面し、keras と tensorflow も懸命に読む。(これは沼だ!!)

ふと全体を見渡して(BERT の図をみて)Encoder と Transformer を理解しようとしていることに気付いた。これは、深い深い沼でもあり、本当に大きな大きな山だ。 世界の幸運を願い、祈る。

乱筆、乱文だけど、これにて失礼します。お読み頂きありがとうございました。お互いに切磋琢磨できれば幸いです。

 

この記事が気に入ったらサポートをしてみませんか?