Recommendation Algorithm - Basic
2021-1νκΈ°, λνμμ βκ³Όμ μ°κ΅¬β μμ μμ μ§ννλ κ°μΈ νλ‘μ νΈλ₯Ό μν΄ κ°μΈμ μΌλ‘ μ 리ν ν¬μ€νΈμ λλ€. μ§μ κ³Ό κ΅λ₯λ μΈμ λ νμμ λλ€ :)
Introduction to Filtering
1. Contents-based Filtering; CBF
μ¬μ©μ λλ μμ΄ν μ λν βνλ‘ν λ°μ΄ν°βλ₯Ό κ°μ§κ³ , νλ‘νμ΄ μ μ¬νλ€λ©΄ κ·Έ λμκ³Ό μ°κ΄λ μμ΄ν μ μΆμ²νλ λ°©μ
λ§μ½ μ μ νλ‘νμ μμ±ν΄ μ μ¬λλ₯Ό ꡬνλ€λ©΄, user-based recommendation, μμ΄ν μ νλ‘νμ μμ±ν΄ μ μ¬λλ₯Ό ꡬνλ€λ©΄, item-based recommendation.
λ¨μ : λͺ¨λ μμ΄ν μ λν νλ‘νμ λ§λλ κ²μ΄ μ΄λ €μ°λ©°, νλ‘νμ λ§λλ κ³Όμ μμ κ°μΈμ βμ£Όκ΄βμ΄ κ°μ νλ€.
2. Collaborative Filtering; CF π₯
νλ‘ν λ°μ΄ν° μμ΄, μ¬μ©μμ βκ³Όκ±° νλ λ°μ΄ν°βλ§μ κ°μ§κ³ μΆμ²μ μ§ννλ λ°©μ
νμ , μμ½ κΈ°λ‘ λ±μ΄ κ³Όκ±°μ νλ λ°μ΄ν°λ‘ μμ§λ μ μλ€!
μ₯μ : λ°μ΄ν°μ μ μκΈ°κ° μ½λ€! κ·Έλ¦¬κ³ μΌλ°μ μΌλ‘ CBFλ³΄λ€ λ μ’μ μ±λ₯μ λΈλ€κ³ μλ €μ Έ μλ€.
λ¨μ : κ·Έλ¬λ κ³Όκ±° λ°μ΄ν°κ° μλ μ κ· μ¬μ©μμ λν΄μ μΆμ² μ νλκ° λ¨μ΄μ§λ Cold Start λ¬Έμ κ° λ°μνλ€.
3. Hybrid Filtering
CBFμ CFλ₯Ό ν¨κ» μ¬μ©νλ κΈ°λ²μ.
(1) λ μκ³ λ¦¬μ¦μ λͺ¨λ μννκ³ , λ μκ³ λ¦¬μ¦μ κ²°κ³Όμ λν΄ Weighted Averageλ₯Ό μ·¨ν΄ μΆμ²νλ <Combining Filtering>.
(2) νμ λ°μ΄ν°μ μμ΄ν νλ‘νμ μ‘°ν©ν΄ μ¬μ©μμ λν νλ‘νμ λ§λ€μ΄ μΆμ²μ μ§ννλ <Collaboration via Content>.
(3) μ²μμλ CBFλ₯Ό μ¬μ©νλ€κ° λ°μ΄ν°κ° μΌμ μ μ΄μ μμ΄κΈΈ κΈ°λ€λ € μ΄νμλ CFλ₯Ό μ μ©
Explicit & Implicit Dataset
(μΆμ²: κ°μλ¨Ήλ μΆμ² μκ³ λ¦¬μ¦)
CFλ₯Ό κΈ°μ€μΌλ‘ μμ κ°μ΄ μμ΄ν
μ λν μ¬μ©μλ€μ νμ μ μ 리ν νλ ¬μ΄ μ‘΄μ¬νλ€κ³ νμ. μ΄λ, μ¬μ©μλ€μ΄ λͺ¨λ μμ΄ν
μ λν΄ νκ°λ₯Ό λ¨κ²¨μ£Όλ κ²½μ°λ λλ¬ΌκΈ° λλ¬Έμ νλ ¬μλ NaN
κ°λ€μ΄ κ½€ μ‘΄μ¬νλ€.
μ°λ¦¬λ μ΄ NaN
κ°λ€μ΄ μ‘΄μ¬νλμ§, λ€λ₯΄κ² νννλ©΄ λͺ¨λ μμ΄ν
μ λν΄ μ νΈμ λΉμ νΈμ λν κ°μ΄ μ‘΄μ¬νλμ§μ λ°λΌ <Explicit Dataset>κ³Ό <Implicit Dataset>μΌλ‘ ꡬλΆνλ€.
1. Explicit Dataset
<Explicit Dataset>μ μ¬μ©μκ° μ νΈμ λΉμ νΈλ₯Ό λͺ νν ꡬλΆν λ°μ΄ν°μ μ λ§νλ€. μν νμ μ κ²½μ°μμ 5κ° μ νΈ, 1μ΄ λΉμ νΈλ₯Ό μλ―Ένλ€. μ¦, λ°μ΄ν°μ μ μ 보λ₯Ό ν΅ν΄ μ¬μ©μκ° λͺ¨λ κ°λ³ μμ΄ν μ λν μ νΈ μ¬λΆλ₯Ό νμ ν μ μλ λ°μ΄ν°μ μ΄λ€.
κ·Έλ¬λ μ΄λ° κ²½μ°λ μ΄μμ μ΄κ³ , νΉμν κ²½μ°λ‘ νμ€μ λ°μ΄ν°μμλ λͺ¨λ μμ΄ν μ λν μ νΈκ° κ²°μ λμ΄ μμ§ μλ€. κ·Έλ κΈ° λλ¬Έμ μ°λ¦¬λ <Implicit Dataset>μ μ΄λ»κ² μ²λ¦¬ν μ§λ₯Ό λ κ³ λ―Όν΄μΌ νλ€.
2. Implicit Dataset
<Implicit Dataset>μ κ²½μ°, μ€μ§ μ¬μ©μκ° ν΄λΉ μμ΄ν μ μΌλ§λ μλΉνλμ§, μ¦ βλΉλβλ§μ κΈ°λ‘ν λ°μ΄ν°μ μ΄λ€. μΌνλͺ°μ ν΄λ¦ μ¬λΆ, μνμ λν ꡬ맀 νμκ° λ±μ΄ μ΄κ²μ μ’μ μ¬λ‘μ΄λ€.
How to?
μμμ μ μν νμ νλ ¬λ‘ λ€μ λμμ€μ. μΆμ² μκ³ λ¦¬μ¦μ λͺ©νλ NaNμ μ΄λ€ κ°μ΄ λ€μ΄κ°μ§ μμΈ‘νλ κ²μ΄λ€.
λ§μ½ μ°λ¦¬κ° νμ νλ ¬μ Explicit Datasetλ‘ ν΄μνλ€λ©΄, μ°λ¦¬λ μ νΈλκ° λͺ νν λ°μ΄ν°μ λ€λ§μΌλ‘ νμ΅μ μν¨λ€. μ¦, NaN λ°μ΄ν°λ€μ μ μΈνκ³ μκ³ λ¦¬μ¦μ μ€κ³νκ³ νμ΅μν¨λ€λ λ§μ΄λ€.
λ°λ©΄μ νμ νλ ¬μ Implicit Datasetλ‘ ν΄μνλ€λ©΄, μ°λ¦¬λ μ¬μ©μκ° μ΄λ€ μμ΄ν μ μ νΈνλμ§ μμ§λ§, μ΄λ€ μμ΄ν μ λΉμ νΈνλμ§λ μμ§ λͺ»νλ€. λν, μ NaNμ μ¬μ©μκ° μ’μνλ μμ΄ν μ΄ μμ μλ μκ³ μμ μλ μλ€. κ·Έλμ μ΄ κ²½μ°λ NaN λ°μ΄ν°λ€μ ν¬ν¨ν΄ μκ³ λ¦¬μ¦μ μ€κ³νκ³ νμ΅μ μν¨λ€.
How to implement?
κ·Έλ λ΄ Explicitμ΄λ Implicitμ΄λ , NaNμ μ΄λ»κ² μ²λ¦¬ν μ§λ μ νμΌλ, κ·ΈλΌ μ΄λ»κ² κ·Έλ¦¬κ³ μ΄λ€ μκ³ λ¦¬μ¦μ μ¬μ©ν΄μΌ ν κΉ? μ¬κΈ°μλ λνμ μΈ λ λ°©λ²μΈ <Neighborhood Model>κ³Ό <Latent Factor Model>μ μ΄ν΄λ³Έλ€.
1. Neighborhood Model
<NM; Neighborhood model>μ νμ λ°μ΄ν°λ₯Ό λ°νμΌλ‘ μλ‘ μ μ¬ν μ μ νΉμ μμ΄ν μ μ°Ύλλ€. μ΄λ, λ λμ μ¬μ΄μ μ μ¬λλ₯Ό μΈ‘μ ν΄μΌ νλλ° κ·Έ μ€ νλλ‘ <Person Correlation>μ μΈ μ μλ€.
Definition. Person Correlation
$r_{XY} = 1$μ΄λ©΄, μ(+)μ μκ΄κ΄κ³λ₯Ό, $r_{XY} = -1$μ΄λ©΄, μ(-)μ μκ΄κ΄κ³λ₯Ό κ°μ§λ€.
λ§μ½ μ μ $X$μκ² μ΄λ€ μνλ₯Ό μΆμ²νκ³ μΆλ€λ©΄ κ° μ μ μ νμ λ²‘ν° $\mathbf{x}$μ λ€λ₯Έ μ μ λ€μ νμ 벑ν°μ λν΄ λͺ¨λ Corrλ₯Ό ꡬν νμ μ μ¬λκ° κ°μ₯ ν° μ μ λ₯Ό νΉμ νλ€. κ·Έλ¦¬κ³ κ·Έ μ μ κ° λμ νμ μ μνλ₯Ό μ μ $X$μκ² μΆμ²νλ©΄ λλ€. μ΄ κ²½μ°λ₯Ό <User-oriented Neighborhood model>μ΄λΌκ³ νλ€.
λ°λλ‘ μμ΄ν μ¬μ΄μ Corrλ₯Ό ꡬν μλ μλ€. κ·Έλ¦¬κ³ μ΄ μ€ κ°μ₯ μ μ¬ν $K$μ μμ΄ν μ λ¬Άμ΄μ€ μλ μμ κ²μ΄λ€. μ΄λ° μν©μ μκ°ν΄λ³΄μ. λ΄κ° λ·νλ¦μ€μμ μ΄λ€ μν ννΈμ μ ννλ€. κ·Έλ¦¬κ³ νλ©΄ νλ¨μλ κ·Έ μνμ μ μ¬ν $K$μ μνλ€μ΄ λμ΄λμ΄ μλ€. μ΄λ, μν μΆμ²κ³Ό ν¨κ» λ΄κ° μ€ βμμ νμ βλ ν¨κ» μ 곡λλ€. λλ λΆλͺ μ΄ μ μνλ₯Ό λ³Έμ μ΄ μλλ°, βμμ νμ βμ μ΄λ»κ² μ λλ κ²μΌκΉ? μ΄λ, λ±μ₯νλ κ²μ΄ <Neighborhood Algorithm>μ΄λ€.
Definition. Neighborhood Algorithm
- $\hat{s}_{ui}$: predicted score that user $u$ will give to movie $i$.
- $r_{ij}$: similarity btw movie $i$ and movie $j$.
- $s_{uj}$: score that user $u$ has rated to movie $j$.
- $S(i; u, K)$: $K$ number of neighbors of movie $i$, which are rated by user $u$.
μ리λ κ°λ¨νλ€. κ·Έλ₯ μν $i$μ λ΄κ° νμ μ 맀긴 μνλ€ μ¬μ΄μ similarityλ₯Ό ꡬνκ³ μ΄λ₯Ό λ°νμΌλ‘ κ°μ₯ μ μ¬ν $K$κ°λ₯Ό μ μ νλ€. κ·Έλ¦¬κ³ λ΄κ° 맀긴 νμ λ€μ similarityλ₯Ό λ°νμΌλ‘ κ°μ€ν©μ ν΄ νλ²λ λ³΄μ§ μμ μνμ νμ μ μμΈ‘νλ€! π
μ΄λ° NMμ Explicit Datasetμ λ μ ν©νλ©°, Implicit Datasetμ NM 보λ€λ μλμμ μ€λͺ ν <Latent Factor Model>μ΄ λ μ ν©νλ€!
2. Latent Factor Model
<Latent Factor Model>μ κ΄μ°°λ λ°μ΄ν°μ μ μ¬ λ°μ΄ν°μ κ΄κ³μμ μ λνλ λͺ¨λΈμ΄λ€. κ·Έλ¦¬κ³ λ₯λ¬λ μμ Latent Factor Modelμ μΌμ’ μΌλ‘ νκ°λλ€.
(μΆμ²: κ°μλ¨Ήλ μΆμ² μκ³ λ¦¬μ¦)
μ°λ¦¬λ μ£Όμ΄μ§ νμ λ°μ΄ν° $R$μ μ¬μ©μμ μμ΄ν μ Latent Factor $X$, $Y$λ‘ λΆν΄νλ€. κ·Έλ¦¬κ³ μ΄ λμ κ°κ° νμ΅μν€λ <MF; Matrix Factorization> κΈ°λ²μ μ¬μ©ν κ²μ΄λ€.
μ¬κΈ°μλ κ°λ¨ν μκ°λ§ νκ³ , μ΄μ΄μ§λ ν¬μ€νΈμμ <Latent Factor Model>μ λν΄ λ μμΈν λ€λ£¨κ² λ€ π
π Latent Matrix Factorization