λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
1️⃣ AI•DS/πŸ“’ Deep learning

[인곡지λŠ₯] μΆ”μ²œμ‹œμŠ€ν…œ

by isdawell 2022. 6. 13.
728x90

1️⃣  μΆ”μ²œμ‹œμŠ€ν…œ


 

β‘   μΆ”μ²œ μ‹œμŠ€ν…œ

 

 

πŸ”˜ μ •μ˜ 

 

  • information filtering technique : μ–΄λ– ν•œ μ‚¬λžŒμ΄ κ΄€μ‹¬μžˆμ„ 것 같은 것듀을 μ œκ³΅ν•˜λ„λ‘ 정보λ₯Ό filtering ν•˜λŠ” 기법

 

πŸ”˜ ν™œμš©

 

⭐ 이컀머슀, κ΄‘κ³ , (유튜브 μ˜μƒ) μΆ”μ²œ

 

  • λΉ„μŠ·ν•œ μ·¨ν–₯ similar taste 을 가진 μ‚¬λžŒλ“€μ΄ 봀던 것을/κ΅¬λ§€ν–ˆλ˜ 것을 κ΄‘κ³ /μΆ”μ²œλͺ©λ‘μœΌλ‘œ 보게됨

 

  • ⭐ μΆ”μ²œμ‹œμŠ€ν…œμ— λ”₯λŸ¬λ‹ λ„€νŠΈμ›Œν¬λ₯Ό ν™œλ°œν•˜κ²Œ μ‚¬μš©ν•˜κ³  μžˆλ‹€

 

 

πŸ”˜ ꡬ쑰 

 

 

  • Candidate generation : μœ μ €μ˜ μ·¨ν–₯을 κ³ λ €ν•˜μ—¬ κ±°λŒ€ν•œ corpus (μœ μ €, λ°©λŒ€ν•œ λΉ„λ””μ˜€ 클립 λ“±) λ‘œλΆ€ν„° μΆ”μ²œ 후보ꡰ을 μ‚°μΆœν•œλ‹€.
  • Scoring : 후보ꡰ μ€‘μ—μ„œ μœ μ €κ°€ μ‹€μ œλ‘œ λ³Όλ²•ν•œ μΆ”μ²œ κ²Œμ‹œλ¬Όμ„ λ‹€μ‹œ μ„ νƒν•˜κΈ° μœ„ν•΄ μ •ν™•ν•œ 선택 μš”μ†Œλ“€μ„ μ μˆ˜ν™”ν•œλ‹€.
  • Re-ranking : μ‹«μ–΄μš” 수, λ‹€μ–‘μ„±, μƒˆλ‘œμ›€ 등을 κΈ°μ€€μœΌλ‘œ μ΅œμ’… μΆ”μ²œ κ²Œμ‹œλ¬Όλ“€μ— λŒ€ν•΄ μˆœμ„œλ₯Ό μ‘°μ •ν•œλ‹€. 

 

πŸ‘‰ Candidate generation μ—μ„œ DNN 이 ν™œμš©λ˜κ³ , Scoring κ³Ό Re-Ranking λŠ” Hand-engineering κ³Όμ •μœΌλ‘œ 이루어진닀. νŠΉμ • target 을 μœ„ν•œ μΆ”μ²œμ‹œμŠ€ν…œλ§ˆλ‹€ μ•Œκ³ λ¦¬μ¦˜μ΄ λ‹€λ₯΄λ‹€. 

 

 

β‘‘ Candidate Generation approaches 

 

 

πŸ”˜ CB

 

  • Contents based filtering : item κ°„μ˜ μœ μ‚¬λ„λ₯Ό μΈ‘μ •ν•΄ μœ μ €κ°€ μ’‹μ•„ν–ˆλ˜ item κ³Ό μœ μ‚¬ν•œ item 을 μΆ”μ²œν•˜λŠ” 방법이닀.
  • item : μΆ”μ²œ λŒ€μƒλ“€ (μ˜μƒ, κ΄‘κ³ , μ œν’ˆ λ“±)
  • ex. Aκ°€ item1 을 μ’‹μ•„ν–ˆλ‹€λ©΄, 그와 λΉ„μŠ·ν•œ item2 λ₯Ό μΆ”μ²œν•΄μ€€λ‹€. 

 

πŸ”˜ CF

 

  • collaborative filtering : item κ³Ό query κ°„μ˜ μœ μ‚¬λ„λ₯Ό μΈ‘μ •ν•˜μ—¬ μΆ”μ²œν•΄μ£ΌλŠ” 방식이닀.
  • query : μΆ”μ²œν•  λ•Œ μ‚¬μš©ν•˜λŠ” 정보듀을 μ˜λ―Έν•œλ‹€. μœ μ €μ˜ 성별/λ‚˜μ΄/νžˆμŠ€ν† λ¦¬/ν”Όλ“œλ°± 등이 μ‘΄μž¬ν•œλ‹€. 
  • CB 보단 정보λ₯Ό 많이 κ³ λ €ν•˜κΈ° λ•Œλ¬Έμ— 일반적으둜 μ„±λŠ₯이 더 μ’‹λ‹€.
  • ex. μœ μ € A 와 μœ μ € B κ°€ λΉ„μŠ·ν•œ μ·¨ν–₯을 κ°€μ‘Œμ„ λ•Œ, Bκ°€ item2 λ₯Ό μ’‹μ•„ν•œλ‹€λ©΄, A μ—κ²Œλ„ κ·Έ μ œν’ˆμ„ μΆ”μ²œν•΄λ³Έλ‹€

 

πŸ”˜ Query 와 Item 의 μœ μ‚¬λ„λ₯Ό μΈ‘μ •ν•˜λŠ” 방법 

 

 

  • s(q,x) : query 와 item 이 같은 μž„λ² λ”© 곡간에 μœ„μΉ˜ν•  λ•Œ, query 와 item κ°„μ˜ μœ μ‚¬λ„λ₯Ό μ˜λ―Έν•œλ‹€.

 

πŸ”Ή Method 1. Cosine 

 

 

πŸ”Ή Method 2. Dot product

 

내적

 

  • frequency λ₯Ό κ³ λ €ν•œλ‹€λŠ” μΈ‘λ©΄μ—μ„œ 많이 μ‚¬μš©λ˜λŠ” 방식이닀. 
  • item 이 μž„λ² λ”©λ˜λ©΄, 자주 ꡬ맀/λ³Έ item 은 λ²‘ν„°μ˜ 길이가 클 κ°€λŠ₯성이 높은데, 이λ₯Ό 고렀해쀄 수 μžˆλ‹€. 
  • 자주 λ‚˜μ™”λ˜ item 듀은 자주 μΆ”μ²œλ  κ°€λŠ₯성이 λ†’λ‹€. 

 

 

πŸ”Ή Method 3. Euclidean distance

 

 

 

 

 

2️⃣ Contents-based filtering 


 

β‘   CB

 

 

πŸ”˜ μœ μ €κ°€ μ’‹μ•„ν–ˆλ˜ μ•„μ΄ν…œκ³Ό λΉ„μŠ·ν•œ μ•„μ΄ν…œμ„ μΆ”μ²œν•˜λŠ” 방식 

 

  • item 을 ν‘œν˜„ν•˜κΈ° μœ„ν•œ feature λŠ” μ‚¬λžŒμ΄ 직접 μ„€κ³„ν•œλ‹€ : hand - engineered feature

 

 

  • ❓ μœ μ €A κ°€ item 4 λ₯Ό μ’‹μ•„ν•œλ‹€λ©΄, dot product λ₯Ό ν†΅ν•œ μœ μ‚¬λ„ μΈ‘μ • λ°©μ‹μœΌλ‘œ κ°€μž₯ μΆ”μ²œν•΄μ€„λ§Œν•œ item 은 무엇인가?

 

item1 을 μΆ”μ²œν•΄μ€„ ν™•λ₯ μ΄ λ†’λ‹€.

 

 

β‘‘ ν•œκ³„μ  

 

 

πŸ”˜ hand-engineered feature 

 

  • item 을 ν‘œν˜„ν•˜κΈ° μœ„ν•œ feature λ₯Ό μ‚¬λžŒμ΄ 직접 섀계해야 ν•˜λ―€λ‘œ Domain-specific knowledge κ°€ μžˆμ–΄μ•Όν•œλ‹€.
  • feature λ₯Ό μ–΄λ–»κ²Œ μ„€κ³„ν•˜λŠλƒμ— 따라 μΆ”μ²œμ‹œμŠ€ν…œμ˜ μ„±λŠ₯이 μ’Œμ§€μš°μ§€ν•¨
  • No use of embeddings
  • ex. movie → μ˜ν™”μ— λŒ€ν•œ μž₯λ₯΄/감독..λ“±λ“± 을 μ•Œκ³  μžˆμ–΄μ•Ό feature 생성이 κ°€λŠ₯

 

πŸ”˜ Only based on existing interests of the user 

 

  • μœ μ €κ°€ 이미 가지고 μžˆλŠ” interest λ§Œμ„ 기반으둜 μΆ”μ²œν•˜κΈ° λ•Œλ¬Έμ— λ‹€λ₯Έ μš”μ†Œλ“€μ΄ κ³ λ €λ˜μ§€ μ•ŠμŒ (μœ μ €μ˜ past history 만 κ³ λ €ν•˜λ―€λ‘œ μΆ”μ²œ κ°€μ§€μˆ˜κ°€ μ œν•œλ¨)

 

 

 

 

3️⃣ Collaborative filtering 


 

β‘   CF

 

 

πŸ”˜ query 와 item 을 λ™μ‹œμ— κ³ λ €ν•˜μ—¬ μœ μ‚¬λ„λ₯Ό ꡬ해 μΆ”μ²œν•˜λŠ” 방식 

 

  • ⭐ μž„λ² λ”©μ„ 기계가 직접 ν•™μŠ΅ν•¨
  • feature λ₯Ό λ§Œλ“œλŠ”λ° 인간이 직접 μ„€κ³„ν•˜μ§€ μ•Šμ•„λ„ λœλ‹€.

 

 

β‘‘ query 와 value ν‘œν˜„λ°©μ‹ 

 

 

πŸ”˜ representation

 

 

  • Sparse representation : 초기의 item κ³Ό query 각각은 μ›ν•«λ²‘ν„°λ‘œ 이루어져 μžˆλ‹€.
  • Dense representation : item κ³Ό query 각각을 μž„λ² λ”© λ²‘ν„°λ‘œ ν‘œν˜„ν•˜κ²Œ 되면 λΉ„μŠ·ν•œ item 듀끼리 λΉ„μŠ·ν•œ μž„λ² λ”© 곡간에 μœ„μΉ˜ν•˜κ²Œ λœλ‹€. 

 

πŸ”˜ 1-D embedding 

 

 

  • 1D embedding : Item , query μž„λ² λ”©μ„ scalar κ°’μœΌλ‘œ ν‘œν˜„ν•˜λŠ” 방법
  • Ex. item 에 λŒ€ν•΄μ„œλŠ” 아이듀이 보기 μ ν•©ν•œ μ˜ν™”μ™€ μ–΄λ₯Έμ΄ 보기 μ ν•©ν•œ μ˜ν™”μ— μ†ν•˜λŠ” 정도에 따라 -1~1 μ‚¬μ΄μ˜ 값을 λΆ€μ—¬ν•˜κ³  user(query) 에 λŒ€ν•΄μ„œλŠ” ν•΄λ‹Ή 기쀀에 μ†ν•œ μ˜ν™”μ˜ μ„ ν˜Έλ„λ₯Ό λ°”νƒ•μœΌλ‘œ 값을 λΆ€μ—¬ν•œλ‹€. 
  • μœ„μ˜ μ„€λͺ…μ—μ„œλŠ” μ‰¬μš΄ 이해λ₯Ό μœ„ν•΄ Children κ³Ό Adult feature λ₯Ό λ³΄μ—¬μ£Όμ—ˆμ§€λ§Œ, μž„λ² λ”© ν‘œν˜„ λ°©μ‹μ—μ„œλŠ” 이 feature 자체λ₯Ό 기계가 슀슀둜 μ„€κ³„ν•œλ‹€. 

 

 

πŸ”˜ 2-D embedding

 

 

  • item κ³Ό user κ°€ 같은 μž„λ² λ”© 곡간상에 μœ„μΉ˜ν•œλ‹€. 

 

 

 

 

πŸ”˜ N-D embedding

 

  • λ²‘ν„°μ˜ 크기가 클수둝 더 λ§Žμ€ feature μš”μ†Œλ“€μ„ κ³ λ €ν•  수 μžˆλ‹€.
  • 기계가 직접 μž„λ² λ”© 벑터λ₯Ό κ³„μ‚°ν•œλ‹€ πŸ‘‰ dim feature 도 기계가 ν•™μŠ΅ν•˜μ—¬ λ„μΆœν•œλ‹€. 좔상적 κ³΅κ°„μ—μ„œ 기계가 μΆ”μ²œμ΄ 잘 이루어지도둝 ν•˜λŠ” μž„λ² λ”© ν…Œμ΄λΈ”μ„ ν•™μŠ΅ 결과둜 λ‚΄λ†“λŠ”λ‹€. 
  • item κ³Ό query λ²‘ν„°λŠ” 같은 μž„λ² λ”© 곡간 내에 μ‘΄μž¬ν•œλ‹€. 

 

 

 

 

β‘‘ Embedding 행렬을 μ–»λŠ” 방법

 

 

  • If user is represented by one-hot vectors, these tables become embedding matrices πŸ‘‰ user κ°€ μ›ν•«λ²‘ν„°λ‘œ ν‘œν˜„λœλ‹€λ©΄ μž„λ² λ”© ν…Œμ΄λΈ”μ—μ„œ lookup 을 ν•˜λŠ” λ°©μ‹μœΌλ‘œ μž„λ² λ”© λ²‘ν„°λ‘œ μ½μ–΄μ˜¬ 수 μžˆλ‹€. 

 

 

 

πŸ”˜ 방법1. matrix multiplication

 

  • 전톡적인 κΈ°κ³„ν•™μŠ΅ 방법 (SVD) 에 ν•΄λ‹Ήν•œλ‹€.

 

πŸ’¨ Feedback matrix λ₯Ό μ–»λŠ”λ‹€

 

mλͺ…μ˜ user, n 개의 item

 

  • feedback matrix : μœ μ €κ°€ 각 item 에 λŒ€ν•΄ μ–΄λ–€ ν”Όλ“œλ°± (평점, μ’‹μ•„μš” 수 λ“±) 을 μ£Όμ—ˆλŠ”μ§€μ— κ΄€ν•œ ν–‰λ ¬ 
  • implicitly by looking at past history of users : ν•΄λ‹Ή μ˜ν™”λ₯Ό λ΄€λ‹€λ©΄ 1, μ•„λ‹ˆλ©΄ 0 처럼 κ°„μ ‘μ μœΌλ‘œ μœ μΆ”ν•΄μ„œ μ–»λŠ” ν”Όλ“œλ°± λ‚΄μš©μ— ν•΄λ‹Ή 
  • explicitly by collecting a direct feedback from users (likes & dislikes) : user κ°€ 직접적인 의견으둜 ν”Όλ“œλ°±μ„ μ£ΌλŠ” κ²½μš°μ— ν•΄λ‹Ή

 

πŸ’¨ Item κ³Ό user embedding matrix λ₯Ό μ€€λΉ„ν•œλ‹€.

 

 

  • item embedding matrix : n개의 item, μž„λ² λ”© 차원 d (dλŠ” μ‚¬λžŒμ΄ 직접 μ„€μ •ν•΄μ£Όμ–΄μ•Ό 함)
  • user embedding matrix : m λͺ…μ˜ user, μž„λ² λ”© 차원 d 

 

πŸ’¨ Item κ³Ό user embedding matrix λ₯Ό λ‚΄μ ν•œλ‹€.

 

 

 

πŸ’¨ UV' 행렬을 feedback matrix ν–‰λ ¬ A 에 κ·Όμ ‘ν•˜κ²Œ λ§Œλ“ λ‹€.

 

 

  • 두 행렬을 approximation ν•˜λŠ” 과정은 μ•„λž˜μ™€ 같이 optimization problem 으둜 μ •μ˜ν•  수 μžˆλ‹€. 

 

πŸ‘‰ 두 ν–‰λ ¬μ˜ 차이λ₯Ό μ΅œμ†Œλ‘œ λ§Œλ“œλŠ” U, V matrix λ₯Ό μ°ΎλŠ”λ‹€.

 

 

πŸ‘€ ν•œκ³„μ  

 

  • The difficulty of using any features beyond queries and items present in the training set πŸ‘‰ ν›ˆλ ¨λ°μ΄ν„°μ…‹μ— μ‘΄μž¬ν•˜λŠ” query, item μ΄μ™Έμ˜ λ‹€λ₯Έ ν”Όμ²˜κ°€ μž…λ ₯λœλ‹€λ©΄ 이에 λŒ€ν•΄μ„œλŠ” μƒˆλ‘­κ²Œ λ‹€μ‹œ μž„λ² λ”© ν…Œμ΄λΈ”μ„ λ§Œλ“€μ–΄μ„œ matrix factorization 을 ν•΄μ£Όμ–΄μ•Ό ν•œλ‹€. ex. query = (user gender, user age) ← user mbti feature λ₯Ό μΆ”κ°€ν•˜λŠ” 경우 
  • μΈκΈ°μžˆλŠ” item 듀은 λͺ¨λ“  μ‚¬λžŒλ“€μ—κ²Œ μΆ”μ²œλ˜λŠ” κ²½ν–₯이 μžˆλ‹€ πŸ‘‰ user specific ν•œ 정보듀은 ν›ˆλ ¨μ‹œ 포함이 μ–΄λ ΅κΈ° λ•Œλ¬Έμ— κ°œμΈν™”λœ μΆ”μ²œμ΄ μ–΄λ ΅λ‹€. 

 

 

κ·ΈλŸ¬λ‚˜, λ”₯λŸ¬λ‹ 방법은 input 에 λŒ€ν•œ μœ μ—°μ„±μ΄ μ‘΄μž¬ν•œλ‹€.

 

 

 

πŸ”˜ 방법2. DNN 

 

 

 

 

  • input 으둜 μ–΄λ– ν•œ feature λŠ” flexible ν•˜κ²Œ 넣을 수 μžˆλ‹€.
  • Output 은 ν•΄λ‹Ή μΆ”μ²œ λŒ€μƒμ„ ꡬ맀/μ‹œμ²­ν•  ν™•λ₯ κ°’

 

 

  • input ν˜•νƒœμ— μœ μ—°μ„±μ΄ μ‘΄μž¬ν•˜λ©° training κ³Όμ •μ—μ„œ λ°œμƒν•˜λŠ” 뢀산물듀이 μ•žμ„œ μ–ΈκΈ‰ν•œ μž„λ² λ”© 벑터가 λœλ‹€. 
  • y : query x 에 λŒ€ν•œ μž„λ² λ”© 벑터 , (1xd) 차원 
  • V : μ†Œν”„νŠΈλ§₯슀λ₯Ό 거치기 전에 μ‚¬μš©ν•˜λŠ” μž„λ² λ”© ν–‰λ ¬ , (d,n) 차원 
  • p = softmax(yV') : (1xn) 차원 
  • n : item 개수 
  • d : embedding 차원 

 

 

 

 

 

 

 

728x90

λŒ“κΈ€