∂f ∂Hkj = 0˰ V HT − W HHT = 0 (4) W T V − W T W H = 0 (5) 1. H ΛϥϯμϜʹॳظԽɻ 2. (4)ࣜΛW ʹ͍ͭͯղ͘ɻ 3. (5)ࣜΛH ʹ͍ͭͯղ͘ɻ 4. ऩଋ͢Δ·Ͱ2ͱ3Λަޓʹ(Alternating)܁Γฦ͢ɻ ϑϩϕχεϊϧϜ =ࠩͷ 2Λ࠷খԽ (Least Squares) 10
wixi + n ∑ i=1 n ∑ j=i+1 (⃗ vi · ⃗ vj )xixj (7) ʢύϥϝʔλ͕ٻ·ͬͨͱͯ͠ʣBobʷTitanicͷධՁΛਪఆ͢Δɻ ⃗ xB−T I = (0 1 0 1 0 0 0) Λ(7)ࣜʹೖΕΔͱ: ˆ y(⃗ xB−T I ) = w0 + w2 + w4 + ⃗ v2 · ⃗ v4 ͜ΕΛBiased MFͷ(6)ࣜ: ˆ VB−T I = µ + wB + wT I +⃗ vB ·⃗ vT I ͱൺֱ͢ΔͱͽͬͨΓҰக͍ͯ͠Δʂ ఏএऀͷRendle͞ΜจதͰ A FM using this feature vector x is identical to the matrix factorization model because xj is only non-zero for u and i ͱॻ͍͍ͯ·͢ɻ 19
2 ˆ y(⃗ x) = w0 + n ∑ i=1 wixi + n ∑ i=1 n ∑ j=i+1 (⃗ vi · ⃗ vj )xixj ΛSGDͳͲΛ༻͍ͯ࠷খԽ͢Δ͜ͱʹΑΓύϥϝʔλwi, ⃗ vi ΛܾΊ Δ͜ͱ͕Ͱ͖Δɻ(ೖྗϕΫτϧͷ͕૿͑ͨɺύϥϝʔλ૿͑ ͍ͯΔ) BobʷTitanicͷ༧ଌ (ධՁ࣌ظ20106݄) ⃗ xB−T I = (0 1 0 1 0 0 0 1 3 0 1 3 1 3 18) ˆ y(⃗ xB−T I ) = w0 + wB + wT I + 1 3 w T I + 1 3 w SW + 1 3 w ST + 18wT +⃗ vB · ⃗ vT I + 1 3 ⃗ vB · ⃗ v T I + 1 3 ⃗ vB · ⃗ v SW + 1 3 ⃗ vB · ⃗ v ST + 18⃗ vB · ⃗ vT + 1 3 ⃗ vT I · ⃗ v T I + 1 3 ⃗ vT I · ⃗ v SW + 1 3 ⃗ vT I · ⃗ v ST +18⃗ vT I · ⃗ vT + 1 9 ⃗ v T I · ⃗ v SW + 1 9 ⃗ v T I · ⃗ v ST + 6⃗ v T I · ⃗ vT + 1 9 ⃗ v SW · ⃗ v ST + 6⃗ v SW · ⃗ vT + 6⃗ v ST · ⃗ vT 22
SELECT feature, avg(Wi) AS Wi, array_avg(Vif) AS Vif FROM ( SELECT train fm(features, rating, ’-factor 2 -iters 50 -min 1 -max 5’) AS (feature, Wi, Vif) FROM observed_features ) t GROUP BY feature ༧ଌ SELECT t1.rowid, fm predict(p1.Wi, p1.Vif, t1.Xi) as predicted FROM features_to_be_predicted_exploded t1 LEFT OUTER JOIN fm model p1 ON (t1.feature = p1.feature) GROUP BY t1.rowid 24