Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ 特異値分解を用いたスパースインタラクション行列の分解 | 行列分解によるディープパーソナライゼーション
マーケットバスケット分析とレコメンデーションシステム

特異値分解を用いたスパースインタラクション行列の分解

メニューを表示するにはスワイプしてください

SVDの概要

Note
定義

**特異値分解(Singular Value Decomposition, SVD)**は、行列を3つのより単純な行列に分解する強力な数学的手法。

レコメンデーションシステムの文脈では、SVDは大規模かつ疎なユーザー・アイテム相互作用行列を分析・圧縮し、隠れたパターンや関係性を明らかにするためによく利用される。

数学的説明

行列A(ユーザー・アイテム相互作用行列など)が与えられた場合、SVDはこれを3つの行列UΣV^Tに分解する。関係式は次のように表される:

A = U Σ V^T
  • Uは左特異ベクトルを列にもつ行列
  • Σ(シグマ)は特異値を対角成分にもつ対角行列
  • V^Tは右特異ベクトルを列にもつ行列の転置

この分解により、最も重要な特異値とベクトルのみを用いて元の行列を近似できるため、高次元かつ疎なデータに特に有用。

レコメンデーションにおける役割

レコメンデーションシステムでは、ユーザー・アイテム行列は多くの場合疎で、多数の欠損値(例:未評価の商品)が存在する。SVDは観測された相互作用を説明する潜在特徴を抽出するのに役立つ。特異値の数を減らして行列を再構成することで、欠損値を予測できる—つまり、ユーザーがまだ関与していないアイテムをどのように評価するかを推定できる。これにより、明示的なデータだけでなく、推定された嗜好に基づくパーソナライズされた推薦が可能となる。

疎なユーザー・アイテム行列へのSVDの適用

ユーザーが行、アイテムが列を表すユーザー・アイテム行列があるとする。多くの要素が欠損(またはゼロ)となっており、これは未知のユーザー嗜好を示す。SVDを適用することで、行列を本質的な要素に分解し、再構成によって欠損値を推定できる。これを利用して推薦を生成することが可能となる。

123456789101112131415161718192021222324252627282930
import numpy as np # Example sparse user-item matrix (0 indicates missing/unknown rating) user_item_matrix = np.array([ [5, 3, 0, 1], [4, 0, 0, 1], [1, 1, 0, 5], [0, 0, 5, 4], [0, 1, 5, 4], ]) # Filling missing values (0) with the mean of non-zero elements for SVD mean_value = user_item_matrix[user_item_matrix != 0].mean() filled_matrix = np.where(user_item_matrix == 0, mean_value, user_item_matrix) # Performing SVD U, sigma, VT = np.linalg.svd(filled_matrix, full_matrices=False) # Keeping only top 2 singular values for dimensionality reduction k = 2 U_k = U[:, :k] sigma_k = np.diag(sigma[:k]) VT_k = VT[:k, :] # Reconstructing the matrix using only top k components approx_matrix = np.dot(np.dot(U_k, sigma_k), VT_k) print('Original matrix with missing values filled:') print(np.round(filled_matrix, 2)) print('\nApproximated matrix (using top 2 singular values):') print(np.round(approx_matrix, 2))

1. SVDにおいて、各潜在特徴の重要性を捉える特異値を含む行列はどれですか?

2. 推薦システムにおいて、ユーザー-アイテム行列にSVDを適用する主な目的は何ですか?

question mark

SVDにおいて、各潜在特徴の重要性を捉える特異値を含む行列はどれですか?

正しい答えを選んでください

question mark

推薦システムにおいて、ユーザー-アイテム行列にSVDを適用する主な目的は何ですか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 4.  2

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 4.  2
some-alt