Hadamard product는 단순히 두 벡터의 대응되는 요소들을 곱한 결과 벡터를 만드는 연산입니다:
p_u = [0.8, 0.3, 0.6] # 사용자 벡터
q_i = [0.7, 0.4, 0.5] # 영화 벡터
p_u ⊙ q_i = [0.8×0.7, 0.3×0.4, 0.6×0.5]
= [0.56, 0.12, 0.30]
이는 각 차원에서의 "상호작용(interaction)"을 표현합니다.
반면 내적은 실제로 두 벡터 간의 유사도를 측정하는 것입니다:
p_u · q_i = 0.8×0.7 + 0.3×0.4 + 0.6×0.5 = 0.98
이 0.98이라는 값은 두 벡터가 얼마나 유사한지를 나타냅니다.
즉:
잠재 벡터의 각 차원이 이렇게 영화의 특성을 나타낸다고 가정해봅시다:
사용자 벡터 p_u = [0.8, 0.3]
- 0.8: SF 영화를 좋아하는 정도
- 0.3: 로맨스 영화를 좋아하는 정도
영화 벡터 q_i = [0.7, 0.4]
- 0.7: 영화에 SF 요소가 있는 정도
- 0.4: 영화에 로맨스 요소가 있는 정도
p_u ⊙ q_i = [0.8×0.7, 0.3×0.4] = [0.56, 0.12]
여기서 상호작용 강도의 의미:
즉, 상호작용 강도는 "사용자의 특정 취향"과 "영화의 특정 특성"이 만나서 발생하는 영향력의 크기를 의미합니다.
이것이 단순히 유사도와 다른 이유는:
1. 유사도: 두 벡터가 얼마나 비슷한지
2. 상호작용 강도: 두 특성이 만나서 만들어내는 영향력이 얼마나 큰지