最初に、どのような状況で何を推奨するのかを正確に決定する必要があります。考慮すべきことがたくさんあります。「Xを購入した他のユーザーがYも購入した」ことを検討しますか?お互いに似た性質を持つアイテムだけを推薦するつもりですか?あちらとこっちの方が使いやすい、という関係のアイテムをオススメしていますか?
他にも多くの決定があると思いますが、それぞれに独自の目標があります。上記のすべてを処理するように 1 つの巨大なネットワークをトレーニングすることは非常に困難です。
ニューラル ネットワークはすべて同じものに要約されます。与えられた一連の入力があります。ネットワーク トポロジがあります。活性化機能があります。ノードの入力に重みがあります。出力があり、エラーを測定して修正する手段があります。それぞれのタイプのニューラル ネットワークには、これらのことを行う独自の方法があるかもしれませんが、それらは常に存在しています (私の限られた知識では)。次に、既知の出力結果を持つ一連の入力セットをフィードして、ネットワークをトレーニングします。このトレーニングセットを、トレーニングの過不足なしに好きなだけ実行すると(次の人の推測と同じくらいあなたの推測です)、準備が整います。
基本的に、入力セットは、手元にある基本的な機能に関連すると思われる特定の品質のセットとして説明できます (例: 降水量、湿度、温度、病気、年齢、場所、コスト、スキル、時刻、日)ある曜日にゴルフに行くかどうかを決定する上で、週の曜日、勤務状況、および性別のすべてが重要な役割を果たしている可能性があります)。したがって、何を推奨しようとしているのか、またどのような条件の下にあるのかを正確に判断する必要があります。ネットワーク入力は、本質的にブール値 (たとえば、0.0 が false で 1.0 が true) または疑似連続空間 (0.0 はまったくないことを意味し、.45 は多少、.8 は可能性が高いことを意味し、1.0 は可能性を意味する) にマップすることができます。はい)。この 2 番目のオプションは、特定の入力の信頼度をマッピングするツール、または関連性があると思われる単純な数学計算を行うツールを提供する場合があります。
これが役に立ったことを願っています。あなたは続けるために多くを与えませんでした:)