'precision'에 해당되는 글 3건

  1. 2016.11.07 [미미박스 검색이야기] 미미박스는 정확도 우선 검색 기능을 제공 합니다.
  2. 2016.04.27 [검색이론] Recall 과 Precision - wikipedia
  3. 2015.12.16 [Elasticsearch - The Definitive Guide] Dealing with Human Language

[미미박스 검색이야기] 미미박스는 정확도 우선 검색 기능을 제공 합니다.

ITWeb/미미박스검색이야기 2016.11.07 12:19

[간단 요약]

미미박스 검색서비스에서는)

1. 정확도 우선의 검색 기능을 제공 하고 있습니다.

2. 정확도 우선의 검색 기능을 활용하기 위해서는 검색어에 대한 띄어쓰기중요합니다.

3. 검색 태그 관리가 중요 합니다. (아직 검색 태그에 대한 개선 작업을 못하고 있습니다.)


참고자료)

Precision 과 Recall


제가 미미박스에 합류하게 된 이유는

1. 검색 서비스에 대한 개발을 제가 주도적으로 할 수 있을 것 같아서와 

2. 해야할 게 많을 것 같다 라는

것 때문 이었습니다.


예전 미미박스 검색은 형태소 분석기에 의존적인 검색 기능을 제공하고 있었습니다.

이 방법이 틀렸다 나쁘다는 것은 절대 아닙니다.

단, 형태소 분석기 의존적으로 검색 기능을 제공하기 위해서는 사전 관리가 매우 중요합니다.


여기서 사전관리는 포괄적인 사전 관리를 의미 하며, 단순 유의어/동의어 관리 수준을 의미 하는 것이 아닙니다.


미미박스에서는 검색 서비스는 아래와 같이 분리가 되어 진행 되고 있었습니다.

1. Native App

2. PC Web

3. Mobile Web


각 서비스 마다 제공되는 검색 기능이 달랐으며, 가장 중요하게 생각했던 서비스는 App 이였기 때문에 PC Web, Mobile Web에 대한 검색 기능 개선은 관심 밖이였던 것 같습니다.


보통 e-커머스 서비스에 들어오는 고객들은 크게 두 분류로 나뉘다고 생각 합니다.

1. 불특정 목적으로 방문하는 고객

2. 특정 목적으로 방문하는 고객


이 두 고객의 행동 특성은 검색 관점에서 아래와 같이 분류 된다고 생각 합니다.

1. 단순 브라우징 검색을 하는 고객

2. 목적성을 갖는 검색어를 통한 검색을 활용하는 고객


어쨌든 미미박스에서 검색서비스 기능은 통합 검색창 이외 어떤 기능도 제공이 되고 있지 않았습니다. (PC Web, Mobile Web)

단, native app은 일부 정렬과 검색 필터 기능을 포함하고 있었습니다.

그래서 미미박스 검색서비스를 완전 바닥 부터 새로 만들기로 하였습니다.


제가 처음 검색 개편을 이야기 하면서 e-커머스 에서 검색 서비스는 기본적으로 정확도(precision)가 중요하다고 이야기를 하였고 미미박스도 정확도 우선의 검색 서비스를 제공해 줘야 한다고 했습니다.


제가 제시한 정확도는 사용자가 입력한 검색어와 정확히 일치하는 문서에 대해서 검색이 되어야 한다는 것이었습니다.

이와 같이 변경이 될 경우 띄어쓰기는 매우 중요해 집니다.


예) 정확도 우선 시 검색어 적용 예시


1번은 "포니" + "립스틱" 라는 두 개의 검색어가 포함된 문서를 검색해 주며, 반드시 두 개의 검색어를 문서가 포함하고 있어야 합니다.

- 1번의 의도는 포니라는 제품과 립스틱 이라는 제품에 대한 AND 또는 OR 검색을 원한다고 생각 할 수 있습니다.


2번은 "포니립스틱" 라는 하나의 검색어가 포함된 문서를 검색해 줍니다.

- 2번의 의도는 포니립스틱이라는 단일 제품을 원한다고 생각 할 수 있습니다.


하지만 기존 사용자들은 정확도 우선으로 검색 경험을 가지고 있지 않았기 때문에 띄어쓰기에 대한 개념이나 활용에 대해서 인지를 못하고 있습니다. 여전히 띄어쓰기를 활용한 검색 패턴이 늘어나지 않고 있는 이유 이기도 한 것 같습니다.


결과적으로 검색을 하는 사용자들은 자신이 찾고자 하는 상품을 잘 찾을 수 있어야 하고 그 대상이 너무 많이 노출 되게 되면 상대적으로 상품을 클릭하기 보다 이탈을 하게 되는 경우가 많이 발생하게 됩니다.

이렇기 때문에 검색에서는 narrow down search 기능을 제공을 해줘야 하고 그에 맞는 검색 필터링 기능이 제공되어야 합니다.


좀 두서 없이 쓰다 보니 내용의 본질이 뭔지 전달이 잘 안되는 것 같내요.


정리 하겠습니다.

미미박스 검색서비스에서는)

1. 정확도 우선의 검색 기능을 제공 하고 있습니다.

2. 정확도 우선의 검색 기능을 활용하기 위해서는 검색어에 대한 띄어쓰기가 중요합니다.

3. 검색 태그 관리가 중요 합니다. (아직 검색 태그에 대한 개선 작업을 못하고 있습니다.)


앞으로 고객 요구에 맞는 검색 기능을 제공 할 수 있도록 노력 하겠습니다.


※ 본 글은 회사의 입장과는 전혀 상관이 없으며 개인적인 의견으로 작성된 글 임을 알려 드립니다.

저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Trackback 0 : Comment 0

[검색이론] Recall 과 Precision - wikipedia

ITWeb/검색일반 2016.04.27 11:15

그냥 복습 차원에서 위키피디아에 있는 내용을 그대로 작성해 본 것입니다.


기본 IR 이론)

recall = Number of relevant documents retrieved / Total number of relevant documents

precision = Number of relevant documents retrieved / Total number of documents retrieved


원문링크)

https://ko.wikipedia.org/wiki/%EC%A0%95%EB%B0%80%EB%8F%84%EC%99%80_%EC%9E%AC%ED%98%84%EC%9C%A8



Precision, 정밀도 라고 되어 있는데 저는 그냥 정확도 라고 부릅니다.

이유는 뭐 별거 없고 말이 이게 더 쉽게 전달 되는것 같아서 이구요.

얼마나 관련(relevant) 있는 문서들이 나왔는지를 보는 지표 라서 그렇게 부릅니다.


Precision =  | {relevant documents} ∩ {retrieved documents} | / | {retrieved documents} |

정확도 = (관련문서 수  ∩  검색된 문서 수) / 검색된 문서 수


Recall, 이건 재현율 이라고 부릅니다.

precision 과는 약간 상충 되는 내용이기도 합니다.

그래서 둘 다 높히기는 참 어려운 것 같습니다.

이것은 관련(relevant) 있는 문서들 중 실제로 검색된 문서들의 비율이 됩니다.


Recall = | {relevant documents} ∩ {retrieved documents} | / | {relevant documents} |


두 개의 차이는 분모 부분이 다르다는 것입니다.

이 정보들은 실제 통계학에서도 동일하게 사용 됩니다.


False Positive/Negative

True Positive/Negative


음... 사실 저는 과거에 스팸 필터 엔진 만들때 사용하던 내용이였는데요.

스팸으로 표현 하면 스팸 문서가 아닌데 스팸 문서라고 하는게 false positive, 서버 장애가 아닌데 장애라고 하는 것도 같은 의미 입니다. 이런건 false alarm 이라고도 합니다.


false negative 는 false positive 와 반대겠죠.

스팸 문서 인데 스팸 문서가 아니라고 하는 것입니다. 실제 서버는 장애가 났는데 장애 알람이 오지 않은 경우가 되겠습니다.


그럼 true positive는 무엇일까요? 이건 그냥 정상 입니다.

스팸 문서를 스팸 문서라고 하는 것이구요. true negative 는 그렇습니다. 스팸 문서가 아닌걸 스팸문서가 아니라고 하는 것이 되겠습니다.


검색으로 풀면 )

 

 관련된 문서를

 관련 안된 문서를

 관련된 문서라고 함

 True Positive (TP)

 False Positive (FP)

 관련 안된 문서라고 함

 False Negative (TN)

 True Negative (TN)


통계적 관점에서의 계산 식은 아래와 같습니다.


Precision(Positive predictive value:PPV) = TP / (TP + FP)


Recall(Sensitivity) = TP / (TP + FN)


True Negative Rate(Specificity) = TN / (TN + FP)


Accuracy = (TP + TN) / (TP + TN + FP + FN)


여기까지 복습 차원에서 정리해 봤습니다.


저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
tags : IR, precision, recall
Trackback 0 : Comment 0

[Elasticsearch - The Definitive Guide] Dealing with Human Language

Elastic/TheDefinitiveGuide 2015.12.16 17:47

글 제목과 비슷할 수도 다를 수도 있습니다.

precision 과 recall 에 대한 설명이 짧게 잘 표현이 되어 있어서 기록해 봅니다.


원문링크)


원문 Snippet)

Full-text search is a battle between precision—returning as few irrelevant documents as possible—andrecall—returning as many relevant documents as possible.


원래 이 문서는 언어에 대한 처리 목적 이였습니다.

그래서 정의한 5가지 title 만 정리해 봤습니다.


- Normalizing Tokens

추출 된 token 에서 필요 없는 character를 제거 합니다.

- Reducing Words To Their Root Form

Word 에 붙은 불필요한 정보를 제거 합니다. (word의 origin을 만든다고 보시면 쉽습니다.)

- Stopwords

불용어 처리를 합니다. (즉, 색인 대상에서 제외 시킵니다.)

- Synonyms

동의어 또는 유의어 처리를 합니다.

- Typoes and Mispelings

오타 처리를 합니다.

저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Trackback 0 : Comment 0

티스토리 툴바