패션 아이템의 특성 태그 기반 유사도 측정 #가중치

이미지
이전 글에 이어서 가중치에 대해 적어보고자 한다. 부모를 따라서 트리를 올라갈 때 가장 먼저 만나는 '목차' 노드의 높이를 기준으로 가중치를 상대적으로 매긴다고 앞서 얘기했는데, 그 방법은 다음과 같다. 우선 정의 하나를 한다.  - 부모를 따라갈때 가장 먼저 만나는 '목차' 노드의 높이를 0 이라고 한다. 1. 가중치의 ' 기준 값 ' 은 두 상품이 겹치는 leaf 노드로 부터  '목차' 노드까지의 거리로 한다. 2. leaf 노드에서 '목차' 노드까지 올라가면서 각각의 노드는, 1 / (가중치의 기준 값  +  ( 기준 값  - 해당 노드의 높이))  로 하는 가중치를 갖는다. 3. 즉 가중치 H 는 기준 값 n 을 받아 다음과 같이 계산된다. 다시 밑의 그림을 보면서 따라가 보자. 만약 두 상품이 겹치는 leaf 노드가 '32' 이고 이를 통해 태그 트리 root 까지 그린 것이 위 이미지와 같다고 할 때, 위 경우에서 '사용자' 태그,  루트 노드 가  '목차' 노드라고 한다면,  '32' 태그의 기준 값은 4, 높이는 4가 되고,  '중반' 태그의 기준 값은 4, 높이는 3가 되고,  '30대' 태그의 기준 값은 4, 높이는 2가 되고,  '연령대' 태그의 기준값은 4, 높이는 1이 되고, '사용자' 태그의 기준값은 4, 높이는 0가 된다. 이때 '32' 태그의 가중치는 1/ (4+(4-4)) = 1/4 '중반' 태그의 가중치는 1/ (4+(4-3)) = 1/5 '30대' 태그의 가중치는 1/ (4+(4-2)) = 1/6 '연령대' 태그의 가중치는 1/ (4+(4-1)) = 1/7 사용자 태그의 가중치는 1/

이미지 분석으로 발 사이즈 측정하기 #첫 시도

이미지
재미로 말고 프로덕션 목적으로 이미지 분석은 처음이랄까.. 일단 opencv 를 사용하는 것을 전제로 하고.. 요구조건은 다음과 같다. 1. 핸드폰 카메라로 찍힌 발 사진의 발볼길이, 발길이를 mm단위로 추출한다. 2. 길이를 재기 위한 기준으로 사용자는 a4용지 위에 발을 올리고 사진을 찍는다. 3. x,y,z 축 즉 발의 3면을 각각 찍어 사용자별로 사진이 3개씩 주어진다. 솔직히 처음에는 여차여차 공부하며 하면 되겠지 라고 생각했는데 역시나 쉽지 않다.  오늘은 이미지 분석의 첫 시도로 뻘글을 싼다.

패션 아이템의 특성 태그 기반 유사도 측정 #노드분류

이미지
현재 사용할 수 있는 데이터는 유저가 like, dislike 한 상품 번호, 구매한 상품 번호, 상품 디테일 페이지를 view 한 이력 이다. 그런데 이 데이터만 가지고는 상품마다 주어진 unique id 값을 단순 비교하는 작업 이외에는 도출할 수 있는 결과가 없다. 전형적인 사용자 유사도를 이용한 협력 필터링은 1. 유저 사이의 유사도를 뽑아내 2. A라는 유저와 비슷한 B 유저가 like 하거나, 구매하거나,열람한 상품 중 A유저가 구매하지 않은 상품의 리스트를 뽑고 3. 이 리스트를 유저간 유사도로 가중치를 주어 sorting 하는 것이다. 이 간단한 접근의 단점은 결과가 편향 된다는 점이다. 일부 상품이 계속 추천 리스트 안에 들어가게 되고 결국 추천의 질은 낮아지게 된다. 뿐만 아니라 패션 쪽의 특성 상 상품이 주기적으로(꽤 빠르게) 바뀐다. 그래서 3개월 이상 가입 시점이 차이나는 유저끼리는 상품의 단순 비교로는 유사도를 측정할 수가 없다. 그래서 상품별로 특성(설명)을 태그 기반으로 하고, 이를 비교하여 상품 별로 유사도를 측정하며, 유저간 유사도도 상품별 유사도를 토대로 도출하는 방식을 고려해본다. 이런 식으로 이 상품은 30대의 여자가 신기 좋은, 여성스럽고 우아한 분위기의 신발인 것이다. 각각의 상품에 대해 이러한 태그 tree 가 존재할 때 좋은 점은 유사도 비교를 하는데 쓰이는 연산 속도가 상대적으로 빠르고 다양한 상품, 태그에 적용할 수 있도록 확장성을 가질 수 있다는 점이다. 아래와 같은 두 상품이 존재할 때, 이 두 상품의 태그는 다음과 같이 표현할 수 있다. 상품 A 상품 B 상품 A의 경우 DB에 저장될때는 20대, 여, 우아한 의 키 값이 저장되고 상품 B의 경우 DB에 저장될 때 30대,  여성스러움, 우아한 이 저장된다. 먼저 각 leaf의 키값을 가지고 부모들을 이어 트리를 구성해준다. 상품 A 트리(총 노드 8개) 상품 B 트리 (총