Machine Learning室の他のチームとは毛色が少し違う「DSP MLチーム」

樋村隆弘氏(以下、樋村):それではDSP MLチームを紹介したいと思います。

私はDSP MLチームのマネージャーを務めている樋村と申します。私からは簡単にDSP MLチームについて、どんなことやっているのか紹介したいと思います。よろしくお願いします。

DSP MLチームは、他のチームと同じくMachine Learning室に所属しています。2020年に発足した比較的新しいチームでして、現在メンバーは私を含めて4名が所属しています。

Machine Learning室は主に社内の各種サービスに機械学習を提供している組織ですが、DSP MLの業務はその中でちょっと毛色が違っていて、特定のサービスである「LINE広告」の改善に取り組むチームになっています。

LINE広告の機械学習における、いわゆるロジックの解析や、サーバーサイドまで幅広く面倒を見ている組織になります。

私たちのミッションはシンプルで「機械学習を通じてLINE広告の競争力・利益に貢献する」ことがミッションとなります。

LINE広告の改善に取り組む

簡単に「LINE広告」を紹介すると、その名のとおりコミュニケーションアプリ「LINE」に広告を配信するためのプラットフォームです。LINEアプリの月間のアクティブユーザーは国内でも8,900万人(2021年6月時点)を突破していまして、国内最大規模の広告配信プラットフォームです。

広告が出る面はこんな感じで、LINEのトップ画面やニュースタブなど、いろいろなところに出ているので、皆さまもきっとご覧になったことがあると思います。

私たちDSP MLチームは、その名のとおり、広告主サイドの広告配信プラットフォームであるDSPを機械学習によって改善しています。

LINEのDSPも、他に漏れずやはりリアルタイムで広告を配信しますので、レイテンシーが非常に厳しい中で、機械学習をしています。

LINEのDSP開発ですが、もともと主に韓国のLINE Plusに所属するMLチームが担当していまして、機械学習のロジックなどについても、そちらのチームが開発を行っていました。

2020年に私たちのチームが発足して以降は、韓国側のMLチームと私たちで協力しながら広告効果の改善に取り組んでいます。

DSPには、クリックやコンバージョンを最大化するためのさまざまな予測モデルがありますが、LINEのDSPモデル自体は、レイテンシーの制約が非常に厳しいこともありまして、主にFactorization Machineをベースにした、シンプルなモデルが用いられています。

2020年度のAdKDDで、LINE Plusのチームが、CVRモデルについて発表していたので、もし興味がある方は、そちらをご覧ください。

DSP MLチームでは、これらのモデル自体の改善や、特徴量の提供を主に行なっています。

LINEのDSPでは、ユーザーや、ADを始めとしたさまざまなフィーチャーを利用しています。先ほど冒頭でも説明があった「Z Feature」なども、このあたりで使っています。最近DSP MLチームでは、ユーザーとADを組み合わせた特徴量を開発していました。

こちらは既にリリースされていまして、本番で動いている状況です。そのままユーザーとADの組み合わせを入れると重たいので、ユーザーとAD、それぞれのembedding vectorを作っていて、そちらをオンラインで更新しています。この特徴量生成のために、イベントジョイナーなども含めてDSP MLチームで構築しています。

このシステムのパイプラインは、基本的にはKafkaやKubernetesを使って構築しています。

DSP MLチームに求められる技術スタック

DSP MLチームとして求められる技術スタックとしては、機械学習に加えて、サーバーサイドも担当していますので、そちらはJavaなどの経験がある程度あるとうれしいのと、あとKafkaやKubernetesなどについても、使ってみたことあるぐらいで大丈夫なので、そのあたりの知識があると非常にうれしいです。

こんな感じで、DSP MLチームは広告改善の効果に取り組んでいるチームです。広告効果を上げて、広告業界自体をよくしていきたいと思っています。

以上がDSP MLチームの紹介です。ご清聴ありがとうございました。

データと計算リソースの価値を最大化するMachine Learning Developmentチーム

タティヤーヌパンウォン・ウィット氏(以下、ウィット):はい、それでは次にMachine Learning Developmentチームを紹介します。私はマネージャーのウィットです。今日はよろしくお願いします。

今日は、Machine Learning Developmentチームのミッションと2つの事例を紹介したいと思います。これを聞いた後に、どんなものを作っているかをイメージしてもらえればうれしいです。さっそくミッションから説明します。

私たちのミッションは「LINEが持っているデータと計算リソースの価値を最大化する」ことです。LINEでは「ユーザーファースト」であることが重要なのですが、ここでのユーザーは、MLエンジニアとLINEの一般ユーザーを想定しています。MLエンジニアに対しても、作業効率が向上し、LINEの一般ユーザーに対してもMLのいいアウトプット、例えば推薦結果のアウトプットを、直接的な価値として提供しています。

ミッションを達成するために、3種類のタスクが分類されています。1つ目は、大規模データと計算リソース使ってMLアプリケーションを開発するためにサポートするPythonライブラリをLINEでは提供しています。

2つ目にAPIですが、よくあるMLタスクの共通化、またはシステムを連携するためのAPIを提供しています。

3つ目は新しい技術の検証ですが、例えばクライアントサイドのML、あるいはプライバシーを配慮したMLなどを検証して、いいものを上のPythonライブラリとAPIに反映するような仕事を進めています。今日は、1のライブラリと2のAPIについて、それぞれの事例を紹介したいと思います。

Machine Learning Developmentチームのgheemodels

まず1のライブラリのgheemodels(基本事例)ですが、簡単に言うと、scikit-learnというようなMLライブラリで、LINEの大規模データと計算リソースを簡単に活用できるかたちにしています。

解決したい問題定義があって、同じ技術課題に、何回も何回も時間かけて解決したくないので、一括でライブラリを使って解決しようとしています。

解決した技術課題は、Machine LearningパートとEngineeringパートそれぞれにありまして、Machine Learningパートでは、例えば共通のClassification問題や、推薦問題、DNNのベースとGraph Convolutionベース、あと共通な評価仕様などを実装しています。

一方Engineeringパートは、大規模データのハンドリングや、あと分散処理のようなエンジニアリング機能が入っています。

ざっくりしたシステム構成ですが、青色はEngineerパートで、大規模データの読み書き、あと分散処理する部分を効率よく行なっています。

一方Machine Learningパートは緑色の部分で、共通モデル、先ほど言ったようなClassificationとかリコメンデーションの実装パートになっています。詳細は、LINE DEVELOPER DAY 2020での発表がありますので、興味ある方は見ていただければと思います。

もう1つのAPIの事例紹介です。こちらはAutoRecommendationというものです。ここで解決したい課題は、レコメンデーションにおけるコールドスタート問題です。

例えば新しいサービス、新しいアイテムにはまだ行動ログはありませんが、それでもレコメンドしたい時などに、こういうシステムを使います。

Machine Learningパートは、こういったような2タワーというモデルで、左側はユーザーのニューラルネットワーク、右側はアイテムのニューラルネットワークです。

ユーザーのニューラルネットワークのインプットのフィーチャーは、LINEが持っているユーザーの属性など、いろいろなサービスの利用履歴を使っています。

一方アイテムのニューラルネットワークのインプットフィーチャーは、アイテムそのものの文字列や、画像などをフィーチャーとして使っています。

最後にエンベディングを計算して、シミュラリティを測って、レコメンドを作る、という流れとなっています。

一方、Engineeringパートは、こういったモデルを開発した後に、システム連携するために、アーキテクチャやアプリケーションを設計して実装する必要があります。また実装した後に、大量のトラフィックを捌けるように、また安定性を担保するために、CPUやメモリ、あとストレージをチューニングして、Machine Learning Infrastructureを、私たちと一緒に働く方たちと協力して、システムに組み込みます。

以上、事例紹介でした。このようなMachine LearningとEngineerの仕事に興味があり、かつコンピューターサイエンスのご経験をもち、Machine learningの経験も持っている方と一緒に働きたいと思っています。

もし興味ある方はご応募お待ちしています。一緒に学んで、ものを作ってユーザーを感動させましょう。ご清聴ありがとうございました。

サービスの価値向上をしていくMachine Learning Planningチーム

境美樹氏(以下、境):Machine Learning Planningチームのマネージャーをしています境と申します。本日はよろしくお願いいたします。ちょっとここまでの技術的な毛色よりは、若干営業的な雰囲気もありますが、説明を聞いてもらえるとうれしいです。

Machine Learning Planningチームのミッションからお話をいたします。Machine Learning Planningチームは、プロジェクトマネージャーとプロダクトマネージャーの2種類の職種があるんですが、私はどちらの役割もこなしているようなところがあって、その時々によって主軸が違うと思っていただければと思います。ですので、あまり役割にこだわらず、サービスと機械学習の出会いのナビゲーター的な役割をしています。

Machine Learning室には、たくさんの優秀なエンジニアもいますし、あといろいろなツールも作っていて、生産性も向上に務めてもいますので、それらをLINE内のサービスとつないで、LINEサービスの価値向上をしていくことを仕事としています。

その中で、ミッションを3つ細かくしてみると、1つ目は「つなぐ」。MLの活用によって事業価値向上するようなサービスと機械学習の橋渡しということで、私たちで「このサービスにこんなふうに入れてったらいいよね」と提案したり、あとは逆にヒアリングをして「こんなことができるとより売上があがるのではないか?」とか「ユーザーの利便性が向上するのではないか?」というあたりを要件定義し、スペックに落としていくことをします。

ミッションの2つ目として、プロダクトをきちんとリリースするように「完遂する」、というところがあります。これはいわゆるプロジェクトマネージャー的な仕事だったり、プロダクトマネージャーの仕事であって、中長期的な視点をもちつつ、開発管理や交渉をしつつ、質の高いアウトプットを出していくことです。

最後のミッション3が「継続していく」というところ。私たちは機械学習のサービスで出したらそのまま出しっぱなしといわけにはいかないので、それを継続的に、実際ユーザーがどのように反応しているのか? 売上に貢献しているのか? そういう観点で成果をモニタリングして、成果を最大化するところをやっています。やはりサービスとともに成長するところを重点を置いていると考えています。

実際のプロジェクトに関しては、これまでのエンジニアがかなり細かく紹介してくれていたので、ここでは割愛いたします。興味があれば後で質問してください。

Machine Learning Planningチームが求めるスキルセット

私たちのチームが求めるスキルセットに関しては、いろいろありますが、3つだけ挙げると、いわゆる開発マネジメント力みたいなもの。要するに要件定義して、そこから最後テストまで持っていく一通りの開発プロセスの経験があるといいと考えています。

2つ目は、私たちはMachine Learning室に所属する組織ですので、機械学習の知識も必要だと思っています。別に「自分でゴリゴリにモデルのチューニングができます」とか「DNNどんとこい」とか、そこまでできなくてもいいのですが、共通の言語として基本的な知識をもっていてくれると、エンジニアとのコミュニケーションが非常に円滑になると考えています。

もちろん、コンピューターサイエンス的な知識もあったり、モニタリングするためにはSQL書いたりすることもあるので、そういうところの知識もあるとベターだと思っています。

最後にコミュニケーションなのですが、エンジニアとだけ対話するわけではなく、LINEサービス内の各企画の担当だったり、あとはMachine Learning室以外のエンジニアとのコミュニケーションが非常に多く発生しているので、そういうところを重視して、ちゃんとコミュニケーションして、意思疎通していけるところ。基本的な話ではあるんですが、非常に重要だったりします。

最後に「機械学習でサービスのWOWを一緒に作りたい人集まれ!」ということで、2つのポジションを募集しています。先ほど言ったように、その時々で主軸が変わるっていう話はしましたが、応募する際には、どちらに主軸を置きたいかっていうところを考えながら応募していただければいいかな、と思っています。

例えばプロダクトマネージャーだと、MLを用いたシステムやプラットフォームの企画だったり、それらの事業部への提案、導入の推進といった活動をしていきます。

直近では、先ほどウィットさんが説明していたような、共通的なシステムのところのプロダクトのマネージメントをするような話があります。具体的なアーキテクチャなど実現方法はエンジニアの方で検討しますので、何を目指すプロダクトで最初に導入するところは? といった観点で進めていくところが主な仕事となります。

プロジェクトマネージャーは、MLを用いたシステムやプラットフォームの開発管理と、あとはリリースや導入した後のMLサービスの継続的な改善というところで、先ほどMachine Learning Solution1チームの発表で久保が話していたMLのモデル、リコメンドシステムを導入した後、実際にサービス改善できるよね、といったところを実際にやっていて、新しいモデルを作ってはABテストをして、さらに改善していくことをやっています。

ということで、ご清聴ありがとうございました。