
-馬に行く、あなたは一世紀の意志を見ることはありません!
ユーザーとの対話方法を改善するために、Tencentは推奨システムを導入しました。 このシステムは機械学習法に基づいており、ユーザーがゲーム内での購入について決定を下せるように設計されています。
Tencentのビジネスはインターネットに基づいています。 同社は、ソーシャルネットワーク、Webポータル、eコマースソリューション、オンラインマルチプレイヤーゲームなど、多くのサービスを提供しています。 ここでは、 推奨システムとは何か、Tencentが使用する機械学習アルゴリズム、およびIntel XeonファミリーのプロセッサがTencentのシステムパフォーマンスの向上にどのように貢献したかについて説明します。
レコメンダーシステム
レコメンダーシステムは、ユーザーに推奨されるアイテムのリストを発行するメカニズムであり、その中から何かを選択できます。 このようなシステムは、ユーザーが正確に必要なものを決定するのに役立つために広く使用されています。 これらのシステムはゲームに限定されません。 それらは、楽曲、映画、科学出版物などの選択に使用されます。
Tencentの場合、推奨システムのアプリケーションの1つは、ユーザーに自分のニーズに合ったゲーム製品をアドバイスすることです。
推奨システムは、 コラボレーティブフィルタリング 、 コンテンツフィルタリング 、 ハイブリッドアプローチなどの方法を使用して要素のリストを作成します。
協調フィルタリングは、評価またはユーザーの行動に基づいて推奨事項を提供するアルゴリズムです。 彼は、すでに習得したユーザーと新しいユーザーの類似性に基づいて、後者がどのようなものになるかをアクティビティまたは好みを分析して予測します。
コンテンツフィルタリングアルゴリズムは、オブジェクトのプロパティ、ユーザーに関する情報、およびユーザーの興味に基づいて推奨事項を作成します。
ハイブリッドアルゴリズムには、上記の2つのアプローチのすべてが最適です。 Tencentは、推奨システムで、ロジスティック回帰に基づいた機械学習アルゴリズムを使用しています。 アルゴリズムの種類について簡単に説明します。
ロジスティック回帰
ロジスティック回帰は、予測分析の統計的手法です。 これは、バイナリ分類のための最も一般的な機械学習方法の1つです。 このような分類は、2つのクラスの存在を意味します。 たとえば、「win」または「lose」、「yes」または「no」、「true」または「false」、「1」または「0」です。 これは、たとえば、レースに賭けるときに起こります。 馬はレースに勝つか負けます。つまり、「勝つ」と「失う」の2つのクラスがあります。 この場合、ターゲット(従属)変数はレートです。 馬がレースに勝った場合、値は1になり、それ以外の場合は0になります。
ロジスティック回帰は、次の式を使用して、イベント発生のオッズ比の対数の確率を見つける方法です。

pはイベントの確率です。
1-pは、イベントが存在しない確率です。
βは重量です。
xは独立変数です。
計算の過程で、係数βは、イベントの確率を予測するための上記の式にあります。
Tencent推奨システムとIntel Xeon E5 v4
Tencentの機械学習システムは、使用するゲームアイテムに関する推奨事項を策定するために、プレーヤーの行動に関する大量のデータを分析します。 したがって、モデル学習の加速を最大化するには、深刻な計算能力が必要です。 ロジスティック回帰係数を計算するために、 DGEMMが積極的に使用されます。 DGEMMは、倍精度浮動小数点数用の行列乗算関数です。
機械学習システムは、 Intel Math Kernel Library (Intel MKL)を介してDGEMM関数を使用します。 Intel Xeon E5 v4プロセッサは、 Intel Advanced Vector Extensions 2 (Intel AVX2)命令セットをサポートしています。 インテル®MKLは最適化されており、インテル®AVX2を使用して非常に高いパフォーマンスを実現できます。 ライブラリは、プロセッサの新しい機能を自動的に決定し、そのために設計されている場合、それらを使用します。 したがって、インテルMKLが特定のプロジェクトに関与している場合、新しいプロセッサーで最高レベルのパフォーマンスを確保するには、ライブラリを最新に保つだけで十分です。
性能試験
ここでは、Tencentの機械学習アルゴリズムを実装するアプリケーションを使用する場合のデュアルプロセッサシステムのパフォーマンスを比較します。
最初のシステムはIntel Xeon E5-2699 v3(2.3 GHz、18コア、45 MBキャッシュ)に基づいており、128 GB RAM(DDR4-2133 MT / s)を搭載しています。
2つ目は、Intel Xeon E5-2699 v4プロセッサ(2.2 GHz、22コア、55 MBキャッシュ)と同じRAMを使用し、ボリュームと特性の点で異なります。
Red Hat Enterprise Linux 7.2-kernel 3.10.0-327がテストマシンにインストールされています。 次のソフトウェアが使用されます:GNU C Compiler Collection 4.8.2、OpenJDK 7、Spark 1.5.2、Intel MKL 11.3。
次のテスト結果は、アプリケーションのパフォーマンスと、それに応じた係数計算モジュールのパフォーマンスの改善を示しています。

Intel Xeon E5-2699 v3およびv4プロセッサを使用したアプリケーションパフォーマンスの比較。
このアプリケーションはスケーリングをサポートし、より多くのコアを持つIntel Xeon E5-2699 v4で実行する場合、Intel Xeon E5-2699 v3よりも多くの並列プロセスを実行できるため、システムトレーニング時間が短縮され、生産性が向上します。
そして、これは、Intel AVX2命令セットをオフにしてオンにしたIntel Xeon E5-2699 v4のテスト結果です。 AVX2では、ロジスティック回帰係数計算モジュールの動作が44%高速であることがわかります。

Intel AVX2を無効および有効にしたIntel Xeon E5-2699 v4のロジスティック回帰係数計算モジュールのパフォーマンスの比較
上記のテスト結果は、特定のソフトウェアとハードウェアのセットに対して有効であり、さらに、Intelプロセッサのソフトウェア最適化の結果を反映していることに注意してください。 設定を変更すると、これらの結果が変わる可能性があります。 同じことが、結果に対する構成の影響の観点から、ユニバーサルパフォーマンステストにも当てはまります。 したがって、機器の購入を決定する際には、まずパフォーマンスに関するさまざまな情報源を使用し、次にマイクロプロセッサーとRAMまたはシステムの他のハードウェアとソフトウェアコンポーネントの組み合わせがパフォーマンスにどのように影響するかを考慮することが重要です。 Intelシステムのパフォーマンスの詳細については、 こちらをご覧ください 。
結論
ゲーム内購入の推奨システムは、Tencentゲームに組み込まれています。 パフォーマンスの最適化により、意思決定プロセスを高速化することができます。これにより、システムはプレーヤーに最適なゲームアイテムをすばやく推奨できます。 インテルMKLライブラリーは、インテルAVX2命令セットを使用します。これにより、インテルXeonプロセッサーを搭載したシステムで使用されるアプリケーションのパフォーマンスが向上します。