Upgrade to Pro — share decks privately, control downloads, hide ads and more …

BERTによる自然言語処理を学ぼう!【 Live!人工知能 #26】 #Live人工知能

1ae8fc4f63ab4770dd4545006489234c?s=47 yuky_az
November 02, 2020

BERTによる自然言語処理を学ぼう!【 Live!人工知能 #26】 #Live人工知能

自然言語処理の様々なタスクで高い性能を発揮する、「BERT」を解説する講座です。
BERT(Bidirectional Encoder Representations from Transformers )は2018年10月にGoogleが公開して以来、世界中のAI関係者の注目を集めています。
BERTは「Transformer」と呼ばれるモデルを利用することで、離れた単語間の関係、すなわち「文脈」を考慮した自然言語処理を実現します。
タスクによっては人間並みの精度を発揮する可能性もあり、「応答文の生成」や「文書の要約」といった様々なタスクでの活用が期待されています。
本講座により、新しい時代の有用な自然言語処理技術を身に付けましょう。

講座の内容は以下を予定しています。
Section1. 講座とBERTの概要: https://youtu.be/wPvRJXpLEyg
Section2. シンプルなBERTの実装: https://youtu.be/ZK3lFu5mXRM
Section3. BERTの仕組み: https://youtu.be/4iEVNNAh0SI
Section4. ファインチューニングの活用: https://youtu.be/InWiIJwrvH8
Section5. BERTの応用: https://youtu.be/02tfJx8ic3Q
講座の内容は、予告なく変更されることもあるのでご注意ください。

なお、今回の講座でプログラミング言語Pythonの解説は最小限となります。

【Live!人工知能】
毎週月曜日21時に開催。人工知能(AI)技術に関する無料のライブ講義です。
YouTube Liveを利用して配信されます。
以下のチャンネルで過去のライブ動画の一部を見ることができます。
https://www.youtube.com/channel/UCT_HwlT8bgYrpKrEvw0jH7Q

講師: 我妻幸長(@yuky_az)
「ヒトとAIの共生」がミッションの会社、SAI-Lab株式会社の代表取締役。AI関連の教育と研究開発に従事。
東北大学大学院理学研究科修了。理学博士(物理学)。
興味の対象は、人工知能(AI)、脳科学、シンギュラリティなど。
オンライン教育プラットフォームUdemyで、数万人にAIを教える人気講師。
様々な有名企業でAI研修を担当。
著書に、「はじめてのディープラーニング」「はじめてのディープラーニング2」(SBクリエイティブ)、「Pythonで動かして学ぶ!あたらしい数学の教科書 機械学習・深層学習に必要な基礎知識」(翔泳社)。共著に「No.1スクール講師陣による 世界一受けたいiPhoneアプリ開発の授業」(技術評論社)。

1ae8fc4f63ab4770dd4545006489234c?s=128

yuky_az

November 02, 2020
Tweet

Transcript

  1. ʙ -JWFɛʈٝঐ 㘴㙖㙦㙀㙞೮࿥e㘈㘍㗗㗏㗊ᗴ㗄㗗㗾㗙

  2. None
  3. ΠϯτϩμΫγϣϯ

  4. ߨࢣ঺հ զ࠺޾௕ :VLJOBHB"[VNB !ZVLZ@B[ 4"*-BCגࣜձࣾ୅දऔక໾ "*ؔ࿈ͷڭҭɺݚڀ։ൃʹैࣄ ཧֶത࢜ʢ෺ཧֶʣ 6EFNZͰ਺ສਓΛࢦಋ༗໊اۀͰ"*ݚमΛ୲౰ ஶॻʹʮ͸͡ΊͯͷσΟʔϓϥʔχϯάʯͳͲ

  5. ίʔεͷಛ௃ • BERTͷجૅΛֶͿ
 → TransformerɺBERTͳͲͷࣗવݴޠॲཧٕज़Λֶͼ·͢ • PyTorchʹΑΔ࣮૷
 → Google Colaboratory؀ڥͰBERTΛಈ࡞ͤ͞·͢

    • ߨ࠲ͷର৅
 → ҰาਐΜͩࣗવݴޠॲཧٕज़Λ਎ʹ෇͚͍ͨํ
 → σΟʔϓϥʔχϯάʹؔ͢Δجૅతͳ஌ࣝͷ͋Δํ
 → ϓϩάϥϛϯάɺӳޠʹ఍߅ײ͕খ͍͞ํ
  6. ߨ࠲ͷ಺༰ Section 1. ߨ࠲ͱBERTͷ֓ཁ Section 2. γϯϓϧͳBERTͷ࣮૷ Section 3. BERTͷ࢓૊Έ

    Section 4. ϑΝΠϯνϡʔχϯάͷ׆༻ Section 5. BERTͷԠ༻
  7. ࠓճͷ಺༰ 1. ΠϯτϩμΫγϣϯ 2. ίʔεͷ֓ཁ 3. ࣗવݴޠॲཧͷ֓ཁ 4. Transformerͷ֓ཁ 5.

    BERTͷ֓ཁ 6. Google Colaboratoryͷ࢖͍ํ
  8. ڭࡐͷ঺հ • Pythonͷجૅ

  9. ίʔεͷ֓ཁ

  10. Section 1. ߨ࠲ͱBERTͷ֓ཁ ࣗવݴޠॲཧɺTransformerɺBERTʹ͍ͭͯ֓ཁΛֶͼ·͢

  11. Section 2. γϯϓϧͳBERTͷ࣮૷ ࠷খݶͷPythonͷίʔυͰBERTΛ࣮૷͠·͢

  12. Section 3. BERTͷ࢓૊Έ TransformerɺBERTͳͲʹ͍ͭͯ࢓૊ΈΛৄֶ͘͠ͼ·͢

  13. Section 4. ϑΝΠϯνϡʔχϯάͷ׆༻ ϑΝΠϯνϡʔχϯάͷ֓ཁɺͦͯ͠BERTʹ͓͚Δ׆༻ʹ͍ͭͯղઆ͠·͢

  14. Section 5. BERTͷԠ༻ BERTΛ࢖ͬͯɺࣗવݴޠॲཧͷλεΫʹऔΓ૊Έ·͢

  15. ࣗવݴޠॲཧͷ֓ཁ

  16. ࣗવݴޠॲཧͱ͸ • ࣗવݴޠͱ͸ɺ೔ຊޠ΍ӳޠͳͲͷզʑ͕ීஈ࢖͏ݴޠͷ͜ͱ • ࣗવݴޠॲཧʢNatural Language ProcessingɺNLPʣͱ͸ɺ
 ࣗવݴޠΛίϯϐϡʔλͰॲཧ͢Δٕज़ͷ͜ͱ

  17. ࣗવݴޠॲཧͷԠ༻ • ݕࡧΤϯδϯ • ػց຋༁ • ༧ଌม׵ • εύϜϑΟϧλ •

    Ի੠Ξγελϯτ • খઆͷࣥච • ର࿩γεςϜ • etc…
  18. ࣗવݴޠॲཧٕज़ͷཁૉ • ܗଶૉղੳ
 → จॻΛ୯ޠʹ෼ׂ͢Δٕज़ • ୯ޠͷ෼ࢄදݱ
 → จॻ಺Ͱͷؔ܎ੑΛ౿·͑ͯɺ୯ޠΛϕΫτϧԽ͢Δٕज़ •

    ࠶ؼܕχϡʔϥϧωοτϫʔΫʢRNNʣ
 → ࣌ܥྻΛѻ͏ͷ͕ಘҙͳχϡʔϥϧωοτϫʔΫͷҰछ • Seq2Seq
 → RNNΛϕʔεʹͨ͠ɺจষͳͲΛੜ੒ՄೳͳϞσϧ • etc…
  19. ೔ຊޠͷܗଶૉղੳ • ܗଶૉͱ͸ɺݴ༿͕ҙຯΛ࣋ͭ·ͱ·Γͷ୯ޠͷ࠷খ୯Ґͷ͜ͱ • ܗଶૉղੳͱ͸ɺࣗવݴޠΛܗଶૉʹ·Ͱ෼ׂ͢Δ͜ͱ • ೔ຊޠ΍தࠃޠɺλΠޠ͸୯ޠؒʹεϖʔε͕ແ͍ͷͰɺ
 ܗଶૉղੳ͕ඞཁ • ҎԼ͸୅දతͳ೔ຊޠͷܗଶૉղੳϥΠϒϥϦ

    • MeCab → ஌໊౓͕ߴ͘ɺߴ଎ɺߴਫ਼౓ • Janome → ଎౓͸MeCabʹྼΔ͕ɺಋೖ͕؆୯ • etc…
  20. one-hotදݱ ͢΋΋ ΋ ΋΋ ΋ ΋΋ ͷ ͏ͪ ͢΋΋ ΋

    ΋΋ ͷ ͏ͪ *%      ʮ͢΋΋ʯͷone-hotදݱ: [1 0 0 0 0] ʮ΋ʯͷone-hotදݱ: [0 1 0 0 0]
  21. ෼ࢄදݱ • ୯ޠؒͷؔ࿈ੑ΍ྨࣅ౓ʹجͮ͘ϕΫτϧͰɺ୯ޠΛදݱ͢Δ    ʜ   

    ʜ    ʜ 200ཁૉఔ౓ உੑ ϩϯυϯ Python • word2vecͳͲΛ࢖͑͹ɺ଍͠ࢉ΍Ҿ͖ࢉ͕ՄೳͳϕΫτϧΛ࡞Δ͜ͱ͕Ͱ͖Δ
 ྫ: ʮԦʯ-ʮஉʯ+ʮঁʯ=ʮঁԦʯ
  22. word2vec • word2vec͸ɺ෼ࢄදݱΛ࡞੒͢ΔͨΊͷٕज़ • word2vecͰ͸ɺCBOWʢcontinuous bag-of-wordsʣ΋͘͠͸ɺ
 skip-gramͱ͍͏χϡʔϥϧωοτϫʔΫ͕༻͍ΒΕΔ

  23. ॏΈ CBOWʢcontinuous bag-of-wordsʣ • લޙͷ୯ޠ͔Βର৅ͷ୯ޠΛ༧ଌ͢ΔχϡʔϥϧωοτϫʔΫ • ֶशʹཁ͢Δ͕࣌ؒskip-gramΑΓ΋୹͍ ͢ ΋΋ ΋΋

    ΋ ೖྗ૚ தؒ૚ ग़ྗ૚ one-hotදݱ ॏΈ ॏΈΛද͢ߦྻ Wmid Wout ֶशʹΑΓɺWmid ͸෼ࢄදݱͷϕΫτϧ͕ฒΜͩߦྻʹͳΔ ΋ ෼ࢄදݱͱಉ͡ ཁૉ਺ͷϕΫτϧ
  24. skip-gram ॏΈ • ͋Δ୯ޠ͔Βɺલޙͷ୯ޠΛ༧ଌ͢ΔχϡʔϥϧωοτϫʔΫ • CBOWΑΓ΋ֶशʹ͕͔͔࣌ؒΔ͕ɺਫ਼౓͕Α͍ ͢ ΋΋ ΋΋ ΋

    ೖྗ૚ தؒ૚ ग़ྗ૚ one-hotදݱ ॏΈ ॏΈΛද͢ߦྻ Wmid Wout ֶशʹΑΓɺWmid ͸෼ࢄදݱͷ ϕΫτϧ͕ฒΜͩߦྻʹͳΔ ΋ ෼ࢄදݱͱಉ͡ ཁૉ਺ͷϕΫτϧ
  25. ࠶ؼܕχϡʔϥϧωοτϫʔΫʢRNNʣͱ͸ʁ • ࠶ؼܕχϡʔϥϧωοτϫʔΫʢReccurent Neural Networkʣ
 → ೖྗͱਖ਼ղ͕ʮ࣌ܥྻσʔλʯͱͳΔ
 → தؒ૚͕ʮ࠶ؼʯͷߏ଄Λ࣋ͪɺલޙͷ࣌ࠁͷதؒ૚ͱͭͳ͕Δ ೖྗ૚

    தؒ૚ ग़ྗ૚ ࠶ؼ
  26. RNNͷॱ఻೻ͱٯ఻೻ ೖྗ ૚ தؒ ૚ ग़ྗ ૚ ೖྗ ૚ தؒ

    ૚ ग़ྗ ૚ ೖྗ ૚ தؒ ૚ ग़ྗ ૚ t = 0 t = 1 t = 2 ॱ఻೻
 ٯ఻೻ • ࣌ؒΛḪͬͯٯ఻೻͕ߦΘΕΔ • શͯͷ࣌ࠁͷதؒ૚Ͱɺ
 ύϥϝʔλ͸ڞ༗͞ΕΔ
  27. ࣌ܥྻσʔλͷྫ • จॻ • Ի੠σʔλ • ಈը • גՁ •

    ࢈ۀ༻ػثͷঢ়ଶ • etc…
  28. Seq2Seqͱ͸ • Seq2Seq͸ɺܥྻ(sequence)Λ ड͚औΓɺผͷܥྻ΁ม׵͢ΔϞσϧ • ࣗવݴޠॲཧͰΑ͘ར༻͞ΕΔ • จষͳͲͷೖྗΛѹॖ͢Δencoderͱɺग़ྗΛల։͢Δdecoder͔ΒͳΔ • ҎԼ͸׆༻ྫ

    • ػց຋༁ʢྫ: ӳޠͷจষ → ϑϥϯεޠͷจষʣ • จষཁ໿ʢݩͷจষ → ཁ໿จʣ • ର࿩ʢࣗ෼ͷൃݴ → ૬खͷൃݴʣ • etc…
  29. Seq2Seqͷߏ଄ 3// ૚ Seq2SeqʹΑΔ຋༁ͷྫ ޗഐ ͸ ೣ ͩ <EOS> I

    am a cat <EOS> encoder decoder
  30. ͞Βʹৄֶ͘͠ͼ͍ͨํ΁… 6EFNZίʔε ࣗવݴޠॲཧͱνϟοτϘοτ "*ʹΑΔจষੜ੒ͱձ࿩Τϯδϯ։ൃ 6EFNZίʔε ਓ޻஌ೳʢ"*ʣΛ౥ࡌͨ͠5XJUUFSϘοτΛ࡞Ζ͏ ʲ4FR4FR "UUFOUJPO $PMBCʳ

  31. Transformerͷ֓ཁ

  32. RNNʹΑΔࣗવݴޠॲཧͷ໰୊఺ • ֶश͕࣌ؒ௕͍
 → σʔλΛฒྻͰॲཧͰ͖ͳ͍ͨΊɺ
 ֶशʹ͸௕͍͕͔͔࣌ؒΔ • จ຺ΛͱΒ͑Δͷ͕೉͍͠
 → ௕࣌ؒͷؔ܎ੑΛͱΒ͑Δͷ͕ۤख

  33. Transformerͷ֓ཁ • Transformerͱ͸ʁ
 → 2017೥ʹಋೖ͞ΕͨσΟʔϓϥʔχϯάϞσϧͰɺ
 ओʹࣗવݴޠॲཧͷ෼໺Ͱ࢖༻͞ΕΔ 
 → RNNͱಉ༷ʹɺࣗવݴޠͳͲͷ࣌ܥྻσʔλΛॲཧ͢ΔΑ͏ʹઃܭ ͞Ε͍ͯΔ͕ɺRNNͰ༻͍Δ࠶ؼɺCNNͰ༻͍Δ৞ΈࠐΈ͸࢖Θͳ͍


    → Attention૚ͷΈͰߏங͞ΕΔ
 → ຋༁΍ςΩετͷཁ໿ͳͲɺ༷ʑͳλεΫͰར༻Մೳ
 → ฒྻԽ͕༰қͰ͋Γɺ܇࿅࣌ؒΛେ͖͘࡟ݮͰ͖Δ
  34. Transformerͷ࿦จ • Attention Is All You Need
 → https://arxiv.org/abs/1706.03762
 •

    ʮAttentionʯ͸࣌ܥྻσʔλͷಛఆͷ෦෼ʹ
 ஫ҙΛ޲͚ΔΑ͏ʹֶश͍ͤͯ͘͞ํ๏
  35. TransformerͷϞσϧ "UUFOUJPO*T"MM:PV/FFE "TIJTI 7FUBM  ΑΓҾ༻ &ODPEFS %FDPEFS &ODPEFSͷߏ଄ ̍ɽ&NCFEEJOH૚ʹΑΓೖྗจষΛϕΫτϧʹѹॖ

    ̎ɽ1PTJUJPOBM&ODPEFS૚ʹΑͬͯҐஔ৘ใΛՃ͑Δ ̏ɽ.VMUJ)FBE"UUFOUJPO૚ ̐ɽOPSNBMJ[BUJPOʢਖ਼نԽʣͳͲ ̑ɽ1PTJUJPOXJTFGVMMZDPOOFDUFEGFFEGPSXBSEOFUXPSL ̒ɽOPSNBMJ[BUJPOʢਖ਼نԽʣͳͲ Λճ܁Γฦ͢
  36. TransformerͷϞσϧ "UUFOUJPO*T"MM:PV/FFE "TIJTI 7FUBM  ΑΓҾ༻ &ODPEFS %FDPEFS %FDPEFSͷߏ଄ ̍ɽ&NCFEEJOH૚ʹΑΓೖྗจষΛϕΫτϧʹѹॖ

    ̎ɽ1PTJUJPOBM&ODPEFS૚ʹΑͬͯҐஔ৘ใΛՃ͑Δ ̏ɽ.VMUJ)FBE"UUFOUJPO૚ ̐ɽOPSNBMJ[BUJPOʢਖ਼نԽʣͳͲ ̑.VMUJ)FBE"UUFOUJPO૚ʢ&ODPEFSͷೖྗΛ࢖༻ʣ ̒ɽOPSNBMJ[BUJPOʢਖ਼نԽʣͳͲ ̓ɽ1PTJUJPOXJTFGVMMZDPOOFDUFEGFFEGPSXBSEOFUXPSL ̔ɽOPSNBMJ[BUJPOʢਖ਼نԽʣͳͲ Λճ܁Γฦ͢
  37. BERTͷ֓ཁ

  38. BERTͷ֓ཁ • BERTʢBirdirectional Encoder Representation from Transformersʣͱ͸ʁ
 → 2018೥ͷޙ൒ʹGoogle͔Βൃද͞Εͨɺ
 ࣗવݴޠॲཧͷͨΊͷ৽ͨͳσΟʔϓϥʔχϯάͷϞσϧ

    
 → Transformer͕ϕʔεͱͳ͍ͬͯΔ
 → ༷ʑͳࣗવݴޠॲཧλεΫͰϑΝΠϯνϡʔχϯά͕Մೳ
 → ैདྷͷࣗવݴޠॲཧλεΫͱൺֱͯ͠ɺߴ͍൚༻ੑ
  39. BERTͷ࿦จ • BERT: Pre-training of Deep Bidirectional Transformers for Language

    Understanding
 → https://arxiv.org/abs/1810.04805
  40. BERTͷֶश #&351SFUSBJOJOHPG%FFQ#JEJSFDUJPOBM5SBOTGPSNFSTGPS-BOHVBHF6OEFSTUBOEJOH %FWMJO +FUBM  ΑΓҾ༻

  41. BERTͷֶश • ࣄલֶश
 → Transformer͕ɺจষ͔Βจ຺Λ૒ํ޲ʢBidirectionalʣʹֶश͢Δ
 → Masked Language Model͓ΑͼNext Sentence

    PredictionʹΑΔ૒ํ޲ֶश • ϑΝΠϯνϡʔχϯά
 → ࣄલֶशʹΑΓಘΒΕͨύϥϝʔλΛॳظ஋ͱͯ͠ɺϥϕϧ෇͖ͷσʔλͰɹ ϑΝΠϯνϡʔχϯάΛߦ͏
  42. Masked Language Model • Masked Language Model
 → จষ͔Βಛఆͷ୯ޠΛ15ˋϥϯμϜʹબͼɺ[MASK]τʔΫϯʹஔ͖׵͑Δ
 →

    ྫ: my dog is hairy → my dog is [MASK]
 → [MASK]ͷ୯ޠΛɺલޙͷจ຺͔Β༧ଌ͢Δ
  43. Next Sentence Prediction • Next Sentence Prediction
 → 2ͭͷจষʹؔ܎͕͋Δ͔Ͳ͏͔Λ൑ఆ͢Δ
 →

    ޙΖͷจষΛ50%ͷ֬཰Ͱແؔ܎ͳจষʹஔ͖׵͑Δ
 → ޙΖͷจষ͕ҙຯతʹద੾Ͱ͋Ε͹IsNextɺͦ͏Ͱͳ͚Ε͹NotNextͷ൑ఆ • [CLS] the man went to [MASK] store [SEP] / he bought a gallon [MASK] milk [SEP]
 ൑ఆɿIsNext
 [CLS] the man went to [MASK] store [SEP] / penguin [MASK] are flight #less birds [SEP]
 ൑ఆɿNotNext
  44. BERTͷੑೳ #&351SFUSBJOJOHPG%FFQ#JEJSFDUJPOBM5SBOTGPSNFSTGPS-BOHVBHF6OEFSTUBOEJOH %FWMJO +FUBM  ΑΓҾ༻ • SQuAD
 → ʮStanford

    Question Answering Datasetʯͷུ
 → ελϯϑΥʔυେֶ͕Ұൠެ։͍ͯ͠Δ
 ݴޠॲཧͷਫ਼౓ΛଌΔϕϯνϚʔΫ
 → σʔλ͸໿10ສݸͷ࣭໰Ԡ౴ͷϖΞΛؚΉ
  45. BERTͷੑೳ #&351SFUSBJOJOHPG%FFQ#JEJSFDUJPOBM5SBOTGPSNFSTGPS-BOHVBHF6OEFSTUBOEJOH %FWMJO +FUBM  ΑΓҾ༻ • GLUE
 → ࣗવݴޠॲཧͷͨΊͷ9छྨͷֶशσʔλΛؚΉσʔληοτ

  46. ೔ຊޠͷ܇࿅ࡁΈϞσϧ • ژ౎େֶ ࠇڮɾ㬗ɾଜ࿬ݚڀࣨ
 → http://nlp.ist.i.kyoto-u.ac.jp/index.php?BERT೔ຊޠPretrainedϞσϧ

  47. Google Colaboratoryͷ࢖͍ํ

  48. Google Colaboratoryͱ͸? • Google Colaboratory
 → Google͕ఏڙ͢Δɺϒϥ΢βͰPythonΛ࣮ߦͰ͖Δ؀ڥ
 → GoogleΞΧ΢ϯτͰར༻Մೳ
 →

    جຊతʹແྉ
 → ؀ڥߏங͕؆୯
 → ڞ༗͕؆୯
 → etc…
 https://colab.research.google.com/
  49. ίʔυηϧͱςΩετηϧ • ίʔυηϧ
 → PythonͷίʔυΛهड़͠ɺ࣮ߦ͢Δ • ςΩετηϧ
 → จষ΍਺ࣜΛهड़͢Δ

  50. Google Colaboratoryͷ༷ʑͳػೳ • εΫϥονίʔυηϧ • ίʔυεχϖοτ • ϑΥʔϜ • etc…

  51. Section 1. ߨ࠲ͱBERTͷ֓ཁ Section 2. γϯϓϧͳBERTͷ࣮૷ Section 3. BERTͷ࢓૊Έ Section

    4. ϑΝΠϯνϡʔχϯάͷ׆༻ Section 5. BERTͷԠ༻ ࣍ճͷ಺༰
  52. ࡶஊλΠϜ -JWFɛʈٝঐ 㘴㙖㙦㙀㙞೮࿥e㘈㘍㗗㗏㗊ᗴ㗄㗗㗾㗙