研究員の渡辺(@watasan) です。 先日、ペパボ研究所のメンバーが社内で実施した、新卒エンジニア向け機械学習研修についてご紹介します。 ペパボ研究所は2020年から、新卒エンジニア研修1の一環として機械学習研修を実施しています2。 今年で3年目となりますが毎年アップデートを重ねており、今年はより「ペパボらしさ」の強い研修となりました。 このエントリでは本研修の目的やコンテンツについてご紹介できればと思います。
本研修の位置付けと目的
GMOペパボ(以降ペパボ)では、新卒入社したエンジニアに向けて、様々な技術要素について「現時点で一番良いやり方」を学んでもらうための研修を毎年行っています2。 フロントエンド、バックエンド、インフラ、セキュリティなど、Webサービスを構築するための技術に関して「現時点で一番良いやり方」を学ぶことが研修全体のゴールとして設定されています。
この新卒エンジニア研修の一環として実施した機械学習研修も、この「現時点で一番良いやり方を学ぶ」という方針を踏襲し、次のように目的を設定しました。
サービス価値の向上のために「再帰化」を実現する上で、実装手段として機械学習を検討できるようになる。
「再帰化」とは、サービス価値向上のためにペパボが重視している考え方です。 具体的には次のように定義しています。
「再帰化」とは構造化・自動化されたサービスが、ユーザとのインタラクションの結果を取り込んで、システムを自らより良いものへと改修していくプロセスのことをいいます3。
ペパボはCtoCサービスの運営を通して、ユーザの皆さんに価値を提供することを目指しています。 その上で再帰化とは、サービスの価値を高める、またそれを迅速に行うために、サービスの改善を自動化しスケールさせることを指します。 「再帰化」というネーミングは、この改善をサイクルとして実行していくところに由来しています。 再帰化について詳しくは3をご覧ください。
加えて、機械学習はこの再帰化を実現するための1つのアプローチです。 機械学習、特に教師あり学習は、変数同士の関係を関数として表現し、それをデータから自動的に獲得する技術であるという見方ができます4。 サービスを構成するシステムは、入出力を持つ部分要素、すなわち関数によって構成されていると考えてみます。 すると、この部分要素に機械学習を適用することで、ユーザとのインタラクションのデータを元に、その挙動を自動的に最適化できると考えられます。
本研修では再帰化の観点から機械学習を伝えることで、ペパボにおける機械学習の「現時点で一番良いやり方を学ぶ」ことを目指しました。 ペパボのエンジニアリング組織では、この再帰化をさらに強化していくことを今年の目標として掲げています。 本研修では単に機械学習の知識を伝えるにとどまらず、機械学習と再帰化の関係性や機械学習による再帰化の実例を伝えることで、再帰化の実現方法としての機械学習について理解を深めてもらうことを狙いました。
カリキュラム
研修は3日間、1日あたり3時間の計9時間にわたって行いました。 日ごとに研修目的に沿ったゴールを設定し、以下のスケジュールで実施しました。
1日目
【ゴール】機械学習とは何か、自分の言葉で説明できる。
15:00-15:05 研修ガイダンス
15:05-15:25 機械学習イントロダクション(座学)
15:25-17:45 Machine Learning Crash Course(ハンズオン)
17:45-17:55 学んだことを各自まとめる
2日目
【ゴール】再帰化を実現するために、機械学習をどう活用できるかイメージできる。
15:00-15:05 研修についてのおさらい
15:05-17:00 Machine Learning Crash Course(ハンズオン)
17:10-17:40 再帰化と機械学習(座学)
17:40-17:55 学んだことを各自まとめる
3日目
【ゴール】サービスの実課題を機械学習で解決する一連の流れの例を挙げられる
15:00-15:05 研修についてのおさらい
15:05-16:45 Machine Learning Crash Course(ハンズオン)
16:55-17:45 機械学習のサービス連携事例紹介(座学)
17:45-18:00 学んだことを各自まとめる
研修資料はSpeakerDeckやGitHubにアップロードしています。
ここからは、それぞれのコンテンツについて紹介します。
Machine Learning Crash Course(ハンズオン、3日間に渡って実施)
Machine Learning Crash Courseは、機械学習を短期集中で学ぶコースとして、ソフトウェアエンジニア向けにGoogleが提供しているものです。
エンジニアが業務に機械学習を導入する意義を踏まえつつ、機械学習の基本的な理論やTensorFlowによる実装を学ぶことのできる教材になっています。
本研修の目的は再帰化の手段としての機械学習を学ぶことにありますが、そのためにまずは一般的な機械学習の知識を身につけてもらいたいと考え、このハンズオンを研修に取り入れることにしました。
また、ハンズオンによる理解を高めてもらうための工夫を3つ行いました。 1つ目の工夫はハンズオン取り組み中のリアルタイムなフィードバックです。 ハンズオン中に受講生の皆さんにSlackで分報をつけてもらうことで、自分の理解や疑問をこまめにアウトプットしてもらいました。 そのアウトプットに対して、講師陣がすぐさまコメントするという体制を取ることで、ハンズオンの内容の更なる理解を狙いました。 また、この体制を取ることで、ハンズオンの内容から発展した話題、例えば次元削減やクラスタリングについても紹介できたという効果もありました。
2つ目の工夫は専門用語の対訳集の作成と提供です。 ハンズオンは全て英語で記述されており、受講生が英語に不得手な場合は少しハードルの高さを感じさせてしまうかもしれない、かといって自動翻訳するにも専門用語が含まれていて誤解のない訳が難しいという懸念がありました。 そこで専門用語だけでも補足しようと、日本語訳や意味をまとめた用語集を作成し提供しました。
3つ目の工夫は日本語による座学で、以下に示すコンテンツとして実施しました。
機械学習イントロダクション(座学、1日目に実施)
ハンズオンの導入として、「機械学習イントロダクション」と題した座学を1日目の冒頭に実施しました。
Machine Learning Crash Courseは機械学習の知識を学ぶにはとても良い教材です。
しかし、前述の通り全て英語で記述されているため、受講生が英語に不得手な場合に「そもそも機械学習では何をしたいのか」「したいことをどう実現するのか」といった機械学習の基本的な考え方の理解に特に苦労するかもしれないと考えました。
そこで、この考え方を日本語で紹介する座学を実施しました。
この座学に関してはエンジニアリングの観点というより一般的な観点での機械学習のお話なので、エンジニアの方に限らず様々な方の参考になると嬉しいです。
再帰化と機械学習(座学、2日目に実施)
本研修のテーマである再帰化の実現方法としての機械学習について理解してもらうための座学を実施しました。 そもそも「再帰化」とは何か、再帰化を実現するためには何が必要か、そのために機械学習はどう活用できるかといった、再帰化と機械学習の関係についてお話しています。
機械学習のサービス連携事例紹介(座学、3日目に実施)
座学「再帰化と機械学習」では抽象的な考え方をお伝えしたので、より具体的・実践的な機械学習による再帰化の例を、データ基盤チームのデータサイエンティストである財津(@zaimy )とペパボ研究所の研究員である酒井(@tossy )から紹介しました。
zaimyからは、「BigQuery の日本語データを Dataflow と Vertex AI でトピックモデリング」と題して、Webサービスで推薦や検索に利用できるトピックモデリングの導入例について紹介しました。 内容の詳細についてはこちらのスライドでご覧いただけます。
また、tossyからはminneにおける作品の「特徴」ラベル自動付与の取り組みについて紹介しました。 minneではユーザが作品を検索する際に、作品の素材や形状といった作品が持つ「特徴」によって絞り込むことができます。 この「特徴」は作家自身によって作品を出品する際にラベル付けされるため、ラベルの漏れや誤りが生じやすい、まだ全ての作品には付与されていない、といった課題があります。 今回の取り組みでは、その対策として機械学習によるラベル自動付与の実現を目指しています。 こちらの詳細については9月に開催される情報処理学会関西支部大会で報告する予定です。
研修を終えて
例年と比べると、「再帰化」をテーマとして打ち出すという大きな変更点があり、個人的に本研修は挑戦的な試みでした。 しかしながら、受講生からは「研修目的をよく理解できた」「座学とリアルタイムでのフィードバックがあるハンズオンという形式でとてもわかりやすかった」といった良い反応があり、講師としてとても安心しました。 受講生の皆さんには本研修で学んだことを元に、これから配属先で再帰化をますます進めてもらえると嬉しいなと思っています。
また今回は新卒エンジニアに向けた研修でしたが、今後は新卒に限らず他のエンジニアの皆さんにも非同期で取り組んでいただけるような研修やチュートリアルも充実させていくなど、社内外に機械学習の知見をより活発に発信していければと考えています。
【PR】パートナー積極採用中!
ペパボ研究所では、新しいパートナーを求めています。詳細については、当研究所のトップページをご覧ください。