ディープラーニングベースのレコメンドシステムとBytePlusのアプローチ

>ByteDanceのBytePlusというtoB事業部に所属している叶（ヨウ）と申します。BytePlusの推薦システムについて以下のホワイトペーパーを翻訳しましたので、Qiitaにも投稿したいと思います。皆様の日々のお仕事でお役に立てれば幸いです。


# 概要
近年、データの急激な増加に伴い、情報オーバロードの問題が起こっています。インタネット上に情報が溢れていて自分が知りたい情報を検索エンジンで検索したらすぐ数百万件の結果が出てくることも多いかと思います。一方、情報が多すぎて、一番欲しい情報をなかなか見つけられないこともしばしばです。その中で、レコメンドシステムは、情報オーバロードの問題を解決するための効果的な方法となっています。過去数年間、コンピュータビジョンや自然言語処理（NLP）など、さまざまな分野でディープラーニングの成功を目の当たりにしてきました。これにより、現在知られているレコメンドシステムも大幅に進化しました。
このホワイトペーパーでは、レコメンドシステムと、それがインターネット業界でどのように高度に統合され、不可欠であるかについて詳しく説明します。その後、信頼性が高く、スケーラブルで高性能なレコメンドシステムであるBytePlus Recommendと、採用されている独自の方法に焦点を当て、他のシステムから際立たせます。このホワイトペーパーは、業界をリードするレコメンドシステムが実際にどのように機能するかを理解したい機械学習エンジニア、システムアーキテクト、データサイエンティスト等を対象としています。

# はじめに
昨今、インターネット上で豊富な商品やコンテンツが利用可能であり、パーソナライゼーションがより良いユーザーエクスペリエンスを築く上で重要な役割を果たしています。インターネット企業はしばしばユーザーデータ、ウェブトラフィック、取引データなどの膨大な量のデータを保管しており、これらのデータは製品のロードマップ、マーケティング、戦略計画に関する重要なビジネスの意思決定を支援するのに役立ちます。
NetflixやAmazon、YouTubeなどのオンラインプラットフォームは、"選択肢のオーバロード"というジレンマを解くためにレコメンドシステムを使用し、顧客を維持し、よりパーソナライズされたユーザーエクスペリエンスを提供しています。ユーザーは常に、ウェブサイトやアプリケーションが自分の好みそうな製品を推薦してくれることを期待しています。統計によれば、Netflixのストリーミングコンテンツの約80%<font color="Green">1</font>、Amazonで購入される製品の約35%<font color="Green">2</font>、YouTubeのホームページビデオのクリックの約60%<font color="Green">3</font>は、レコメンドシステムの影響を受けていることが証明されています。
オンライン動画プラットフォームやEC業界以外にも、以下の業界でレコメンドシステムの利用が広がっています（下図参照）。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110403/95e2ebcd-9810-bad5-3006-312a2bed6939.png)

レコメンドシステムによるパーソナライゼーションは、インターネットベースの企業とのユーザーエンゲージメントを向上させる上で重要であり、その結果、コンバージョン率とビジネス収益が増加します。
# レコメンドシステムの進化
レコメンドシステムは、映画の視聴、商品の購入など、業界に応じてユーザーに関連するアイテムを提案する情報フィルタリングシステムの一種です<font color="Green">4</font>。過去数十年間で、レコメンドシステムは大きく進化し、人気ベースやルールベースのモデルなどの従来のアプローチから、よりパーソナライズされたコンテンツベースのフィルタリングや、Matrix factorisation(MF) or Factorisation Machineなどの協調フィルタリングモデルに至るまで、変化してきました。
近年では、深層学習モデルが大きな発展を遂げ、レコメンドシステムのアーキテクチャに革命をもたらしました。これらのモデルは従来のモデルの問題を解決し、レコメンドシステムの性能を大幅に向上させています。
このホワイトペーパーでは、深層学習モデルに焦点を当てて、それらがレコメンドシステムにどのように実装されているかを説明します。

## 深層学習モデル
深層学習は、レコメンドシステムの性能向上に劇的な改善をもたらしました<font color="Green">5</font>。ディープニューラルネットワークなどの深層学習モデルは、データ内の非線形性を捉えることで、ユーザーとアイテムの相互作用の複雑なパターンを抽出するのに役立ちます。また、テキスト、画像、動画からデータを抽出するための深い表現を学習する能力も高く、特徴設計の労力を軽減します。
例えば、YouTubeは情報検索のためのクラシックな2ステージのフャネルプロセスを提案しており、以下の図に示されています<font color="Green">6</font>。候補生成とランキングなどの各ステージは、それぞれニューラルネットワークを使用しています。候補生成ネットワークは、大量の動画から候補のサブセットを選択します。このステージで生成される候補は数百になり、それぞれの候補は一般的にユーザーに関連しています。その後、ユーザーに表示する最終的な動画のリストを選択するために、より詳細なステップが必要です。選択された候補の重要度は、さらに優先順位付けられます。ランキングネットワークは、各動画のスコアを割り当ててランキング付けを行います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110403/15fb76c7-e1b4-0b52-2f07-60e3c57dbc4f.png)
*図1.　2ステージレコメンドシステムの構成*

この2ステージのアプローチは、大量のコンテンツや商品から効果的で魅力的な推薦を可能にします。次のセクションでは、ECやメディア業界で広く採用されている類似のレコメンドシステムの構造について詳しく見ていきます。

# レコメンドシステムの仕組み
現在一般的に採用されている大規模なレコメンドシステムは、主に5つのコンポーネントで構成されています
1. **データ同期**：生データの収集と同期
2. **データ処理と特徴量エンジニアリング**：モデルトレーニングのための生データの処理と準備
3. **分散型モデルトレーニングプラットフォーム**：モデルトレーニング専用の機械学習プラットフォーム
4. **候補生成、ランキング、リランキング**：レコメンドアイテムリストの生成のサブステップ
      a. *候補生成*：各ユーザーに対して異なるロジックに基づいて関連する候補のサブセットを取得
      b. *ランキング*：クリックスルーレートなどの数式やメトリクスを使用して関連する候補をさらに絞り込む
      c. *リランキング*：フィルタリング、重複排除などの追加ルールを適用
5. **評価**：レコメンドシステムによって生成された結果のパフォーマンスを評価するためのさまざまなオンラインおよびオフラインのアプローチ

下の図は、レコメンドシステムの全体的なアーキテクチャとワークフローの概要です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110403/bc40e843-7bfe-7814-95f6-020db7ed8469.png)
*図2.　レコメンドシステムのワークフロー*

## データ同期
データは、レコメンドシステムの成功を確保する上で重要な要素です。例えば、EC業界では、顧客のデータベースから3つのタイプのデータが必要です：
- **ユーザー**：ID、場所、タグ、評価等
- **商品**：ID、タイトル、価格、レビュー、評価、価格等
- **ユーザー行動イベント**：インプレッション、クリック、「カートに追加」、購入、コンバージョン等
ユーザーの行動に基づいてレコメンドシステムを構築する際、以下の2つの形式のデータが収集されます：
  - 履歴データ：過去の行動、ユーザー、商品、イベントデータ
  - 増分データ：新しい行動、ユーザーや商品の新しい変更や更新
履歴データは、長期的な関心を捉え、ユーザーの過去の好みをレコメンドシステムに提供するのに非常に役立ちます。増分データは、短期的な関心を捉え、リアルタイムのレコメンドを提供するために重要です。
収集されるデータは、どれだけ正確でタイムリーで包括的であるかによって、モデルのパフォーマンスが直接関係してきます。データの増加に伴い、より効率的で個人に合った推薦が可能となり、ユーザーの関心を引き、意思決定を支援し、ユーザーのエクスペリエンスを最適化することができます。

## データ処理と特徴量エンジニアリング
データ収集が完了したら、次のステップは収集された大量のデータから意味のある特徴を抽出して処理することです。これらの特徴は、さまざまな機械学習モデルの主要なインプットとして機能します。
一般的に、プラットフォームの主要なアウトプットは次の通りです：
- レコメンドシステムの訓練と評価のためのサンプルデータの生成
- モデルの提供に向けたユーザーと商品のプロフィールの生成
データは、あらゆるレコメンドシステムの鍵です。大量のデータを高速に処理することで、モデルはユーザーの関心の短期的な変化を捉えることができます。適切に構築されたレコメンドシステムは、バッチとリアルタイムデータの特徴を正確かつ最適な処理をサポートできます。適切に行われれば、モデルの予測精度が向上し、良いレコメンドと悪いレコメンドの大きな違いを定義することができます。

## 分散型モデルトレーニングおよびサービス提供プラットフォーム
大量のデータが収集されるため、モデルのトレーニングとサービス提供にはちゃんと実装された分散型の機械学習プラットフォームが必要です。
過去数年間、レコメンドシステムはこの領域で最も進化してきました。深層学習モデルの導入により、レコメンドシステムのインプットとして使用できる特徴の種類が増加しました。高度なモデルアーキテクチャがもたらすイノベーションは、レコメンドのパフォーマンス向上に大きな影響を与えています。ただし、これにより、モダンなモデルトレーニングプラットフォームは候補生成のためのさまざまなEmbeddingタイプをサポートする必要があります<font color="Green">7</font>。異なるモデルアーキテクチャを柔軟にサポートして、最適なランキングがシステム全体で実現できるようにする必要があります。
特徴の数が増加すると、モデルのサイズは通常の物理的なストレージ容量を超える可能性があります。これを解決するための一般的なアプローチは、Embeddingを複数のパラメーターサーバーにシャーディングして、効率的かつ迅速に更新できるようにすることです。トレーニングされたモデルは、候補生成とランキングを実行するために使用され、レコメンドリストを生成します。
モデルの提供は、低レイテンシ、高可用性、高スループットの課題に対処するために使用され、アーキテクチャ設計とエンジニアリングの最適化に非常に複雑な要素が含まれています。

## 候補生成、ランキング、 リランキング
候補生成、ランキング、および再ランキングは、システムから推薦を生成する際の重要なステップです<font color="Green">8</font>。多数のアイテムとユーザーがいる場合、より良い結果を得るためには、プロセスを異なる部分に分割して結することが重要です。"ファネル"アプローチは、モデルのトレーニングと提供の一環として、レコメンドシステムでよく使用されます<font color="Green">9</font>。

### 候補生成
異なるセットの候補を生成するために複数のアルゴリズムを採用することは一般的です。これらのモデルは通常、候補生成器（candidate generators）として知られています。EC業界では、マーケットプレイスで数万もの製品が利用可能です。複数の候補生成器が使用されて、おおよそ数百の商品候補を生成することが一般的です。例えば、最も人気のある商品カテゴリから100個の候補を生成したり、ターゲット商品に最も類似した商品から別の100個の候補を生成したりすることができます。また、協調フィルタリングや深層学習などのモデルに基づいてさらに100個から200個の候補を生成することもできます。異なる生成器から生成された候補は、ランキング前に結合されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110403/e4a68c95-04d0-f2e5-233f-73fed0919b3e.png)
*図3.　候補生成プロセス*

### ランキング
候補生成後、ランキングは候補をスコアリングして、ユーザーに表示されるアイテムのセットを選択します。前のステージから生成された候補のプールが小さい場合、より多くの特徴量と複雑なモデルが使用され、スコアリングの結果を向上させます。使用される手法には、マルチタスク学習<font color="Green">10</font>、DeepFM<font color="Green">11</font>、xDeepFM<font color="Green">12</font>などがあります。
以下の表は、候補生成とランキングで使用されるモデルの特性の違いを表しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110403/440db324-2746-f7b5-00ed-a4b2e4976201.png)

### リランキング
リランキングは、ビジネス上で追加の基準に基づいてレコメンドリストを再度ランク付けする最終ステップであり、最終結果が新鮮で多様化され、公平性が保たれるようにします。
一般的に使用されるルールは次の通りです：
- **重複削除**
推薦結果から重複するアイテムを識別して削除すること。
- **多様化**
特定の商品カテゴリの出現頻度を制限するなどのルールに基づいてアイテムをシャッフルすること。
- **フィルタリング**
在庫切れや低評価などのルールに基づいてアイテムを削除すること。
- **ブースティング**
特定のアイテムを推奨リストの上または下に移動すること。これは、特定ストアの商品を促進するなどの目的で行われ、最終結果がユーザーに最も関連性の高い、質の高い、パーソナライズされたものになるようにします。

## 評価
モデルの評価には広範な実験が採用されます。オフライン評価では、一般的に使用される指標には適合率、再現率、AUC、mAP、PR曲線などがあります。しかし、ほとんどのインターネット企業は、モデルの効果を判断するためにA/Bテストなどのオンライン実験を使用しています。
オンライン実験は、より正確であり、データの遅延とデータの損失の問題を軽減します。さらに、いくつかの指標（クリックスルー率、滞在時間、ユニークバイヤーの数など）は取得できない場合もあります。オンライン実験は通常、トレーニングデータのバイアスも除去します。トレーニングデータは既存のレコメンドシステムに基づいて派生されることが多く、それ自体がバイアスを持っています。したがって、A/Bテストが重要であり、生成される結果が常にオフライン実験と相関しない可能性があるためです。
企業はA/Bテストを実施する際に課題に直面することがあります。限られたユーザートラフィックでは、他のテストが完了するのにかなりの時間が必要です。これを解決するため、多くの企業はスケーラブルなA/Bテストプラットフォームを採用して、より効率的な実験の展開と並行実験のための測定を実施しています。また、レコメンドシステムのパフォーマンスを評価するための適切な指標の選択も課題となることがあります。時には、顧客がパフォーマンス評価のために選択すべき適切な指標について混乱することがあります。この選択は、短期的な指標か長期的な指標か、またはエンゲージメント指標とコンバージョン指標を比較するか等、企業やチームの全体的な目標によって影響を受けることが多いと見られます。

# BytePlus Recommendのアプローチ
ByteDanceは2012年の設立以来、レコメンドシステムの先駆者と知られています。ByteDanceの製品群には、TikTok、Douyin、Toutiaoなど、ユーザーエクスペリエンスを向上させるためにシステムが採用されています。BytePlusはByteDanceのエンタープライズ向けのテックブランドとして、企業向けに推薦システムを製品として提供しています。企業が効果的なソリューションを提供し、より良いユーザーエクスペリエンスを構築し、ビジネスをさらに成長させることを目指して、BytePlusは推薦システムの影響と価値を最大化し、ビジネスパフォーマンスを向上させることに取り組んでいます。

## 最先端の機械学習アルゴリズム
BytePlus Recommendは、候補生成とランキングの両方に高度な機械学習アルゴリズムを使用することで知られています。BytePlus Recommendは、Deep RetrievalやDeep Reinforcement Learningなどの独自のアルゴリズムを使用しています。
例えば、Deep Retrievalは、大規模な推薦においても複雑さを考慮しつつ、ほぼ線形の計算速度でエンドツーエンドの候補リトリーバルを実行する高度な機械学習モデルです<font color="Green">13</font>。これは、多くのモデルが苦労するTwo Toverの制約に制限されないエンドツーエンドモデルを提供します<font color="Green">14</font>。BytePlus Recommendは、インターネット業界に最適な大規模な候補生成をサポートすることができます。Deep Retrievalのエンドツーエンドトレーニングは、ユーザーとアイテムの相互作用から直接、ユーザーEmbeddingとリトリーバブル構造の学習を同じ目的関数で整合させます。BytePlusの推薦システムの計算複雑性によって、ストリーミングベースのオンライン学習がサポートされており、優れたパフォーマンスと処理が可能です。
Embeddingとは、離散変数の低次元で学習された連続的なベクトル表現であり、高次元ベクトルをよりコンパクトな形式に変換することができます。Embeddingは機械学習モデルを効率的に扱いやすくする役割を果たします。BytePlus Recommendは、大量のリアルタイム特徴、自然言語処理（NLP）およびコンピュータビジョン（CV）の特徴、およびグラフベースの特徴のEmbeddingをサポートしています。
例えば、NLPとCVの特徴のEmbeddingがサポートされています。NLPはテキストの内容を理解することを指し、それには言語内の文脈的なニュアンスを含みます。商品のエンティティやユーザーの感情などの文脈情報は、さまざまなユーザーや商品の情報から抽出され、モデルのトレーニングを向上させるために活用されます。一方、CVは商品のビデオや画像などのマルチメディアコンテンツを理解する方法を指します。これには、デジタルマルチメディアから数値や記号データなどの関連情報を処理、分析、抽出するためのさまざまな手法が含まれます。これらの手法は視覚データを有用な特徴に変換し、推薦システムの性能を向上させるために活用されます。BytePlus Recommendは、独自の機械学習アルゴリズムにより、大量のデータを効率的に処理し、さまざまなパラメータ設定でモデルを効率的にトレーニングすることができます。
さらに、BytePlus Recommendは、各お客様のニーズに対応するためにモデルアーキテクチャのカスタマイズに焦点を当てています。例えば、お客様は異なる推薦シナリオを必要とする場合があり、クリック率やコンバージョン率などのメトリクスを最適化することができます。

## レコメンドシステム専用の機械学習プラットフォーム
強力な機械学習プラットフォームは、モデルのトレーニングとサービングの際により高速で汎用性の高いパフォーマンスを提供します。
分散トレーニングは、レコメンドシステムが最大1億のパラメータとデータのリアルタイムトレーニングを処理できるようにするために使用されています。高性能なグラフィックス処理ユニット（GPU）やテンソル処理ユニット（TPU）を使用して高速なトレーニングと予測が可能です。
特徴は収集されたデータから抽出されて計算されます。企業が抽出プロセス中に課題が多いと言われています。特徴を計算するために必要なロジックは複雑で膨大なリソースを必要とします。これらの特徴がリアルタイムで迅速に処理されない場合、ユーザーの興味が時間とともに変化し、レコメンドが関連しなくなる可能性があります。BytePlus Recommendは、自社内で開発された特徴学習システムであるInstance Profile Service（IPS）とグラフベースのEmbeddingを使用することで、この問題を解決し、複雑な計算ロジックとレイテンシ要件を対応できます。
例えば、IPSは、非構造化プロファイルデータを管理し、リアルタイムエンジニアリングを実行するために開発された内製の大規模分散システムです。時間、カテゴリ、アクション、特徴統計に基づいてモデル化され、このシステムは時間の経過とともにユーザーの興味を効果的に検出し特徴づけることができます。すべてのユーザープロファイルデータは、厳格なプライバシーとアクセス制御を実施し、ハッシュリテラルとして保存されます。インスタンスデータ（インプレッション、アクション、特徴）を使用すると、IPSのインメモリ構造は柔軟な時間ウィンドウクエリと埋め込みの多層ハッシュマップを可能にし、高速な特徴クエリをサポートします。IPSをMLプラットフォームに統合することで、BytePlus Recommendはプロファイルデータの保存と提供のためのワンストップサービスとなり、高い可用性とパフォーマンスを実現しています。EC等業界の変動の激しい状況で、常に変化する大規模なユーザープロファイルを処理できる信頼性のあるシステムを持つことは重要です<font color="Green">15</font>。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110403/549b7402-8861-9925-41bd-7bd9ea265394.png)
*図4. IPSアーキテクチャ*

高度な最適化コンパイラと組み合わせることで、BytePlus Recommendは少ないリソースを使用してより高速に実行されます。これにより、複雑なモデルを迅速に提供し、ユーザーに正確で効果的な推薦を行うことが可能です。モデルの複雑さは課題となるのではなく、むしろチャンスになりとBytePlusは考えます。

## レコメンド応用の専門知識
BytePlus Recommendチームは、各お客様に対して実装コラボレーションプロセスを提供し、最適化されたモデルのパフォーマンスを確保し、必要な追加の実装作業を最小限に抑えます。
BytePlus Recommendは、大規模な機械学習（ML）技術によって支えられたハイパーパーソナライズドされたエクスペリエンスを提供するために設計されています。堅牢なインフラストラクチャと世界中のトップレベルML専門家を備えているBytePlusは、極端なスケーラビリティをサポートするネットワークオプションを提供しています。BytePlus Recommendは、お客様のML知識の障壁を最小限に抑える推薦ソリューションを創造します。各モデルをお客様のニーズにカスタマイズすることで、BytePlus Recommendはあらゆる可能なシナリオと超大規模なモデリングをサポートします。

### データ収集
BytePlus Recommendチームは、お客様のニーズに最適なデータの種類や特定のフィールドに関する特定のガイドを提供します。これにより、最高のパフォーマンスを発揮するモデルの実行が容易になり、最適な結果が得られます。インプレッションやシーンの動作などの特定のユーザーイベントデータ、画像URLなどの商品データが含まれます。BytePlusチームが提供するステップバイステップガイドにより、お客様は同期のためにデータを正確かつ効率的に準備できます。BytePlusは、各業界のさまざまなユースケースに対応するのに十分なスキルと柔軟性を備えています。

### データ検証
データの品質を確認することは、レコメンドシステムで最も見過ごされている側面の1つです。データが同期された後、BytePlus Recommendはデータの品質が標準に達していることを確認するための合理的なアプローチを提供します。データがスキーマと一致しているかどうか、データの量と品質（たとえば、Nullデータ比率または重複率）が十分であるかどうか　等が含まれます。結合されたインプレッションとクリックデータの検証などの高度なデータ検証技術を使用して、モデルトレーニングに正確で十分な入力データが存在するかを確認します。

### パフォーマンス評価
BytePlus Recommendは、クリックスルー率（CTR）やコンバージョン率（CVR）メトリクスなどを検証するために、統計的に厳密なA/Bテストを行います。社内に構築されたA/Bテストプラットフォームは、アルゴリズムのパフォーマンスの統計的有意性と評価を最大化するために最適化されています。BytePlusは、コンバージョンメトリクスのZテスト、ユーザーごとのメトリクスのウェルチのTテスト、クリックスルー率メトリクスのデルタメソッドなどのテストを実施します。これにより、より包括的で正確な結果が得られます。
お客様は、ユーザートラッフィクを分割し、BytePlus Recommendモデルを内製モデルあるいは他のベンダーのモデルと比較することができ、本導入前にBytePlus Recommendの結果を確認することができます。確実に効果がある前提で安心してご利用いただけます。
# 結論
このホワイトペーパーでは、深層学習ベースのモデルの実装を通じてレコメンドシステムに革命をもたらし、その有効性を高める方法を説明しました。BytePlusのレコメンドシステムを通じて、レコメンドシステムがどのように機能し、どのように異なる方法で行うことができるかについてのインサイトを提供しました。
さらに、レコメンドシステムとそれを実装するための最善の方法をさらに明らかにするために、BytePlus Recommendのアプローチを深く掘り下げました。私たちは、レコメンドシステムと、顧客が私たちのレコメンドを採用し、その後コアビジネスメトリクスを改善するのをどのように支援できるかに焦点を当てました。BytePlusレコメンドにご興味をお持ちの方は、ぜひご連絡ください。
- お問い合わせフォームは　[こちら](https://www.byteplus.com/en/contact)
- Eメール contact@byteplus.com
- フォロー/コメントBytePlus　[LinkedInページ](https://www.linkedin.com/company/byteplus/)

# リファレンス
1. Gutierrez, D. (2022). Netflix-Uses-Big-Data-to-Drive-Success - insideBIGDATA. Retrieved 17 January 2022, from https://insidebigdata.com/2018/01/20/netflix-uses- big-data-drive-success/netflix-uses-big-data-to-drive-success/ 
2. (2022). Retrieved 17 January 2022, from https://www.mckinsey.com/industries/ retail/our-insights/how-retailers-can-keep-up-with-consumers 
3. Keenan, T. (2014). Technocreep: The Surrender of Privacy and the Capitalization of Intimacy. 
4. Ricci, F., Rokach, L., & Shapira, B. (2010). Introduction to recommender systems handbook. Recommender Systems Handbook, 1–35. https://doi.org/10.1007/978-0- 387-85820-3_1 
5. Zhang, S., Yao, L., Sun, A., & Tay, Y. (2020). Deep Learning based Recommender System. ACM Computing Surveys, 52(1), 1–38. https://doi.org/10.1145/3285029 
6. Covington, P., Adams, J., & Sargin, E. (2016). Deep Neural Networks for YouTube recommendations. Proceedings of the 10th ACM Conference on Recommender Systems. https://doi.org/10.1145/2959100.2959190 
7. Google. (n.d.). Embeddings | machine learning crash course | google developers. Google. Retrieved January 17, 2022, from https://developers.google.com/machine- learning/crash-course/embeddings/video-lecture 
8. Sergios Karagiannakos. (2021, May 20). An introduction to recommendation systems: An overview of machine and Deep Learning Architectures. AI Summer. Retrieved January 17, 2022, from https://theaisummer.com/recommendation-systems/ 
9. Covington, P., Adams, J., & Sargin, E. (2016). Deep Neural Networks for YouTube recommendations. Proceedings of the 10th ACM Conference on Recommender Systems. https://doi.org/10.1145/2959100.2959190 
10. Ruder, S. (2017, June 15). An overview of multi-task learning in Deep Neural Networks. arXiv.org. Retrieved January 17, 2022, from https://arxiv.org/ abs/1706.05098 
11. Guo, H., Tang, R., Ye, Y., Li, Z., & He, X. (2017, March 13). DeepFM: A factorization- machine based neural network for CTR prediction. arXiv.org. Retrieved January 17, 2022, from https://arxiv.org/abs/1703.04247
12. Lian, J., Zhou, X., Zhang, F., Chen, Z., Xie, X., & Sun, G. (2018, May 30). XDeepFM: Combining explicit and implicit feature interactions for recommender systems. arXiv. org. Retrieved January 17, 2022, from https://arxiv.org/abs/1803.05170 
13. Gao, W., Fan, X., Wang, C., Sun, J., Jia, K., Xiao, W., Ding, R., Bin, X., Yang, H., & Liu, X. (n.d.). Deep retrieval: Learning a retrievable structure ... - arxiv. Retrieved January 17, 2022, from https://arxiv.org/pdf/2007.07203.pdf 
14. Introducing tensorflow recommenders. The TensorFlow Blog. (n.d.). Retrieved January 17, 2022, from https://blog.tensorflow.org/2020/09/introducing-tensorflow- recommenders.html 
15. Shi, R., Liu, Y., Chen, J., Zou, X., Chen, Y., Fan, M., Cai, Z., Zhang, G., Li, Z., & Liang, Y. (2021). IPS: Unified Profile Management for Ubiquitous Online recommendations. 2021 IEEE 37th International Conference on Data Engineering (ICDE). https://doi. org/10.1109/icde51399.2021.00288