검색 서비스를 운영하면서 검색 결과에 대한 정렬에 대해 이야기 하고자한다. 아래는 무신사의 검색정렬 방식이다.
이외에 검색서비스에 대해 추가가 되었으면 하는 방식을 작성했다.
상품이 클릭이 되었다면 대부분 다음과 같은 상황이다.
클릭이 안된 상품보다 클릭이 많이 된 상품이 우선 노출이 되어야 한다
1 페이지에서 클릭이 많이된 상품은 높은 점수를 가지는 상품이지만,
2 페이지 이후에 클릭된 상품은 더욱 높은 점수를 가지는 상품이여야 한다.
사용자가 원하는 상품이 노출되지 않아 2 페이지 이후의 탐색 단계를 거쳤으므로
추후 1 페이지 상위로 노출이 되어야 한다
이미 오랫동안 판매 되어온 상품을 신규 유입되는 상품이 상위 노출이 될 수 없다.
따라서 현재 날짜와 상품의 등록 시점을 기준으로 신규 등록된 상품일 수록 점수가 높은 상품이여야 한다.
신규 상품이여도 다른 점수들의 합이 높다면 당연히 기존 상품이 높아야 한다. 다만, 신규 상품의 경우
1 페이지가 아니더라도 검색결과에 노출이되는 조건이 될 수 있어야 한다
각각의 가중치를 조절하고 정규화를 각 가중치별 스케일링을 조절
Min-Max 정규화는 데이터의 최소값과 최대값을 사용하여 데이터를 0과 1 사이의 값으로 변환합니다. 이는 데이터의 분포를 유지하면서 스케일을 조정하는 방법입니다.
장점: 모든 데이터 포인트가 동일한 범위 내에 위치하게 되어 비교가 용이합니다.
단점: 아웃라이어(outlier)의 영향을 크게 받을 수 있습니다.
Z-score 정규화는 데이터의 평균과 표준편차를 이용하여 데이터를 변환합니다. 변환된 데이터는 평균이 0이고 표준편차가 1인 정규분포를 따르게 됩니다.
장점: 데이터의 분포를 중앙에 위치시키고 표준편차를 기준으로 스케일을 조정합니다. 아웃라이어에 대한 영향을 덜 받을 수 있습니다.
단점: 데이터가 정규분포를 따르지 않는 경우, 그 효과가 제한될 수 있습니다.
단위 벡터 정규화는 데이터 포인트를 벡터로 간주하고, 각 벡터의 길이가 1이 되도록 정규화합니다. 주로 코사인 유사도 계산에 사용됩니다.
장점: 벡터의 크기를 일정하게 맞춤으로써 방향성에 초점을 맞추어 비교할 수 있습니다.
단점: 데이터의 크기에 대한 정보가 사라집니다.
로그 정규화는 데이터의 스케일을 조정하기 위해 로그 함수를 사용하는 방법입니다. 주로 데이터의 스케일 차이가 클 때 사용됩니다.
장점: 데이터의 분포를 고르게 만들어줍니다. 특히, 큰 값들이 작은 값들보다 과도하게 지배하는 것을 방지합니다.
단점: 0 이하의 값을 처리할 때 제한이 있을 수 있습니다.