μΆμ²μμ€ν
π€΄ Deep Learning μ΄μ© λΆμΌ - μΆμ² μμ€ν
λ΄ κ΅¬κΈ μμ΄λλ‘ λ‘κ·ΈμΈ ν λ€μ μ νλΈμ λ€μ΄κ°λ©΄
λ΄κ° λ³΄κ³ μΆμ μμλ€μ λ무 λλ₯΄κ³ μΆκ² 보μ¬μ€λ€
λ¨μνκ² μκ°ν΄λ³Ό μ μλ€.
μ, λ΄κ° μ§κΈκΉμ§ λ΄€λ μμλ€μ κΈ°λ°μΌλ‘ λ΄κ° λ³΄κ³ μΆμ΄ν μμμ λμμ£Όλꡬλ.
μ¬κΈ°μ
λ΄€λ μμλ€μ κΈ°λ°μΌλ‘
μμ λ₯λ¬λ κΈ°λ²μ΄ μ¬μ©λ μ μλ€.
1. μΆμ²μμ€ν μ΄λ?
μ κ³ λ΄ μ©μ΄λ₯Ό λΉλ¦¬μλ©΄
user
μκ² item
μ μ 곡νλ μμ€ν
.
μ°λ¦¬λ user
μ μ 보μ item
μ μ 보λ₯Ό κ°μ§κ³ μλ€
μλ₯Ό λ€μ΄ user μ±λ―Ό μ΄ μλ€κ³ νλ€λ©΄
μ±λ―Ό : 25μ΄ / λ¨μ± / μΈμ² / νμ / μΈλμμ μ νΈ
μ무리 κ°λ¨ν΄λ λμ΄, μ±λ³, μ§μ λ± μ¬λ¬ κ°μ μ 보λ₯Ό κ°μ§ μ μλ€.
item βStar is Bornβ μ΄λΌλ μνκ° μλ€κ³ νλ€λ©΄
βStar is Bornβ : μΈκΈ°λ 5 / μ‘μ λ 5 / λ‘λ§¨μ€ 8 / μμ 10 / 리뷰νμ 4.5 /
λ±μ μ 보λ₯Ό κ°μ§ μ μλ€.
μ΄ user μ item μ μ 보λ₯Ό μμΉν(vectorize) μμΌ μ μ¬λ(similarity) λ₯Ό νλ¨ν ν
μ μ¬λκ° λμ κ²μ μ 곡νλ κ².
μ΄κ²μ΄ λ°λ‘ μΆμ²μμ€ν μ΄λ€.
μ? λ무 μ½μ§ μλκ³ ? μ΄κ² κ΅³μ΄ λ₯λ¬λμ΄ νμνλκ³ ?
μ΄κ±΄ μ λ§μ λ§ λ¨μνκ² λ§νκ±°λ€.
μ°λ¦¬λ 2μ°¨μ νλ©΄ μμμ λ μ κ°μ 거리λ₯Ό ꡬνλ λ°©λ²μ μκ³ μλ€.
μ½μμ.
$x = (a_1,a_2)$ , $y = (b_1,b_2)$ μΌ λ,
$\sqrt{(b_1-a_1)^2 +(b_2-b_1)^2}$
μ κ·Έλ λ€λ©΄ 3μ°¨μμ? 4μ°¨μμ? μ μ΄λμ λ₯λ¬λμ΄ νμν κ²μ΄λ€.
1-1. μ μ¬λ Similarity μΈ‘μ λ°©λ²
λ€μν μ μ¬λ μΈ‘μ λ°©λ²μ΄ μ‘΄μ¬νλ€.
- μ ν΄λ¦¬λ 거리 κ³μ°λ²
- μμΉ΄λ μ μ¬λ
- νΌμ΄μ¨ μκ΄κ³μ
- μ½μ¬μΈ μ μ¬λ μΈ‘μ λ²
κ·Έ μ€ νλμΈ μ½μ¬μΈ μ μ¬λ μΈ‘μ λ²μ κ°λ¨ν μ€λͺ ν΄ λ³Έλ€.
μ½μ¬μΈ μ μ¬λ μΈ‘μ λ²μ μνμκ°μ λ°°μ΄ μ½μ¬μΈμ ν΅ν΄
λ²‘ν° κ° λ΄μ μΌλ‘ λ μ κ°μ 거리λ₯Ό μΈ‘μ νλ λ°©λ²μ΄λ€.
λ μ κ°μ 벑ν°κ°μ ꡬν λ€
λ°©ν₯μ΄ μμ ν λμΌν κ²½μ°λ 1,
90λμΈ κ²½μ°λ 0.
μ λ°λ λ°©ν₯μΈ κ²½μ°λ -1 μΈ μ μμ μ°©μν΄
-1 μμ 1 μ¬μ΄μ κ°μ κ΅¬ν΄ μ μ¬λλ₯Ό λνλΈλ€.
μλ₯Ό λ€μ΄
$ a=(1,1,1)$ $b=(2,0,1)$
μ΄λΌ ν λ,
벑ν°κ° λ΄μ μ ν΅ν΄ μ μ¬λλ₯Ό ꡬν μ μλ€.
import numpy as np
from numpy import dot
from numpy.linalg import norm
a = np.array([1, 1, 1])
b = np.array([2, 0, 1])
def cos_sim(A, B): #cos simmilarlity
return dot(A, B)/(norm(A)*norm(B))
cos_sim(t1, t2)
0.7745966692414834
μ΄μ²λΌ μ΄ λ 거리μ μ μ¬λλ 0.77μμ 보μ¬μ€λ€
2. μΆμ²μμ€ν μ μ’ λ₯
μΆμ²μμ€ν μ μ’ λ₯λ μΆμ²νλ λ°©μμΌλ‘ λλλ€.
- μ½ν μΈ κΈ°λ° νν°λ§ ; Content Based Filtering
- νμ
νν°λ§ ; Collaborative Filtering
- μ¬μ©μκΈ°λ°
- μμ΄ν κΈ°λ°
- μ μ¬μμΈ κΈ°λ°
- Deep Learing μ μ© λ°©μ
Content based Filtering μ λ§ κ·Έλλ‘
κ·Έ λ΄μ© λ§μ μ μ¬μ±μ ν λλ‘ μΆμ²ν΄μ€λ€.
μλ°ν λ₯Ό λ΄€λ€λ©΄ κ·Έμ λΉμ·ν νΉμ§(κ°λ , λ°°μ°, μ€ν 리, μ₯λ₯΄) λ±μ κ³ λ €ν΄ μμ΄μΈλ§¨, κ°λμΈμ¦ μ€λΈ κ°€λμ λ±μ μΆμ²ν΄μ£Όλ κ²μ΄λ€.
Collaborative Filtering μ μ¬μ©μ κ³Όκ±° νλμ κΈ°λ°μΌλ‘ μΆμ²νλ λ°©μμ΄λ€.
μ¬μ©μ κΈ°λ° : β λΉμ κ³Ό λΉμ·ν μ¬λλ€μ μ΄λ° μμμ λ΄
λλ€ β
μμ΄ν
κΈ°λ° : β μ΄ μμμ λ³Έ λ€λ₯Έ μ¬λλ€μ μ΄ μμλ λ΄€μ΅λλ€ β
μ μ¬μμΈ κΈ°λ° : β λΉμ μ΄ μ΄ μμλ€μ μ΄λ κ² νκ°νκ±Έ 보λ μ΄ μμμ λκ² νκ°ν κ² κ°μ΅λλ€ β
μ μ¬μμΈ κΈ°λ°μ νλ ¬ μΈμλΆν΄ (Matrix Factorization) λ₯Ό ν΅ν΄ μ¬μ©μκ° νμ μ λ§€κΈ°λ μμΈ(μ μ¬μμΈ)μ μ°λ¦¬λ λͺ¨λ₯΄λ λ³μλΌκ³ κ°μ νκ³ μμΉν(벑ν°ν) νμ¬ μλ‘μ΄ μμλ€μ μ΄λ€ νμ μ λ§€κΈΈμ§ μμΈ‘νλ λ°©μμ΄λ€.
μ΄ λ€μν μνμ°μ° νΉμ κ³μ°μ μν΄ λ€μν νλΌλ―Έν°λ₯Ό μ€μ ν΄ κ³μ°μ λμΆν μ μκ³ ,
μ΄ λ μ κ²½λ§κ²μΈ΅ μ°μ°λ§, μ¦, Deep Learning model μ μ λͺ©ν μ μλ€.
3. μ€μ μΆμ² μμ€ν
Youtube λ Netflix λ μΆμ²μ μμ£Ό λ§μ κ²λ€μ κ³ λ €νλ€.
μ¬μ©μμ ꡬ맀 μ¬λΆλΏλ§ μλλΌ μμ² μκ°, μΉμ¬μ΄νΈ 체λ₯ μκ°, μ¬μ΄νΈ μ μ κ²½λ‘, μμ²κ³Ό ꡬ맀κΉμ§ 걸리λ μκ° λ± ..
μ’μ μΆμ² μμ€ν μ λ§λ€κΈ° μν΄μλ
μ΄λ€ λ°μ΄ν°λ₯Ό μ¨μΌ ν μ§, λ°μ΄ν° κ° μ°μ λμ κ°μ€μΉλ μ΄λ»κ² λμ΄μΌ νλμ§
νκ°μ μμ μ λ°λ³΅ν΄μΌ νλ€.
μΆμ²μμ€ν
μ λ¨Έμ λ¬λ λ₯λ¬λμ΄ μ μ©λ μλ μλ κ²μ΄μ§ νμλ μλκΈ° λλ¬Έμ
κ΅³μ΄ μΆμ²μμ€ν
μ μν΄ λ¨Έμ λ¬λλΆν° λ°°μλκ° νμλ μλ€.