NetflixのケーススタUDDYとNVIDIA深層学习技術を用いた推奨算法の深入り

推奨アルゴリズムとは何か?

推奨エンジンは、アマゾン、ネットフリー、フリップカート、YouTube、TikTok、リンクドイン、Facebook、X(ツイッター)、スナップチェット、メディアム、スプーンキック、ハッカーノーンなど、これらのサイトすべてに加え、インターネット上のほぼすべてのコンテントカurationや製品市場サイトで、推奨アルゴリズムから大きな利益を得ています。

簡単に言うと、推奨アルゴリズムは、あなたの好み、嫌み、お気に入り、好みのもの、好みのジャンル、お気に入りのアイテムなどをモデルに作成し、サイト上での一つの取引が行われるたびに、あなたが次に購入する可能性が高い製品を予測するために使います。YouTubeやTikTokの推奨アルゴリズムの中には、用户が数分間スクロールしてクリック/タップするだけで、何時間も使用者を引き付ける精度の高いものもあります。読者の中には、YouTubeを見て10分間スクロールしてクリックしただけで、何時間も使用者を引き付ける精度の高いものもあります。

これにより、より良い顧客参与、より良い顧客体験、収益の増加、そしてプラットフォーム自身のためのもっとお金が得られます。依存は、これらの最適化されたアルゴリズムの精度と恐れられるパフォーマンスに基づいて構築されます。

これらの巨匠はそのようにアуデインスを構築します。

YouTube、TikTok、Instagram、Facebookの月間訪客人数为(情報源):

  • Facebook: 29億
  • YouTube: 22億
  • Instagram: 14億
  • TikTok: 10億

彼らの成功の秘密: 素晴らしい推奨アルゴリズム。

推奨アルゴリズムの種類

協力型フィルタリング(ユーザーベース)

ユーザーベースの協力型フィルタリングは、似た偏好を持つユーザーが似た趣味を持つと仮定する推奨技術です。これは、ユーザーとアイテムの交流データを利用して、似通りのユーザーを特定するためによく使用されるコサイン類似度やピアースン相關性などの基準を employs します。この手法は、似通りのユーザーの評価に基づいて、ユーザーの評価や偏好を予測します。

しかし、新しいユーザーがまだシステムと交流していないための寒いスタート問題を解決することが難しく、多くのユーザーを対象にするとスケーラビリティ問題が発生する可能性があります。

Python

 

import numpy as np
from sklearn.metrics.pairwise import cosine_similarity

def user_based_cf(ratings_matrix, user_id, k=5):
    similarities = cosine_similarity(ratings_matrix)
    user_similarities = similarities[user_id]
    similar_users = np.argsort(user_similarities)[::-1][1:k+1]
    
    recommendations = np.zeros(ratings_matrix.shape[1])
    for similar_user in similar_users:
        recommendations += ratings_matrix[similar_user]
    
    return recommendations / k

  • ユーザーの似通り性を計算する際にはコサイン類似度を使用しています
  • 目標ユーザーに最も似通りのk人のユーザーを探します
  • 似通りのユーザーの評価を集計して推奨を生成します
  • 似通りのユーザーから各アイテムの平均評価を返します
  • 簡単な実装で、簡単に修正または扩展できます

協力型フィルタリング(アイテムベース)

アイテムベースの協力過濾は、過去に好ましたことがあるアイテムと似たアイテムを好むことを想定しています。これは、ユーザーの評価やInteractionを基にアイテム同士の類似性を計算します。この手法は、多くのユーザーが少ないアイテムを持つ場合に特に、ユーザーベースの協力過濾よりもよりスケーラブルです。アイテムの類似性の計算を事前に行うことができ、実時間の推奨をより速くすることができます。

新しいユーザーを処理する際には、ユーザーベースの方法よりもよいが、十分な評価がない新しいアイテムには苦戦します。また、随時変更するユーザーの偏好による影響を受ける程度が低いという利点もあります。

Python

 

import numpy as np
from sklearn.metrics.pairwise import cosine_similarity

def item_based_cf(ratings_matrix, item_id, k=5):
    similarities = cosine_similarity(ratings_matrix.T)
    item_similarities = similarities[item_id]
    similar_items = np.argsort(item_similarities)[::-1][1:k+1]
    
    recommendations = np.zeros(ratings_matrix.shape[0])
    for similar_item in similar_items:
        recommendations += ratings_matrix[:, similar_item]
    
    return recommendations / k

  • 評価行列を転置してアイテム間の類似性を計算する
  • 目的のアイテムに最も似たk個のアイテムを見つける
  • 似たアイテムの評価を集計する
  • 似たアイテムに基づいて各ユーザーの平均評価を返す
  • より多いユーザーがより少ないアイテムのシステムに効果的

マトリクス因子分解

マトリクス因子分解は、ユーザーアイテム相互作用マトリクスを低次元のマトリクスに分解し、ユーザーの偏好やアイテムの特性を潜在の因子で表すことを想定します。この目的に、奇异性値分解(SVD)や交替最小二乗法(ALS)などが一般的に使用されています。

この手法は、大きく空きないデータセットを効率的に処理し、記憶基の協力過濾方法と比較してより良い精度を提供します。また、過剰に学習するのを防ぐために正则化技術を導入することができ、未見のデータにおいてモデルの一般化能力を高めます。

Python

 

import numpy as np

def matrix_factorization(R, P, Q, K, steps=5000, alpha=0.0002, beta=0.02):
    Q = Q.T
    for step in range(steps):
        for i in range(len(R)):
            for j in range(len(R[i])):
                if R[i][j] > 0:
                    eij = R[i][j] - np.dot(P[i,:], Q[:,j])
                    for k in range(K):
                        P[i][k] += alpha * (2 * eij * Q[k][j] - beta * P[i][k])
                        Q[k][j] += alpha * (2 * eij * P[i][k] - beta * Q[k][j])
        
        e = 0
        for i in range(len(R)):
            for j in range(len(R[i])):
                if R[i][j] > 0:
                    e += pow(R[i][j] - np.dot(P[i,:], Q[:,j]), 2)
                    for k in range(K):
                        e += (beta/2) * (pow(P[i][k], 2) + pow(Q[k][j], 2))
        if e < 0.001:
            break
    return P, Q.T

  • 基本的なマトリクス分解アルゴリズムを実装しています
  • 推定と実際の評価の間の誤差を最小限にするために梯度下降法を使用しています
  • 過学習を防ぐために正則化を統合しています
  • ユーザーとアイテムの潜在的な因子をイテレーティブに更新しています
  • 誤差が閾値以下になるか、最大のステップ数に達したら終了します

コンテンツベースのフィルタリング

コンテンツベースのフィルタリングは、アイテムの特徴やユーザーの好みに基づいてアイテムの推奨を行います。それは各ユーザーとアイテムに特徴に基づいてプロフィルを構築します。

テクスチャーによる分析にTF-IDF(Term Frequency-Inverse Document Frequency)と、マッチングに余弦類似度が一般的に使用されます。この手法は新しいアイテムの問題を効果的に解決し、以前のユーザーの行動に依存しないためです。

しかし、過 specializes に耐えるために、推奨に多样性が乏しいという問題があります。また、効果的な実装には、アイテムの関連した特徴を正確に抽出するための良い特徴工程が必要です。

Python

 

import numpy as np
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity

def content_based_filtering(item_descriptions, user_profile, k=5):
    vectorizer = TfidfVectorizer()
    item_vectors = vectorizer.fit_transform(item_descriptions)
    user_vector = vectorizer.transform([user_profile])
    
    similarities = cosine_similarity(user_vector, item_vectors)
    top_items = np.argsort(similarities[0])[::-1][:k]
    
    return top_items

  • テキスト描述を数値ベクトルに変換するためにTF-IDFを使用しています
  • ユーザープロフィルとアイテム描述の間の余弦類似度を計算しています
  • ユーザープロフィルに最も似たk個のアイテムを返します
  • アイテムの特性が明らかに定義されたシステムにとって効率的です
  • 複数の特性タイプを含めることが簡単です

ハイブリッド推奨システム

ハイブリッド推奨システムは、2つまたはそれ以上の推奨技術を組み合わせることで、それぞれの強みを活用します。複数のアプローチを統合することで、個别的な方法の弱みを緩衝することができます。たとえば、コールドスタート問題などです。一般的な組み合わせには、共同 filteringとコンテントベースのフィルタリングが含まれます。これらの技術を組み合わせるためには、重み付け、切り替え、 mixed、または meta-level のアプローチなど、さまざまな方法が使用されます。

ハイブリッドシステムは、单一のアプローチのシステムよりも、より強健で正確な推奨を提供することがあります。しかし、効果的な実装は、異なるコンポーネントのバランスを調整し、最適なパフォーマンスを保証するために注意深い調整が必要です。

Python

 

import numpy as np
from sklearn.metrics.pairwise import cosine_similarity

def hybrid_recommender(ratings_matrix, content_matrix, user_id, alpha=0.5, k=5):
    cf_similarities = cosine_similarity(ratings_matrix)
    content_similarities = cosine_similarity(content_matrix)
    
    hybrid_similarities = alpha * cf_similarities + (1 - alpha) * content_similarities
    user_similarities = hybrid_similarities[user_id]
    
    similar_users = np.argsort(user_similarities)[::-1][1:k+1]
    
    recommendations = np.zeros(ratings_matrix.shape[1])
    for similar_user in similar_users:
        recommendations += ratings_matrix[similar_user]
    
    return recommendations / k

  • 共同 filteringとコンテントベースの類似性を組み合わせる
  • 重み付けの和を用いたアプローチで alpha パラメータを使用
  • ハイブリッドの類似性に基づいて似たユーザーを見つける
  • 似たユーザーの評価から推奨を生成する
  • CFとコンテントベースのアプローチのバランスを簡単に調整することができる

单精度浮動小数点数(SVD)

单精度浮動小数点数(SVD)は、行列をU、Σ、V^Tの3つの成分に分解する行列分解技術です。この分解で、UとVは左と右の奇異ベクトルを表しますが、Σは奇異値を含んでいます。

SVDは、kのトップの奇異値だけを保持することで、次元削減を行い、ユーザーとアイテム間の交互动きの潜在的な要因を見つけることができます。

この方法は、推薦システムで一般的に見られる大きく、稀疏な行列を処理する際に高效なものです。また、SVDは精度と計算効率の両方に優れたバランスを提供しており、推奨を生成するのに人気のある選択肢です。

Python

 

import numpy as np
from scipy.sparse.linalg import svds

def svd_recommender(ratings_matrix, k=5):
    U, s, Vt = svds(ratings_matrix, k=k)
    
    sigma = np.diag(s)
    predicted_ratings = np.dot(np.dot(U, sigma), Vt)
    
    return predicted_ratings

  • scipyのsvds関数を使用してトランスクリプションSVDを行います。
  • 評価行列を、kの最上位の固有値だけで再構築します。
  • すべてのユーザー-アイテムペアに対する予測評価の密集行列を返します。
  • 大きく、稀疏な評価行列に対して効果的です。
  • 较大的な推奨システムに簡単に統合できます。

テンサー因子分解

テンサー因子分解は、二次元の方法に比べてより多くのデータと計算資源を必要とする multi-dimensional data に適用できる技術です。時間や位置などの上下文情報を推奨に取り込むことができます。CP分解などの手法を用いてテンサーを component tensors の和で分解し、複数の因子間の複雑な相互作用を捕捉します。この手法は、二次元の方法よりもより多くのデータと計算資源を必要とします。

しかし、追加のデータ次元を活用して高度に个性化的で、コンテキストに意識した推奨を提供することができます。データ構造の複雑さの増加により、異なるコンテキストでユーザーの好みについてより詳細な理解が可能で、総合的な推奨精度を向上させます。

Python

 

import numpy as np
import tensorly as tl
from tensorly.decomposition import parafac

def tensor_factorization_recommender(tensor, rank=10):
    factors = parafac(tensor, rank=rank)
    reconstructed_tensor = tl.kruskal_to_tensor(factors)
    return reconstructed_tensor

  • TensorLyライブラリを用いてテンサー操作と分解を行います。
  • 入力テンサーに対してPARAFAC分解を適用します。
  • テンソルを分解した因子から再構築します
  • 再構築されたテンソルを推奨として返します
  • マルチディメンショナルデータ(例えばユーザー-アイテム-コンテキスト)を処理できます

神経コラボフィルタリング

deep learning-based recommendation systems combine collaborative filtering techniques with neural networks. This approach allows for learning non-linear user-item interactions, which traditional matrix factorization methods may struggle with. Deep learning recommenders typically use embedding layers to represent users and items in a dense, low-dimensional space. This enables easy integration of additional features or side information, such as user demographics or item descriptions, to enhance the recommendation performance.

When trained on large datasets, deep learning-based systems can often outperform traditional matrix factorization methods in terms of accuracy. However, this advantage comes at the cost of increased computational complexity and the need for large amounts of data.

Deep learning recommenders also require careful hyperparameter tuning to achieve optimal results, making them more challenging to implement and maintain compared to simpler collaborative filtering approaches.

Python

 

import tensorflow as tf
from tensorflow.keras.layers import Input, Embedding, Flatten, Dense, Concatenate
from tensorflow.keras.models import Model

def neural_collaborative_filtering(num_users, num_items, embedding_size=100):
    user_input = Input(shape=(1,), dtype='int32', name='user_input')
    item_input = Input(shape=(1,), dtype='int32', name='item_input')

    user_embedding = Embedding(num_users, embedding_size, name='user_embedding')(user_input)
    item_embedding = Embedding(num_items, embedding_size, name='item_embedding')(item_input)

    user_vecs = Flatten()(user_embedding)
    item_vecs = Flatten()(item_embedding)

    concat = Concatenate()([user_vecs, item_vecs])
    dense1 = Dense(128, activation='relu')(concat)
    dense2 = Dense(64, activation='relu')(dense1)
    output = Dense(1, activation='sigmoid')(dense2)

    model = Model(inputs=[user_input, item_input], outputs=output)
    model.compile(optimizer='adam', loss='binary_crossentropy')

    return model

  • 使用しているTensorFlowとKerasを使用して神経ネットワークモデルを構築します
  • ユーザーとアイテムの埋め込み層を作成します
  • ユーザーとアイテムの埋め込みを結合します
  • 非線形な相互作用を学習するために密集層を追加します
  • 準備された学習用のコンパイル済みモデル

NetflixのケーススタUDY

Netflixの推奨アルゴリズムの旅は2000年のCineMatchという共同過濾アルゴリズムによる会員の評価を使用して、ユーザーが映画をどの程度楽しむのか予測することで始まりました。2006年、100万米ドルのNetflix賞が立ち上げられ、データ科学者に10%も上回るCineMatchを打ち破るモデルを作成する課題を出されました。その勝者のアルゴリズムは後にNetflixの内部データに取り込まれました。

Netflixはすぐにユーザーを増やし、2007年にストリーミングデータに移行しました。視聴者はリンクス leaningアルゴリズムとクラスタリングアルゴリズムによる実時間の推奨を受けるようになりました。アルゴリズムが改善されるにつれて、より多くのユーザーがNetflixに移行し、推奨アルゴリズムの効果がただそれだけであるためです。Netflixで見られるコンテンツの約80%は、推奨アルゴリズムによって提供されます。

会社は、推奨アルゴリズムの効果によって失われるユーザーから年間約10億円を節約していると推定しています。

Netflixは、用户が見る映画のメタデータに基づいて1300以上のクラスタに分割されるシステムを使用して、最も優化された推奨を用户提供します。しかし、Netflixはすぐにスケール問題に直面しました。月間ユーザー数が何千百万人に達し、全体のユーザー数が200百万人を越えると、Netflixはクラウドコンピューティングに全面的に取り組むことにしました。

簡単に言うと、彼らは2008年からアマゾン・ウェブサービス(AWS)に全てのデータを移行しました。完全な移行プロセスは数年間かかり、2015年に完了しました。ニトロflixはAWSを使用して年間10億ドル以上を節約していると報じられています。AWSは機械学習のサポートが内置されていて、ニトロflixはそれを充分利用しています。2022年には、ニトロflixは10万台のAWSサーバーと1000のKinesisのシャードを使ってグローバルな观众を対象にしていました。

2015年以降、ニトロflixはまた自社の制作を開始し、幅広いフォーマットの何千もの映画とテレビ番組を提供し始めました。ニトロflixの推奨アルゴリズムは非常に自動化されており、日に数千のユーザーに対するA/Bテストを行います。今日のニトロflixのユーザー登録数は2.8億人を超えました。

しかし、ニトロflixは現在、特にディズニー+による強力な競争に直面しており、マーベルやスターウォーズのフランチェーズを取得したディズニー+による競争に直面しています。その会社は2025年までに5億人のユーザーを獲得する目標を持っています。

昨年、ニトロflixは310億ドルの収益を記録しました。

現在の推奨システムの主要な部分は以下の通りです:

  1. 強制学習:ユーザーの行動に応じて、ニトロflixは実時間で画面上のコンテンツを変更します。したがって、システムは常に変化し、ユーザーとのやり取りによって変化し続けます。
  2. 深層の人工知能ネットワーク: データの规模(15,000のショー以上とほぼ3億のユーザー)により、標準的な machine learning(ML)技術を適用するのは容易ではない。NVIDIAの技術を広く利用して、 deep learningを幅広く適用しています。この記事の最後に、NVIDIAの最新のMerlin深層学习技術を使用したプログラムの情報があります。
  3. 行列分解: 高稀疏性と大規模な行列に対して Singular Value Decomposition(SVD)を効果的に行い、Netflixは各ユーザーが特定のジャンルやショーに対する重要性和魅力的な評価を推定しています。
  4. 集成学習: 上記の技術を巧みに組み合わせることで、どの2人のユーザーも同じ画面を見ることはないようにする推奨を实时に調整しています。これこそが大きな利益を生み出し、NetflixがOTTプラットフォームのトップを保持するための要因です。

これらのモデルと最適化は、数百万のユーザーにとって一日に数十万回実行されています。

现代の深層学習技術

この规模では、一台のコンピュータだけでこれらのMLモデルを実行することはできません。それで、AWSは数千台のマシン上で分散的にMLアルゴリズムを実行しています。

NVIDIAは最近、推奨システムをスケールに适応させるためにいくつかの製品を発売しました。NVIDIAのGPUクラスタも、MLアルゴリズムの実行に大変重要な役割を果たしています。NVIDIAは最近、Merlinという高性能の推奨アルゴリズムを発売しました。これは、データセットのサイズが单機で処理できる範囲を超えるようになってから、おそらく必ずしも時間がかかるものでした。

modern recommendation systems use deep learning extensively. As part of DL, GPU / TPU computing systems are extensively used to speed up computation.

Some of NVIDIA’s recent offerings for Merlin include:

NVIDIA Recommender Systems

(From Announcing NVIDIA Merlin: An Application Framework for Deep Recommender Systems)

Available as open-source projects:

NVTabular

NVTabularは、特徴工程と前処理を行うライブラリであり、 TB规模のデータセットを素早く簡単に操作するために設計されています。特に、推薦システムに適しています。これは、ユーザーやアイテムのメタデータや上下文信息など、追加情報を处理的に処理するスケーラブルな方法が必要です。NVTabularは、RAPIDS cuDFライブラリを使用してGPU上で計算を加速し、コードを簡素化する高层次の抽象化を提供します。NVTabularを使用すると、たった10~20行の高层次APIコードで、データ工程のパイプラインを設定でき、CPUベースの最適化された手法と比較して10倍のスピードアップを実現できます。GPU/CPUのメモリ容量に関係なく、データセットのサイズ制限はなくなります。

HugeCTR

HugeCTRは、推奨モデルの訓練に優れているGPUフレームワークであり、高性能と使用の簡便性を目指しています。それは、単純な深いモデルだけでなく、W&DDeep Cross NetworkDeepFMなどの最も最先端のハイブリッドモデルもサポートしています。また、DLRMもHugeCTRで有効化する対象です。モデルの詳細や超パラメーターはJSON形式で簡単に指定でき、一般的なモデルの選択肢をすぐに決めることができます。

TensorRTとTriton Serverによる推論

NVIDIA TensorRTは、高性能の深度学習(DL)推論用のSDKです。これには、推論アプリケーション用の低 latency と高 throughput を実現するDL推論最適化器とランタイムが含まれています。TensorRTは、一般的なインターフェース、開発 neural network exchange format(ONNX)を使用して、すべてのDLフレームワークからトレーニングされたneural networkを受け付けます。

NVIDIA Triton Inference Serverは、NVIDIA GPUに最適化されたクラウド推論ソリューションを提供します。このサーバーはHTTPまたはgRPCのエンドポイントを通じて推論サービスを提供し、远隔客户端がサーバーが管理している任意のモデルに推論要求を行えます。Triton Serverは、TensorFlow、PyTorch (TorchScript)、ONNX runtime、TensorRT runtimeなどのいくつかのバックエンドを使用して、DL推奨モデルをサービスします。

コードの例

以下のコード例は、1TBのCriteo Adsデータセットを変換するために必要な実際の前処理ワークフローを示しています。NVTabularを使用して、たった数十行のコードで実装しました。簡単に言えば、数値とカテゴリの列を指定します。次に、NVTabular workflowを定義し、トレーニングと検証のファイルを提供します。その後、 workflowに前処理操作を追加し、データをディスクに持久化します。比較的に、FacebookのDLRM実装のdata utilなどのカスタムビルトの処理コードは、同じパイプラインには500~1000行のコードが必要です。

Python

 

import nvtabular as nvt
import glob
 
cont_names = ["I"+str(x) for x in range(1, 14)] # specify continuous feature names
cat_names = ["C"+str(x) for x in range(1, 27)] # specify categorical feature names
label_names = ["label"] # specify target feature
columns = label_names + cat_names + cont_names # all feature names
 
# Workflowの初期化
proc = nvt.Worfklow(cat_names=cat_names, cont_names=cont_names, label_name=label_names)
 
# 入力ファイルからデータセットを作成
train_files = glob.glob("./dataset/train/*.parquet")
valid_files = glob.glob("./dataset/valid/*.parquet")
 
train_dataset = nvt.dataset(train_files, gpu_memory_frac=0.1)
valid_dataset = nvt.dataset(valid_files, gpu_memory_frac=0.1)
 
# フィーチャーエンジニアリングと前処理オペレーションをWorkflowに追加
proc.add_cont_feature([nvt.ops.ZeroFill(), nvt.ops.LogOp()])
proc.add_cont_preprocess(nvt.ops.Normalize())
proc.add_cat_preprocess(nvt.ops.Categorify(use_frequency=True, freq_threshold=15))
 
# 統計を計算し、データを変換し、ディスク上にエクポート
proc.apply(train_dataset, shuffle=True, output_path="./processed_data/train", num_out_files=len(train_files))
proc.apply(valid_dataset, shuffle=False, output_path="./processed_data/valid", num_out_files=len(valid_files))

全体の技術スタックは以下のGitHubリポジトリにあります:

結論

推薦システムは長い道を走りました。

シンプルな統計モデルから、コンテントベースのフィルタリング、協同フィルタリングに至り、今は深度学習のニューラルネットワーク、HPCノード、行列分解、そしてそれをより大きな次元に拡張する张量分解にいます。

最も利益を得る推薦システムはNVIDIAで、彼らはAWS上ですべての機械学習アルゴリズムを実行しています。

推薦システムはGoogleからMicrosoftからAmazonからFlipkartまで、すべての会社で使用されています。それは現代の企業の重要な部分であり、 онラインの会社にはそれを何らかの形で使用していないものはありません。

今日、カスタム推荐システムを提供する会社が多く存在しています。

主要な会社の中には以下が含まれます:

  1. Netflix: ユーザーの視聴习惯を分析し、映画とテレビ番組の推奨を行う洗練された推薦エンジンで知られています
  2. Amazon: ユーザーの購入履歴とブラウsing行動に基づいて商品を推奨する強力な推薦エンジンを使用しています。
  3. スポットify: ユーザーのリスニング歴に基づいて、音楽プレイリストと曲の提案をCurateする推奨システムを採用しています。
  4. YouTube: ユーザーの視聴パターンと好みに基づいて、動画を推奨する推奨エンジンを使用しています。
  5. LinkedIn: ユーザーのプロフィールと职业歴に基づいて、仕事、コネクション、およびコンテンツを推奨しています。
  6. Zillow: ユーザーの好みと過去の検索歴史に基づいて、適切な不動産物件を提示しています。
  7. Airbnb: ユーザーの旅行歴と好みに基づいて、宿泊先の推奨を提供しています。
  8. Uber: ユーザーの好みや過去の乗車歴に基づいて、ライドオプションを推奨しています。
  9. IBMコーポレーション: 推薦エンジン市場のリーダーで、さまざまなAI駆動の解決策を提供しています。
  10. グーグル株式会社(アルファベット株式会社): 独自のプラットフォームで推奨システムを提供し、幅広いデータ分析を活用しています。

あなたの会社がこの優れたリストに一員になる日が来ることを期待してください。そして、おEnterpriseに最良好的ご祝福をしています。

どの部門においても、オンラインに存在感を持つ必要があれば、推奨システムをいかにしても利用する必要があります。この分野をさらに探求し、もし優れた専門知識を持っているなら、高い需求に直面することを保証します。

学びを止めずにいて、情熱を失わず、自身の成長の無限の可能性を常に信じていましょう。あなたの未来はあなたの手の中にあります。それを素晴らしいものにしていくのです!

参考文献

  1. 推奨システム – Wikipedia
  2. 推奨システムとは何か – GeeksforGeeks
  3. 推奨システムの種類:どのように機能し、用途の例(almabetter.com)
  4. 推奨システムと機械学習(itransition.com)
  5. Python 101の推奨システム(kaggle.com)
  6. 推奨システムアルゴリズムの概览 – KDnuggets

Source:
https://dzone.com/articles/a-deep-dive-into-recommendation-algorithms-with-ne