
350
2
fastai 애플리케이션 계층 이해하기
학습된 임베딩으로 거리
distance
를 살펴보는 일도 흥미롭습니다. 이어서 살펴보죠.
8.5.2
2
차원 지도에서 피타고라스 공식( )을 사용하면 두 좌표 사이의 거리를 계산할 수 있
습니다. 공식에서
와
는 각 축의 좌표 간 거리입니다.
50
차원의 임베딩에서도 이와 정확히
같은 계산을 할 수 있습니다. 단
50
개의 좌표 거리 모두에 제곱을 취해야 할 뿐이죠.
만약 매우 비슷한 영화 두 개가 있다면, 두 영화를 좋아하는 사용자도 매우 비슷하겠죠. 따라
서 두 영화의 임베딩 벡터도 매우 비슷해야 합니다. 이를 좀 더 일반화해보죠. 영화 간 유사성
은 대상 영화들을 좋아하는 사용자 간의 유사성으로 정의할 수 있습니다. 그리고 이는 두 영화
의 임베딩 벡터 간의 거리가 직접적으로 유사성을 정의할 수 있음을 의미하죠. 다음은 이 개념
을 활용해 영화 <양들의 침묵 >과 가장 유사한 영화를 찾는 방법입니다.
>>> movie_factors = learn.model.i_weight.weight
>>> idx = dls.classes[‘title’].o2i[‘Silence of the Lambs, The (1991)’]
>>> distances = nn.CosineSimilarity(dim=1)(movie_factors ...