VKデータサイエンティストが広告を効果的にする方法

昨年、VK PerformanceAdvertisingチームのチームリーダーであるArtemPopovをホストしました。放送と録音のトランスクリプトをあなたと共有します。








私の名前はアルテムです。VKのパフォーマンス広告の責任者です。私たちのチームは、一方で、VKでの広告をより効果的にし、広告主にとってより収益性が高く、ユーザーにとってより興味深いものにするという事実に取り組んでいます。これは大きな製品目標です。



一方、技術的には、私たちはMLエンジニアのチームであり、データサイエンスとMLに関連するタスクに多くの時間を費やすごく普通の開発者です。今日はこれらの2つのトピックについて話したいと思います。どちらも私にとって興味深いので、私はそれらについて話すのが大好きです。ライブコミュニケーションができることを強く望んでいます。誰かが放送を見ているなら、質問を書けばもっと面白いでしょう。



全体として、会話を2つのブロックに分けたいと思います。最初の記事では、データサイエンスとの交差点で広告で遭遇するさまざまなタスクについて説明します。つまり、MLスペシャリストにとって、データサイエンススペシャリストにとって、広告が興味深い分野になる理由です。一方で、エンジニアリングの歴史の中でMLをやっていた4年間で学んだエンジニアリングMLプロジェクトへの移行経験を共有したいと思います。そして、大企業で見られるものについて話しますが、それは別のコースでは議論されていません。大学やオンライン教育でデータサイエンスやMLを勉強しているときに習得するのが難しいスキルは何ですか。私は各トピックに30分を費やそうとします。



最初に、研究、科学、工学活動の分野としての広告、広告技術、計算広告、つまり知識の分野についてお話します。どのようなタスクがあり、NLPやその他の誇大宣伝があるのに、なぜそれらを実行するのが楽しいのですか。ただし、広告についてはあまり話題になりません。



全体的な課題は次のとおりです。一連の広告主がいます。彼らは彼らの製品、彼らのビジネスについての知識を促進したいどんなユーザーでもありえます。それらはすべて、独自の異なる目標を持っています。誰かが自分の広告をできるだけ多くの人に見せたいだけです。たとえば、条件付きコカコーラは、誰もが自分のブランドを知ってもらうという役割を担っています。そうすることで、誰もがそのような飲み物があること、今年は新年であることを思い出し、店に行くとこの飲み物以外の選択肢はありません。もう1つの良い例は妖精です:彼以外に他にいくつの洗剤を知っていますか?これはすべてブランド認知です。大規模な広告主は、特定の製品が頭の中に存在することを誰もが知っていることを確認するという目標を設定します。



他にも目標があります。たとえば、より適用された、いわゆるパフォーマンス目標。これは、広告主があなたに広告をフォローして行動を起こすことを望んでいるときです。たとえば、彼らはサイトに行き、ローンの申し込みを残しました。または、オンラインストアから何かを購入しました。等。

一般に、広告のタスクは、新しいユーザーをビジネスに呼び込み(いわゆるリード)、これらのユーザーに広告主にとって有用なことをさせ、ビジネスに利益をもたらすことです。



プラットフォームがあります。広告を表示できる場所です。 VKの場合、これはテープです。他のサイトの場合、これは、たとえば、バナーである可能性があります。このサイトの目的は広告からお金を稼ぐことです;それはお金のためにユーザーの注意を売ります。このおかげで、VKは無料のプロジェクトのままです。他の収益化モデルも考えられますが、広告モデルは同様のサービスでうまく機能します。



ユーザーは通常、広告を見たくありません。彼らはこのためにサービスに来ませんでした。しかし、広告契約はまさにこのように機能することがわかりました。ユーザーはサービスの使用に注意を払っています。したがって、広告ネットワークとしての私たちの目標は、ユーザーが怒らないようにすること、広告がユーザーを撃退したり怖がらせたりしないようにすることです。



広告がユーザーにとって有用であることが判明した場合、つまり、宣伝されたビジネスや投稿が通常のコンテンツと同じくらいユーザーにとって興味深いものであることが判明した場合、それは絶対にゴージャスです。これは一般的に完璧です。



ユーザー、広告主、サイトの3つの力があります。それぞれがその目標を達成するために、私たちはそれらの間のそのような相互作用を確立しなければなりません。想像してみてください。VKサービスにアクセスしてフィードを開くと、広告を挿入する場所が表示されます。このリソースを申請し、広告を正確に表示したい広告主はたくさんいますが、各ユーザーにいつでも表示する必要のある広告を選択するにはどうすればよいですか?



広告で積極的に使用されている標準的な方法は、オンラインオークションです。たとえば、実際の生活やEbayでさまざまなオークションオプションを見たことがあるかもしれません。それは、誰もが入札できる状況である可能性があります。あるユーザーは、「私は10ルーブルを賭け、別のユーザーは20ルーブルを賭け、3番目は100ルーブルを賭けます」と言います。ただし、インターネット環境で「より多く支払った、勝った」種類のオークションを実施することは現実的ではないため、クローズドオークションが使用されます。この場合、各参加者は黙って賭けをします。比喩的に言えば、賭けのあるすべての紙片が鍋に入れられ、誰かが来て、それらを分解し、最も多い数の紙片を見つけて、あなたが勝ったと言います。



たとえば、NikeとCoca-Colaの2つの広告主がいるとします。そのうちの1つは、ディスプレイごとに5コペックを支払う準備ができており、もう1つは-10です。もう一方が勝ち、ストーリーのさらなる展開はオークションの種類によって異なります。広告には主に2つのタイプがあります。1番目と2番目の価格のオークションです。ファーストプライスオークションでは、勝者は自分が指定した価格を支払います。たとえば、Coca-Colaは、他のユーザーの料金を確認せずに、「10コペックを支払います」と言います。オークションは言う-OK、10コペック。ナイキは「5コペック」と言い、コカコーラが勝ち、10コペックを支払います。



ただし、2番目の価格オークションもあります。この場合、勝者は他のすべての入札に勝つために必要な金額を正確に支払う必要があります。私たちの場合、たとえば、1コペックのステップを使用できます。状況を想像してみてください。同じコカコーラとナイキがやって来ます。コカコーラは「ショーに100ルーブルを支払う準備ができています」と言い、ナイキは「1コペックを支払う準備ができています」と言います。そして、コカコーラは、100ルーブルの代わりに2コペックを支払うことで勝った可能性があることを知って非常に腹を立てるでしょう。 2回目の価格オークションは、すべての参加者にとってより公平であると見なされます。



これに基づいて、特定のプロパティは、広告主にとって非常に重要であると見なされます。つまり、インプレッションに対して支払う意思のあるオークションで、常に正直な最高価格を提示することです。これは、有能な取引戦略を構築するために必要です。



最初の価格のオークションでは、狡猾な戦略を考え出す必要があります。ここでは、そのような広告主は多くの入札を行うことができますが、2番目の価格のオークションではこれは必要ありません。誰もが彼らが最大を支払うことをいとわない率を置きます。あなたが勝った場合、あなたはまったく同じ金額以下を支払います。そうでなければ、あなたはもっと支払う準備ができていませんでした。これは、このタイプのオークションの優れた特性であり、理論から広告システムでの広範な使用にまで広がっています。



しかし、そうではありませんでした。理論的な観点からは、セカンドプライスオークションは非常に優れており、その特性により非常に実用的であるように思われます。しかし実際、実際のシステムに直面すると、ファーストプライスオークションの人気を確実にするいくつかの要因があることがわかります-何らかの理由で、人々はセカンドプライスオークションよりもそれらを使用することを好みます。私が言いたい2つの主要なポイントの1つは、2番目の価格オークションが透明ではないということです。つまり、広告オークションが、あなたが何も知らないプラットフォームによって組織されている場合、つまり、広告主として参加しているだけの場合、(たとえば)10コペックの入札が勝ち、2番目の価格を支払う必要があることがわかります。 9コペック。この2番目の価格は不透明です。それがどこから来たのかは明らかではありません。一般的に、このサイトは、いわゆる偽の賭けをすることで、広告主を簡単に欺くことができます。追加の入札には公正なメカニズムもあります。たとえば、「逆価格」:特定のオークションを9コペック未満で販売できないことを宣言すると、そのような正直な入札が表示されます。しかし、透明性は非常に重要であり、透明性の欠如は広告主を失望させます。広告システムの内部で何が起こっているのかわからない場合は、もう一度いくつかの戦略を考え出す必要があります。支払う意思のある価格だけを設定するというアプローチを採用して使用することはできません。そして、その不在は広告主をオフにします。広告システムの内部で何が起こっているのかわからない場合は、もう一度いくつかの戦略を考え出す必要があります。支払う意思のある価格だけを設定するというアプローチを採用して使用することはできません。そして、その不在は広告主をオフにします。広告システムの内部で何が起こっているのかわからない場合は、もう一度いくつかの戦略を考え出す必要があります。支払う意思のある価格だけを設定するというアプローチを採用して使用することはできません。



2つ目のポイントは、2番目の価格のオークションは、一度に1つのオークションしか行われない理想的な設定でうまく機能することです。実際の広告システムでは、従来、1秒あたり数百万が発生します。このような状況では、すでに戦略を立てる必要があり、広告主は常にオークションで完璧な取引を行うためのシンプルで既成の戦略を持っているという考えは崩壊します。



オークションを設計するタスクを背景に発生する瞬間、つまり、オークションをより面白く、より便利に設計する方法などについてお話ししたいと思います。 2点申し上げます。第一に、オークションでは、すべてが最大値、つまり広告ネットワークがスペースを販売することによって獲得する最大金額に基づいて行われるべきであるように思われます。ただし、実際には、オークションで販売される価値は、広告主が支払う意思のある金額だけでなく、サイトに対してさまざまな方法で表現できます。たとえば、ユーザーが私たちの広告に腹を立てないことが私たちにとって非常に重要です-それが彼らにとって有用であることが望ましいです。オークションを設計するタスクの一部として、広告をランク付けするための追加のメトリックを考え出す必要があります。期待される利益、ユーザーの否定的な反応の可能性など、いくつかの指標が取得されます。



問題の2番目の変形は、「貪欲でない」オークションです。この場合、私たちは広告ネットワークとして、常に勝者に広告スペースを販売するわけではなく、すべての広告予算を最大化するようにすべての広告主に分配し、一部を残しておくと、より多くの収入を得ることができると理解しています。その後、オークションで正直。つまり、複数の広告主がいて、そのうちの1つが他の広告主よりも裕福で、常にオークションを購入している場合、必ずしも彼に勝者の入札を与えるべきではないかもしれません。そのような「ナップサックの問題」-そのような歴史があれば、プログラミングやデータ構造アルゴリズムのコースの問題を覚えているかもしれません。これは非常にクールな作業であり、それを行うことは非常に興味深いことであり、それには科学的な記事があります。



VKでは、このタスクに取り掛かっています。私たちにはたくさんのタスクがあり、広告にあるタスクの別の大部分はすでにMLに近づいています。広告主のさまざまな目標を達成する必要があるため、この知識をオークションの入札戦略の形成に使用するには、ユーザーがこれまたはそのアクションを実行する確率を予測する必要があります。



つまり、広告主は次のように言っています。自分の店でできるだけ多くの購入をして、予算をできるだけ使いたいと思っています。私たちは、広告プラットフォームとして、ストアで何かを購入する可能性が最も高いユーザーを強調する方法を検討しています。典型的なMLの問題が発生します。バイナリ分類:「1」-ユーザーが広告をクリックして何か良いことをした(購入した)、「0」-ユーザーは広告を無視した。この問題に基づいて、バイナリ分類を構築する必要があります。出力では、オークションで使用する入札のさらなる計算の一部として、有用なイベントの確率を使用します。このタスクは、MLの観点からは非常に些細なことのように聞こえます。たとえば、それを実行します。しかし、実際には、そのようなタスクには多くの困難があります。いくつかについて説明します。主なものはその広告は通常、高負荷のプロジェクトです。データと負荷の両方の観点から。リクエストに非常に迅速に応答する必要があります。ウィンドウは、たとえば100ミリ秒です。応答するには時間が必要です。これに基づいて、広告を予測するために使用するモデルが機能する方法、具体的にはエンジニアリングにおいて、特定の制限が課せられます。あなたはたくさんのクールなものを思いつき、いくつかのレイヤーを通して、機能間の非線形相互作用を強調する複雑なニューラルネットワークを作ることができますが、人生ではこれらすべてが非常に迅速に機能することが必要です。これを使用して広告を予測します。あなたはたくさんのクールなことを思いつき、いくつかの層を通して、特徴間の非線形相互作用を強調する複雑なニューラルネットワークを作ることができますが、人生ではこれらすべてが非常に迅速に機能することが必要です。これを使用して広告を予測します。あなたはたくさんのクールなことを思いつき、いくつかの層を通して、特徴間の非線形相互作用を強調する複雑なニューラルネットワークを作ることができますが、人生ではこれらすべてが非常に迅速に機能することが必要です。



大量のデータでトレーニングされています。このタスクは、テラバイトのデータセットを使用する大規模なものであることが判明しました。これに基づいて、通常、分散コンピューティング、分散モデルトレーニングなどを実行し、どのモデルを使用するかを検討する必要があります。広告は伝統的に、ロジスティック回帰や勾配ブーストなどの線形モデルを使用します。時々彼らは因数分解機のようなより涼しいものに切り替えます。つまり、モデルの選択肢は多いですが、負荷が大きいため、通常はかなり単純なモデルが使用されます。



MLに近いもう1つのポイントは、フィードバックに関して非常に不均衡なデータを使用することです。 10,000個のゼロごとに1つのユニットがあります。これらの条件下でMLマシンをトレーニングする方法は良い質問です。さまざまなトリックを使用する必要があります。主なものは、正確には問題の定式化です。たとえば、クリック(購入)があるかどうかを予測しようとせず、確率に関連するアプローチを使用したり、カーディナリティの低いデータを最大限に平滑化したりします。多くのことを考えることができますが、難しいのは、タスクでポジティブなイベントがめったに発生しないことです。



広告をクリックして何かを購入するとき、必ずしもすぐにそれを行うとは限りません。つまり、広告主が望んでいるターゲットイベントは、非常に多くの場合、長い遅延で発生します。これは購入だけではありません。たとえば、ゲームに登録してキャラクターをレベル10に引き上げたり、ローンの申し込みを承認したりできます。これらのことは数日で起こる可能性があります。そして、モデルをトレーニングする必要がある場合、広告によれば、ユーザーは今すぐ何かをするだろうと言うべきですが、実際には、何かが起こってから数日後に肯定的なフィードバックを受け取ります。追加の問題。これらの問題に対処するために、科学と実践で出てきたいくつかの異なる解決策があります。そのような面白い複雑さ。



別のポイント:ユーザーが特定の製品の広告を見ると、さまざまなマーケティングチャネルからそれらに接触する可能性があります。たとえば、あなたは通りに出ました-あなたは看板「TaxiVKontakte」を見ました。フィードをめくり始めました-「TaxiVKontakte」の広告もあり、別のサービスに行きました-また、広告サービスYandexまたはGoogleからの「TaxiVKontakte」の広告もあります。あなたは言う-はい、私はすでに理解しています、アプリケーションを入れてください。そしてその後、Yandex、VK、Google、ビルボードは、このプロセスへの参加者(広告主にとって有用なアクション)が何パーセントであるかを把握する必要があります。



このプロセスは「アトリビューション」と呼ばれます。広告主とのどの連絡先を割り当てるかという問題は、ターゲットを絞ったアクションを実行するという決定に大きな影響を与えました。通常、単純なモデルが使用されます。たとえば、「ラストクリックアトリビューション」:最後にクリックした広告がすべての賞品を獲得します。しかし、その後、最初の「コールドコンタクト」に従事することは不採算であることが判明しました-製品に精通していないユーザーに広告を表示します。これに基づいて、インプレッションからの利益をより適切に分配できるようにするさまざまなMLモデル(を含む)があります。彼らは、とりわけ、注意タイプのチップ、ニューラルネットワークからのいくつかのより興味深いものを使用します。クールなタスク。そして、その目標は、最終的には、オークションでより良く、より正確に、より正確に交渉することなどです。



誰が最終的な購入決定に影響を与えたかをよく理解すればするほど、特定の瞬間にどれだけの量を提供するかをよく理解できます。その結果、業界全体が、何かを購入する可能性の予測を扱うことは、購入決定への影響の程度のアイデアを扱うよりも効果が低いという認識に向かっています。おそらく、あなたはあなたが訪れたボードゲームを購入する準備ができていたのでしょう。しかし、オンライン広告は追いつき始めています。とにかくこのゲームを購入することを誰もが最初に決定し、追加の広告は必要ない場合、おそらくこの広告は存在しなかったでしょう-あなたはすでにあなたの決定をしました。 「インクリメンタリティテスト」という用語を思い浮かべますが、それでも「因果推論」のMLドメインと関係があります。つまり、ターゲットアクションを実行する確率を予測するタスクから、影響を予測するタスクに移行しています。つまり、広告を見た後に購入する可能性の差から、すでに購入したものを差し引いたもの。これは非常にクールな移行でもあり、作業方法、いくつかのイベントを予測する方法の新しいアイデアへの移行です。



一般に、広告には多くのタスクがあり、それらのほとんどすべては、広告主のタスクを実行したいという最初の願望から続きます。 「自分の店でできるだけ多くの購入をしたい」という目標は、すべての広告主がインプレッションのためにオークションでカットされるため、オークションでの一連の入札になります。これは戦略です。そして、当初の目標から一連の賭けへの最もクールな移行を行う必要があります。これは、ユーザーの行動を理解し、商業的関心を抽出し、広告を自動的にターゲティングし、クリエイティブを収集する(これが広告の外観です)などの欲求を意味します。



誰かがこれについてもっと知りたいと思ったら、私はミートアップで話をします。そこでは、データサイエンティストが広告で何ができるか、そしてなぜそれに取り組むことが面白いのかについて詳しく話します。それは私にとって発見であることがわかりました。当初、私が最初に業界に参入したとき、私は考えました-まあ、広告、何が面白いのか。 1年目、2年目、3年目が過ぎました。そして、クールなタスクがいくつあるか、そしてエンジニアの観点からそれを行うことがどれほど面白いかを実感しました。



次に、本番環境のMLに移ります。これで、機械学習のコースを受講するか、大学で勉強しました。たとえば、あなたは優れたKegelスペシャリストであり、競争でのクリックデータ分析タスクは素晴らしいものです。あなたは、大きな製品が繰り返し一貫して開発されている実際の会社に来ます。そして、ここでいくつかの廃棄が発生します。業界に参入した時点で、所有したいスキルがあまりないことがわかりました。誰もあなたにこれを教えたり、それが実際にどのように機能するかを説明したりしませんでした。業界の難しさ、明確な定式化で問題を解決することの違いは何ですか。プログラミングの分野でこれについてまだ多くのことが言われているのであれば、データサイエンスの分野ではそれだけでは十分ではありません。



同じ製品に長い間取り組んできた製品チームの新規参入者は、たとえばVK広告を効果的にするなど、どのような困難に直面しますか?「初心者」とは、私自身を意味します。私はこれを4年間行っていますが、まだ初心者のように感じています。これは非常に複雑なことであり、理解するのは興味深いことです。

私が言いたい最初のポイントは、科学に見られるいくつかのクールな進歩的な方法で既存のタスクをすぐに開始したいという願望です。すべてを一度にクールにする宇宙船を考え出すことを望んでいます。実生活では、製品開発の分野では、データサイエンスは、どの方法が最終的に機能するかをほとんど予測できない場所です。問題を解決する方法がわからないため、元の製品要件を処理することは非常に困難です。



タスクの定式化があります。たとえば、いくつかの初期の問題を解決する自動モデレーションシステムを作成します。あなたは実行して、タスクが完全に解決されたいくつかのスーパートップの記事を見つけることができます、トランスを巻き上げます。または、特定の広告主を以前に承認した回数を確認する簡単なヒューリスティックを作成し、この数のシェアを取り、たとえば70%と比較して、次のように言うことができます。これは以前に承認されたことが多いです。そのようなことはすぐにビジネスを大いに助け、有用な情報をもたらすことができます。そして、複雑なシステムには長い時間がかかり、それが報われるのは事実ではありません。データサイエンスでは、このアイデアに非常に迅速に到達する必要があります。常に仮説のモードで作業し、何が機能するかわからないため、リスクを軽減し、最終的なユーザーとビジネスにできるだけ早く価値を提供するために、単純なソリューションから複雑なソリューションまで、タスクを処理する必要があります。多くの場合、MLを使用せずに、ヒューリスティックから始めて学習するために、そのデータがない場合があります。これは、神経モデルの回転に関心のあるデータ科学者を悩ませることがあります。しかし、これがないと、最初のベースラインを取得できません。これは、開始できる小さなステップです。まったく機能しないことを非常に長い間行うことができます。



業界で最も困難で珍しい仕事は、モデルを作成し、それを生産に投入した後、その寿命が始まったばかりであるということです。積極的にサポートし、変更する必要があります。モデルでは、彼女が生きている間、さまざまな変化があります。まず、スキューを提供するトレーニングなどがあります。



簡単な方法:モデルが特定のデータ、またはモデルが解決する必要のある一連の一般的なタスクのセットで本番環境で機能し、他の方法で取得された他のデータでトレーニングされた場合、この時点でエラーが発生することが多く、モデルの機能が低下し始めます。理想的には、分析中および初期準備中のモデルが、本番環境で機能するのと同じデータでトレーニングされるシステムを構築する必要があります。



第2に、いつでも一部の機能またはモデル自体が正しく機能しなくなり、不適切に動作し始める可能性があります。特性を格納するリポジトリがあります。ゼロの代わりに何かが変更され、「-1」の代わりにnullが流れ始め、他の値が返され始めました。または、これらの値を分数ではなくパーセンテージであると考えたため、誰かがこれらの値に100を掛けました。そして、あなたのモデルは突然誤動作し始めます。どういうわけかこれらの変更に気付く必要があります。 MLモデルの最もクールな品質は、サイレントエラーです。彼女は何かがうまくいかなかったとは決して言いません-あなたが彼女に与えたものに応じて、彼女は常に何らかの結果を出します。ガベージイン、ガベージアウト。これはどういうわけか監視する必要があります。これに基づいて、モデルが本番環境で実行されている間、追跡する必要のあるものが大量にあります。あなたは監視システムを構築する必要があります、監視、機能の分布があまり変わらないようにするなどです。モデルはいつでも完全なゲームを提供でき、どういうわけかこれらの条件で生きることができることを理解する必要があります。これらの結果がユーザーから直接お金を引き出す場合はどうなりますか?広告オークションへの入札、取引所での取引など。これを行うには多くの方法がありますが、最初にそれについて考えることが重要です。



これに基づいて、モデルを繰り返し開発する必要がある環境に入ったデータサイエンティストの生活はどのように変化しますか?あなたは最初に優れたエンジニアであり、次に優れた研究者である必要があるように私には思えます。コードと結論、調査と分析中に得られる洞察、モデル(データサイエンティストの作業の結果であるすべてのもの)は、2回または10回使用されることはありません。多くの人が、実験がどのように構築され、結果がどのように得られるか、なぜ、どこで、どのように機能し、それが生産でどのように使用されるかを見ていきます。したがって、ゼロから業界にやってくる人々、たとえば大学から、データサイエンス、分析、またはMLのトピックに夢中になっている人々に最も欠けているのは、エンジニアリングスキルです。まず第一に、データサイエンティストは開発者のサブタイプです。彼はまた、コードを扱い、人々が使用する変更可能な環境で本番環境で機能するものも扱います。彼らはあなたのコードを読みます。効果的で、十分にサポートされ、テスト可能なソリューションを考え出す必要があります。これは多くの候補者に欠けている部分です。したがって、データサイエンスの初心者の場合は、開発者のスキルに十分注意してください。効率的で、理解しやすく、手入れの行き届いたコードを書く方法。データ交換プロセスを効果的に構築するためのエンジニアリングソリューション。これはすべてあなたのキャリアに大いに役立ちます。多くの候補者が不足しています。したがって、データサイエンスの初心者の場合は、開発者のスキルに十分注意してください。効率的で、理解しやすく、手入れの行き届いたコードを書く方法。データ交換プロセスを効果的に構築するためのエンジニアリングソリューション。これはすべてあなたのキャリアに大いに役立ちます。多くの候補者が不足しています。したがって、データサイエンスの初心者の場合は、開発者のスキルに十分注意してください。効率的で、理解しやすく、手入れの行き届いたコードを書く方法。データ交換プロセスを効果的に構築するためのエンジニアリングソリューション。これはすべてあなたのキャリアに大いに役立ちます。



クールなデータサイエンティストと仕事に熱心なサイエンティストを区別する2つ目のヒントは、製品のコンテキストとモデル環境のエンジニアリング部分に没頭することです。モデルを開発しているとしましょう。データサイエンティストとして、次のように言うのは簡単です。「私の仕事はモデルを開発することです。それ以外はすべて私の責任の範囲外です。私はモデルを教えています、それが私の仕事です。バックエンドがそれらを埋め込み、データエンジニアがデータを準備し、テスターがそれをテストし、製品マネージャーがその使用方法を決定します。」しかし、モデルをよりクールでより価値のあるものにするための膨大な数の影響と方法は、モデル自体の設計プロセスを超えています。例:検索結果をランク付けしている場合、外部からのドキュメントをランク付けしています。ある種の候補者の選択があります。この選択がどのように機能するかを知っていれば、簡単に理解できます作業のボトルネックは、モデルがうまく機能しないことではなく、正しくない、面白くない、不完全なドキュメントが入力に送信されることです。一方、製品でモデルが特定の状況下で希望どおりに機能しないことがわかっているが、これを改善するのが非常に難しい場合は、モデルの製品を変更できます。これで、製品の配置が異なり、モデルを呼び出すのはユーザーではなく、モデルは、ユーザーが従うことができないいくつかのパラメーターを調整するある種の自動ツールを呼び出します。モデルの製品を変更することはできますが、その逆はできません。これらの分野に没頭している場合は、データサイエンティストおよびMLエンジニアとして、製品とユーザーに莫大な利益と利益をもたらすことができます。モデルはうまく機能しませんが、正しくない、面白くない、不完全なドキュメントが入力のために送信されます。一方、製品でモデルが特定の状況下で希望どおりに機能しないことがわかっているが、これを改善するのが非常に難しい場合は、モデルの製品を変更できます。これで、製品の配置が異なり、モデルを呼び出すのはユーザーではなく、モデルは、ユーザーが従うことができないいくつかのパラメーターを調整するある種の自動ツールを呼び出します。モデルの製品を変更することはできますが、その逆はできません。これらの分野に没頭している場合は、データサイエンティストおよびMLエンジニアとして、製品とユーザーに莫大な利益と利益をもたらすことができます。モデルはうまく機能しませんが、正しくない、面白くない、不完全なドキュメントが入力のために送信されます。一方、製品でモデルが特定の状況下で希望とは異なる動作をする可能性があることがわかっているが、この動作を改善することは非常に難しい場合は、モデルの製品を変更できます。これで、製品の配置が異なり、モデルを呼び出すのはユーザーではなく、モデルは、ユーザーが従うことができないいくつかのパラメーターを調整するある種の自動ツールを呼び出します。モデルの製品を変更することはできますが、その逆はできません。これらの分野に没頭している場合は、データサイエンティストおよびMLエンジニアとして、製品とユーザーに莫大な利益と利益をもたらすことができます。不完全なドキュメント。一方、製品でモデルが特定の状況下で希望どおりに機能しないことがわかっているが、これを改善するのが非常に難しい場合は、モデルの製品を変更できます。これで、製品の配置が異なり、モデルを呼び出すのはユーザーではなく、モデルは、ユーザーが従うことができないいくつかのパラメーターを調整するある種の自動ツールを呼び出します。モデルの製品を変更することはできますが、その逆はできません。これらの分野に没頭している場合は、データサイエンティストおよびMLエンジニアとして、製品とユーザーに莫大な利益と利益をもたらすことができます。不完全なドキュメント。一方、製品でモデルが特定の状況下で希望どおりに機能しない可能性があることがわかっているが、これを改善するのが非常に難しい場合は、モデルの製品を変更できます。これで、製品の配置が異なり、モデルを呼び出すのはユーザーではなく、モデルは、ユーザーが従うことができないいくつかのパラメーターを調整するある種の自動ツールを呼び出します。モデルの製品を変更することはできますが、その逆はできません。これらの分野に没頭している場合は、データサイエンティストおよびMLエンジニアとして、製品とユーザーに莫大な利益と利益をもたらすことができます。私たちが望むように、しかしこれをより良くすることは非常に難しいので、あなたはモデルのために製品を変えることができます。これで、製品の配置が異なり、モデルを呼び出すのはユーザーではなく、モデルは、ユーザーが従うことができないいくつかのパラメーターを調整するある種の自動ツールを呼び出します。モデルの製品を変更することはできますが、その逆はできません。これらの分野に没頭している場合は、データサイエンティストおよびMLエンジニアとして、製品とユーザーに莫大な利益と利益をもたらすことができます。私たちが望むように、しかしこれをより良くすることは非常に難しいので、あなたはモデルのために製品を変えることができます。これで、製品の配置が異なり、モデルを呼び出すのはユーザーではなく、モデルは、ユーザーが従うことができないいくつかのパラメーターを調整するある種の自動ツールを呼び出します。モデルの製品を変更することはできますが、その逆はできません。これらの分野に没頭している場合は、データサイエンティストおよびMLエンジニアとして、製品とユーザーに莫大な利益と利益をもたらすことができます。ユーザーがフォローできないもの。モデルの製品を変更することはできますが、その逆はできません。これらの分野に没頭している場合は、データサイエンティストおよびMLエンジニアとして、製品とユーザーに莫大な利益と利益をもたらすことができます。ユーザーがフォローできないもの。モデルの製品を変更することはできますが、その逆はできません。これらの分野に没頭している場合は、データサイエンティストおよびMLエンジニアとして、製品とユーザーに莫大な利益と利益をもたらすことができます。



MLは憶測の領域であるという質問に戻ります。優れた製品を思いつく方法がわからないため、最終的な解決策までさまざまな方法を試す必要があります。したがって、ワークフローを少し異なる方法で構築する必要があります。多くの場合、人々、特にキャリア開発の初期のエンジニアは、あらゆる種類の管理チップ(SCRUM、Agile)はすべてでたらめであり、機能しないと考えています。ただし、間違ったコンテキストで使用されているため、実際には機能しないことがよくあります。たとえば、SCRUMデータサイエンスチームに参加したことがあるとしたら、それは大変で苦痛になります。突然、研究の予測が難しくなり、どのように結果が得られるかわからないことが判明しましたが、ここでは、2週間の繰り返し、一般的に、管理によって不要なゴミが生成されます。作業プロセス、その中であなたが働くことはあなたを助けるべきであり、妨げないべきです。つまり、データサイエンスが従来のソフトウェア開発の手法を採用して適用する場合、それが常に効果的であるとは限りません。



したがって、個別に言いたいのですが、データサイエンティストとして働いていて、さまざまな人々(顧客、同僚、職場での協力)とやり取りする必要がある場合は、共同プロセス、自己組織化されたチーム活動をより適切に構築する方法を理解するのがよいでしょう。これを行う方法を理解する良い方法は、LeanDSと呼ばれるコミュニティに行くことです。製品開発環境でML問題に取り組むプロセスをより良く構築する方法を理解することに興味を持っているそのような人々が集まりました。そこから、人々がすでに思いついた多くのクールなことを学ぶことができ、さまざまな専門家がさまざまな会社で使用しています。そして、私がアドバイスすることから、まず第一に、製品の仮説を通してすべてのタスクを定式化するときにアプローチに切り替える必要があります。わからないときこれは結果をもたらしますが、あなたはそれを理解します:私はそのようなものがユーザータスクを促進するのに役立つと思います、そしてメトリックをポンプし、そしてそのような時にそれをチェックすることができます。このような仮説は、はるかに扱いやすいものです。このような理解できない作業の流れに基づいて、タスクにかかる時間、結果が得られる時期、およびどのように、Kanbanは非常にうまく機能するかを予測することは非常に困難です。私はこれについて長い間話すつもりはありません、私はただアドバイスします:LeanDSコミュニティを見てみてください。彼らの資料をチェックしてください。データサイエンスで働いていて、従来の開発から移行したプロセスに直面しているすべての人は、何が違うのか、そしてプロセスをどのように活用するのかを理解することに興味があると思います。そのようなことは、ユーザータスク、ポンプメトリックを促進するのに役立ち、そのようなときにそれをチェックすることができます。このような仮説は、はるかに扱いやすいものです。このような理解できない作業の流れに基づいて、タスクにかかる時間、結果が得られる時期、およびどのように、Kanbanは非常にうまく機能するかを予測することは非常に困難です。私はこれについて長い間話すつもりはありません、私はただアドバイスします:LeanDSコミュニティを見てみてください。彼らの資料をチェックしてください。データサイエンスで働いていて、従来の開発から移行したプロセスに直面しているすべての人は、何が違うのか、そしてプロセスをどのように活用するのかを理解することに興味があると思います。そのようなことは、ユーザータスク、ポンプメトリックを促進するのに役立ち、そのようなときにそれをチェックすることができます。このような仮説は、はるかに扱いやすいものです。このような理解できない作業の流れに基づいて、タスクにかかる時間、結果が得られる時期、およびどのように、Kanbanは非常にうまく機能するかを予測することは非常に困難です。私はこれについて長い間話すつもりはありません、私はただアドバイスします:LeanDSコミュニティを見てみてください。彼らの資料をチェックしてください。データサイエンスで働いていて、従来の開発から移行したプロセスに直面しているすべての人は、何が違うのか、そしてプロセスをどのように活用するのかを理解することに興味があると思います。このような仮説は、はるかに扱いやすいものです。このような理解できない作業の流れに基づいて、タスクにかかる時間、結果が得られる時期、およびどのように、Kanbanは非常にうまく機能するかを予測することは非常に困難です。私はこれについて長い間話すつもりはありません、私はただアドバイスします:LeanDSコミュニティを見てみてください。彼らの資料をチェックしてください。データサイエンスで働いていて、従来の開発から移行したプロセスに直面しているすべての人は、何が違うのか、そしてプロセスをどのように活用するのかを理解することに興味があると思います。このような仮説は、はるかに扱いやすいものです。このような理解できない作業の流れに基づいて、タスクにかかる時間、結果が得られる時期、およびどのように、Kanbanは非常にうまく機能するかを予測することは非常に困難です。私はこれについて長い間話すつもりはありません、私はただアドバイスします:LeanDSコミュニティを見てみてください。彼らの資料をチェックしてください。データサイエンスで働いていて、従来の開発から移行したプロセスに直面しているすべての人は、何が違うのか、そしてプロセスをどのように活用するのかを理解することに興味があると思います。ヒント:LeanDSコミュニティを見てみてください。彼らの資料をチェックしてください。データサイエンスで働いていて、従来の開発から移行したプロセスに直面しているすべての人は、何が違うのか、そしてプロセスをどのように活用するのかを理解することに興味があると思います。ヒント:LeanDSコミュニティを見てみてください。彼らの資料をチェックしてください。データサイエンスで働いていて、通常の開発から移行したプロセスに直面している人は誰でも、何が違うのか、そしてプロセスをどのように活用するのかを理解することに興味があると思います。



その結果、キャリアの開始時にデータサイエンスのタスクを実行するためにやってくる人たちに欠けているものと、スペシャリストとしてクールになり、好きな場所で就職するチャンスを増やす方法について説明します。



まず、前にも言ったように、データサイエンティストにとってエンジニアリングスキルは非常に重要です。 ML、データ分析、確率論などに関連するスキル以上のもの。まず第一に、私はあなたがクールなエンジニアであり、第二に開発者であることを望みます。第二に、多くの人々は、ビジネス上の問題をデータサイエンスの問題に再定式化する明確なスキルを欠いています。これは別のスキルです。これは、顧客があなたに何を望んでいるのかを正確に理解する必要がある状況です。まあ、それを何かクールに機能させたい人と呼びましょう。自動モデレートの例に戻ります。彼は正確に何を望んでいますか?結局のところ、自動モデレートのタスクは、システムでより適切に実行したいさまざまな特定の方法で、非常にさまざまな方法で設定できます。タスクに基づいて、データサイエンスタスクはさまざまな方法で定式化されます。データサイエンスの問題に基づいて、最適化されたメトリックはさまざまな方法で定式化されます。データセットの選択、品質の評価などの方法。このスキルは、すべてのデータ科学者にとって非常に価値があります。モデレーターが、広告が適切かどうか、または特定のトピックで禁止する必要があるかどうかを確認するための処理タスクのフローに対処できないと顧客が言ったとします。次に、禁止にはさまざまな理由があることがわかります。モデレート中に、広告主が広告を修正できるように、それらを明確に説明する必要があります。これに基づいて、理由を説明するテキストを生成するある種のマルチクラス分類を行う必要があると判断し、タスクは非常に困難になります。しかし待ってください-多分問題は別の方法で再定式化されるかもしれません。そして、広告を拒否するのではなく、適切な広告を選択することに集中できることがわかりました。広告が良ければ、スキップできます。悪い場合は、ライブモデレーターに渡すことができ、説明を生成する必要はありません。これに基づいて、あなたは理解します:あなたが良いもの、スキップできるものに集中する必要があるなら、あなたはこのビジネスを管理する方法を理解する必要があります-あなたのシステムを通過するこの広告の流れ。ご存知のとおり、このタスクに基づいて、自分に合った指標としてROC AUCを選択できます。これは、モデルの精度と、システムを自動的に通過する広告の数との関係をよく表しています。等。つまり、条件付きの顧客とスペシャリストとしてのあなたとの間のこの対話に基づいて、ビジネスタスクをデータサイエンスタスクに再定式化する方法を十分に理解して、タスクを大幅に簡素化できます。あなたが理解していること:あなたが何が良いか、何がスキップできるかに焦点を合わせる必要があるなら、あなたはこのビジネスを管理する方法を理解する必要があります-あなたのシステムを通過するこの広告の流れ。ご存知のとおり、この問題に基づいて、自分に合った指標としてROC AUCを選択できます。これは、モデルの精度と、システムを自動的に通過する広告の数との関係をよく表しています。等。つまり、条件付きの顧客とスペシャリストとしてのあなたとの間のこの対話に基づいて、ビジネスタスクをデータサイエンスタスクに再定式化する方法を十分に理解して、タスクを大幅に簡素化できます。あなたが理解していること:あなたが何が良いか、何がスキップできるかに焦点を合わせる必要があるなら、あなたはこのビジネスを管理する方法を理解する必要があります-あなたのシステムを通過するこの広告の流れ。ご存知のとおり、このタスクに基づいて、自分に合った指標としてROC AUCを選択できます。これは、モデルの精度と、システムを自動的に通過する広告の数との関係をよく表しています。等。つまり、条件付きの顧客とスペシャリストとしてのあなたとの間のこの対話に基づいて、ビジネスタスクをデータサイエンスタスクに再定式化する方法を十分に理解して、タスクを大幅に簡素化できます。ご存知のとおり、このタスクに基づいて、自分に合った指標としてROC AUCを選択できます。これは、モデルの精度と、システムを自動的に通過する広告の数との関係をよく表しています。等。つまり、条件付きの顧客とスペシャリストとしてのあなたとの間のこの対話に基づいて、ビジネスタスクをデータサイエンスタスクに再定式化する方法を十分に理解して、タスクを大幅に簡素化できます。ご存知のとおり、このタスクに基づいて、自分に合った指標としてROC AUCを選択できます。これは、モデルの精度と、システムを自動的に通過する広告の数との関係をよく表しています。等。つまり、条件付きの顧客とスペシャリストとしてのあなたとの間のこの対話に基づいて、ビジネスタスクをデータサイエンスタスクに再定式化する方法を十分に理解して、タスクを大幅に簡素化できます。ビジネス上の問題をデータサイエンスの問題に再定式化する方法。ビジネス上の問題をデータサイエンスの問題に再定式化する方法。



私はあなたに大いに役立つもう一つのことについてお話ししたいと思います。開発中のモデルに機能の形で渡されている特定の信号と、それらを処理する方法を理解しています。これは、ML開発チームの能力の範囲内に直接入るスキルです。何らかの理由で、私の経験では、多くの候補者が「MLはすべてを食べる」というアプローチに固執します。誇張していますが、一般的に、使用している看板には、伝えようと思っていた情報ではなく、伝えた情報が正確に伝わっていることをはっきりと理解できれば、とてもクールです。



たとえば、広告に対するユーザーの反応性の良い指標はクリックスルー率であると判断したとします。つまり、全体で表示された広告の数と広告のクリック数を取得し、一方を他方で除算して、ユーザーインジケーターを取得します。あるケースでは、ユーザーは広告をクリックするのが好きだと言い、別のケースでは、まったくクリックしないと言います。そして、この数値をモデルに渡します-勾配ブーストまたは線形回帰。次に、考えが生じる可能性があります。モデルには、統計が多いユーザーと少ないユーザーを区別する方法がありません。 1つの指標は、ユーザーが常に広告をクリックすることを意味するのではなく、1回のインプレッションしかなかったことを意味する場合があります。モデルが大量の統計と少量の統計を区別するような方法でこの機能をどのように提示するかという疑問が生じます。最初、頭に浮かぶのは、モデルに広告の表示回数を入れることです。インプレッション数を入力するだけでもかまいませんが、統計に対する信頼度のユーザーの広告インプレッション数への依存性は非線形です。インプレッションだけでなく、インプレッションの正方形または対数を入力する必要があることがわかりました。次に、線形モデルがある場合、これら2つの機能は互いに相互作用しないことがわかります。 「ユーザーがそのような量の統計を持っている場合、私たちはそれを非常に多くの人に信頼し、そのような重みのある機能を使用する」のようなスキームを作成することはできません。線形回帰はそのような接続を構築できませんが、勾配ブーストは構築できます。または、機能を再定式化することもできます。生の統計の代わりに、それを滑らかにし、ベイジアン遷移からのアプローチを使用し、ユーザーが平均してどのようにクリックするかについての事前知識を追加することができます。特定の式を使用してそれらを混合します。等。標識として送信している特定の信号を理解することが非常に重要であることがわかります。



次に、この機能がモデルでどのように使用されるかを知ることが非常に重要です。線形回帰では、一度に1つずつ、異なる方法で勾配ブーストに使用されます。ニューラルネットワークの場合は、異なる種類のデータで機能し、そこでコンテキストがどのように機能するかを示します。

モデルがどのように機能するかを正確に知る必要はありませんが、何が可能で何が不可能かを直感的に理解する必要があります。これはMLスペシャリストにとってクールなスキルです。特定のアルゴリズムが勾配ブーストでどのように機能するかを私に尋ねると、詳細に説明するのは難しいでしょうが、私の指ではそれを行うことができます。そして、ほとんどの実際的な状況では、これはツールを効果的に使用するのに十分です。



結局のところ、単純なものから複雑なものに移行するときは、実際の生活や製品でこのような反復的なアプローチを使用することを皆さんにアドバイスしたいと思います。あなたはすぐにテストされる単純な仮説から始めて、それらの非常に複雑で興味深い科学記事にゆっくりと到達します。これでベースラインの準備が整い、たとえばKDDの記事を作成できます。



私も言いたいです-多分彼らは私を助けてくれるでしょう。私はミートアップで2つの公演をします。 1つは、広告でどのような種類のデータサイエンスタスクを実行できるか(そして、一般に、データサイエンススペシャリストが興味深いエンジニアリングの課題にスキルを適用するための出発点として広告テクノロジーに関心を持つことができる理由)に専念しています。 2つ目は、システムのML開発者のチームとして陥った罠、それらから抜け出した方法、経験不足のために陥ったのと同じ罠に陥らなかった方法についての話です。この経験を共有したいと思います。ここで見つけるのに役立つことがたくさんあると思います。



それでも、その前に、MLでのデータサイエンスプロセス、データサイエンスプロジェクト管理に特化したLeanDSコミュニティについて話しました。また、彼らの資料を見るよう強くお勧めします。彼らはとてもクールなことをしています。



完全なセールスファネルモデルを構築したことがありますか?



実際、私たちはたまたまこれをしませんでした。しかし、ここでは、外部の広告主がすべてをうまく設定することが非常に重要です。したがって、広告主側のデータサイエンティストである場合は、セールスファネルに対処することをお勧めします。多数のマーケティングチャネルを扱う大企業で働いており、さまざまなマーケティングチャネルがどのように機能するか、セールスファネルがどの程度うまく構築されているかなどを十分に理解できる分析を構築しようとしているとします。私たちにとって、広告主のためのシステムとしてのVKの側では、そのようなものを扱うとき、広告主がすべてを適切に構成することが非常に重要です。広告ピクセルは、ユーザーがサイトにアクセスし、カートに何かを追加して購入した方法に関する正しい情報を常に提供するようにします。そして、この情報を使用して広告戦略をより良く、より効果的にするため。私はこれをやりたいです。このようなシステムの設定は広告主にとって難しいことが多いため、実際にはこれを行いませんでした。完全に制御できる場合は、おそらくこれを行う方が簡単です。



そして、そのような質問:モデルを構築するときにエンティティを接続する(属性を設定する)方法は?



たとえば、サイト訪問者->クライアント



以前のユーザーアクティビティから始めるのはおそらく良いことです。一般に、これはさまざまな方法で行われます。広告システムの構築に使用されている、類似と呼ばれるものについてお話しします。彼のことを聞いたことがあるかもしれません。これは、私たちが言うときの状況です。これが私たちのサイトにアクセスしたユーザーであり、ここに何かを購入したユーザーです。どのユーザーが何かを購入したユーザーに最も似ていて、何もしなかったユーザーに似ていないかを見てみましょう。このようなモデルをトレーニングすると、「1」は購入した人、「0」は何もしなかった人、条件付きで「0.5」はサイトにアクセスした人であり、システムのすべてのユーザーをランク付けする方法を学ぶことができます。潜在的なクライアントとの類似性によって。この知識をモデルで使用して、クライアントにどの機能を伝えることができます。モデルの観点から、彼らは一般の訪問者から顧客を分離します。






All Articles