본문 바로가기
개발/ALGOLIA

알고리아 Managing Results(3-6)

by dev_caleb 2022. 3. 3.
728x90

Custom Ranking

https://www.algolia.com/doc/guides/managing-results/must-do/custom-ranking/

 

Custom ranking | Algolia

Learn about how Algolia ranks, using its tie-breaking algorithm, and how you can control that ranking with Custom Ranking.

www.algolia.com

 

The main goal of search is to help users find what they are looking for. Search breaks down into two crucial steps: returning accurate results and ranking these results. This guide focuses on how Algolia natively ranks results and how you can impact it with custom ranking.

검색의 주요 목표는 사용자가 원하는 것을 찾을 수 있도록 돕는 것입니다. 검색은 정확한 결과를 반환하고 결과에 순위를 매기는 두 가지 중요한 단계로 나뉩니다. 이 가이드에서는 Algolia가 기본적인 결과의 순위를 매기는 방법과 사용자 지정 순위를 통해 결과에 영향을 미치는 방법에 대해 중점적으로 설명합니다.

 

Algolia first orders results with its default ranking strategy, then with custom ranking. If you’re confused about custom ranking coming after default ranking, this is the case because Algolia’s default ranking criteria ensure that users find what they are looking for. Custom ranking helps you increase visibility for some of your most essential products, on top of Algolia’s default ranking strategy. It ensures that increasing visibility doesn’t prevent users from finding what they are looking for.

알골리아는 먼저 기본 순위 전략으로 결과를 정렬한 다음 사용자 지정 순위를 지정합니다. 기본 순위 다음에 오는 사용자 지정 순위가 헷갈릴 경우, 알골리아의 기본 순위 기준은 사용자가 원하는 것을 찾을 수 있도록 하기 때문이다. 맞춤형 순위는 알골리아의 기본 순위 전략 외에도 가장 중요한 일부 제품에 대한 가시성을 높이는 데 도움이 됩니다. 가시성 향상을 통해 사용자가 원하는 것을 찾을 수 있습니다.

 

Custom ranking is a direct and powerful way to adapt Algolia to your business. When you classify records with business metrics such as popularity or rating, your best products appear higher in search results.

맞춤형 순위는 알골리아를 비즈니스에 적응시키는 직접적이고 강력한 방법입니다. 인기나 등급과 같은 비즈니스 메트릭으로 레코드를 분류하면 검색 결과에서 가장 좋은 제품이 더 높게 나타납니다.

 

 

Algolia’s ranking strategy

Ranking is the second half of the relevance equation. Once the engine has found matching records, it needs to rank them, putting the best matches at the top.

순위는 관련성 방정식의 두 번째 절반이다. 엔진이 일치하는 기록을 찾았으면 최고의 매치를 맨 위에 올려놓고 순위를 매겨야 한다.

 

 

The ranking criteria(랭킹 순위)

Algolia uses a tie-breaking algorithm, which reuses much of the same textual matching criteria to determine the best matches.

알골리아는 최상의 일치 여부를 결정하기 위해 동일한 텍스트 일치 기준을 많이 재사용하는 동점 해제 알고리즘을 사용한다.

A good example is typos and spelling differences. When searching for anything, you may accidentally swap letters, miss or add extra characters, or use a different spelling from the one in the index. For instance, you could type “iphoen” instead of “iphone”, or use the British spelling “theatre” while the index you search into uses “theater”. 

 

좋은 예는 오타와 철자 차이입니다. 검색할 때 실수로 문자를 교환하거나, 문자를 놓치거나 추가하거나, 색인에 있는 것과 다른 철자를 사용할 수 있습니다. 예를 들어, "iphone" 대신 "iphoen"을 입력하거나, 당신은 영화 색인을 검색하는 반면 "theatre"를 사용하는 영국 철자를 사용할 수 있습니다.

Thanks to typo tolerance, the engine returns exact matches and records with typos. Now, Algolia can reuse typo tolerance to rank records: all exact matches rank higher than records with typos. The tie-breaking algorithm privileges the best matches. If your index contained both “theater” and “theatre”, Algolia would return records for both, with the ones containing “theatre” first.

오타 허용오차 덕분에 엔진은 오타와의 정확한 일치와 기록을 반환합니다. 이제 알골리아는 오타 허용오차를 재사용하여 기록 순위를 매길 수 있습니다: 모든 정확한 매치가 오타가 있는 기록보다 더 높은 순위를 매깁니다. 연결 끊기 알고리즘은 최상의 일치에 대한 권한을 부여합니다. 만약 당신의 인덱스가 "theater"과 "theatre"을 모두 포함하고 있다면, 알골리아는 "극장"을 먼저 포함하는 두 개의 레코드를 반환할 것이다.

The ranking criteria are, in order:

There are eight in all, and they all play a role in ranking by breaking ties.

 

-오타수
-지리 위치
-결과에서 일치하는 쿼리의 단어 수
-필터
-단어 간 거리
-레코드에서 가장 잘 일치하는 특성
-정확하게 일치하는 단어 수(오타 없음)
-사용자 지정 순위

 

모두 8명이며 모두 동률을 깨며 순위 결정의 역할을 한다.

 

 

You can change the order of the default criteria, but we don’t recommend you do so. The out-of-the-box ranking order works for the vast majority of use cases.

 

기본 기준의 순서를 변경할 수 있지만 변경하지 않는 것이 좋습니다. 즉시 사용 가능한 순위 순서는 대부분의 사용 사례에 적용됩니다.

 

 

How tie-breaking works

Most search engines use a coefficient-based approach and rank results based on a unique float value that is hard, if not impossible, to decipher.

Algolia has built its own approach, using a tie-breaking algorithm. Here’s how it works:

대부분의 검색 엔진은 계수 기반 접근법을 사용하고 해독이 어렵거나 불가능한 고유한 부동값을 기준으로 결과의 순위를 매긴다.
알골리아는 타이 브레이킹 알고리즘을 사용하여 자신만의 접근 방식을 구축했다. 작동 방식은 다음과 같습니다.

 

  • It orders all matching records according to the first criterion (number of typos, so exact matches rank first).
  • For all tied records, it orders them according to the second criterion (geolocation).
  • If there are still tied records (with the same geolocation), it orders them according to the third criterion (filters) and so on, until each record in the search results has a distinct ranking position.
  • If, after going through the first seven criteria, there are still tied records, Algolia uses each of your custom ranking attributes to break the tie.

첫 번째 기준에 따라 모든 일치 레코드를 정렬합니다(오타 수, 따라서 정확한 일치 항목이 우선).
모든 동점 기록에 대해서는 두 번째 기준(지리 위치)에 따라 순서를 정한다.
동일한 지리적 위치를 가진 동점이 여전히 있는 경우 검색 결과의 각 레코드가 서로 다른 순위 위치를 가질 때까지 세 번째 기준(필터) 등에 따라 정렬합니다.
처음 7가지 기준을 거친 후에도 동점 기록이 남아 있으면 알골리아는 각 사용자 지정 랭킹 속성을 사용하여 동점을 깰 수 있습니다.

 

Back to our “theatre” example. If two records have the same spelling, they will be tied. The algorithm needs to break the tie. The next criterion is geo. If the first record is geographically closer to the user than the second one, then the geo criterion breaks the tie, and the first record ranks higher than the second one. If, however, the movie theaters were within the same geographical range, the engine needs to go to the third applicable criterion. In our case, imagine that we also have a way to filter the search (and select features such as “3D”, “IMAX”, etc.) If we’ve selected “3D”, and only the second record has “3D” in its filters, then it breaks the tie, and the second record ranks before the first record one.

우리의 "극장" 예시로 돌아가자. 두 레코드의 맞춤법이 같으면 동점이 된다. 알고리즘이 동점을 깨야 해. 다음 기준은 지리입니다. 첫 번째 레코드가 두 번째 레코드보다 지리적으로 사용자에게 더 가깝다면, 지리적 기준은 동점을 깨고 첫 번째 레코드가 두 번째 레코드보다 더 높은 순위를 차지합니다. 다만 영화관이 같은 지리적 범위에 있었다면 엔진은 세 번째 적용 기준으로 가야 한다. 이 경우 검색을 필터링할 수 있는 방법이 있다고 가정해 보십시오(그리고 "3D", "IMAX" 등과 같은 기능 선택). "3D"를 선택했는데 두 번째 레코드만 필터에 "3D"가 있으면 동점이 되고 두 번째 레코드가 첫 번째 레코드보다 먼저 순위가 매겨집니다.

 

 

Custom ranking

Finding matching records using typos, geolocation, filters, and so on, is only part of what makes a compelling search experience. Algolia’s default ranking formula works well to handle this kind of record-matching relevance.

However, ordering on such properties alone undermines the value of thoughtfully ordering results based on custom metrics within each record. Custom ranking gives you direct control and is often the deciding factor on which records appear in the first set of results.

오타, 지리 위치, 필터 등을 사용하여 일치하는 레코드를 찾는 것은 매력적인 검색 경험의 일부일 뿐입니다. 알골리아의 기본 순위 공식은 이러한 종류의 기록 일치 관련성을 처리하는 데 효과적이다.
그러나 이러한 속성만을 정렬하는 것은 각 레코드 내의 사용자 지정 메트릭을 기반으로 신중하게 결과를 정렬하는 가치를 떨어뜨린다. 사용자 지정 순위는 사용자가 직접 제어할 수 있으며 종종 첫 번째 결과 집합에 어떤 레코드가 표시되는지 결정하는 요인이 됩니다.

Here are some examples that add popularity to the ranking formula. When you type “spielberg films”, the custom ranking puts Spielberg’s most popular films at the top of the results. For a retail store, if you type “t-shirt”, then the most popular t-shirts appear at the top. For a blog website, if you type in “positive thinking”, the most popular articles on that subject appear at the top.

Typical custom ranking attributes include number of sales, views, likes, ratings, release date, etc. Any boolean or numeric attribute works with custom ranking.

This kind of control over ranking allows you to achieve many business goals: showcase your product line, encourage people to stay on your site and view as many products as possible, increase sales, and many more.

여기 순위 공식에 인기를 더하는 몇 가지 예가 있다. 'spielberg films'를 입력하면 맞춤 순위가 스필버그의 가장 인기 있는 영화들을 결과의 맨 위에 올려놓는다. 소매점의 경우 "티셔츠"를 입력하면 가장 인기 있는 티셔츠가 맨 위에 나타납니다. 블로그 웹사이트의 경우 '긍정적인 생각'을 입력하면 해당 주제에 대한 가장 인기 있는 기사가 맨 위에 뜬다.
일반적인 사용자 지정 순위 속성에는 판매 수, 조회 수, 좋아요, 등급, 출시 날짜 등이 포함됩니다. 모든 부울 또는 숫자 속성은 사용자 지정 순위와 함께 작동합니다.
이러한 순위 관리를 통해 제품군을 소개하고, 사람들이 사이트에 머물도록 장려하고, 가능한 한 많은 제품을 보고, 판매를 늘리는 등 많은 비즈니스 목표를 달성할 수 있습니다.

Defining custom ranking by leveraging business metrics is crucial for any successful search configuration.

비즈니스 메트릭을 활용하여 사용자 지정 순위를 정의하는 것은 성공적인 검색 구성에 매우 중요합니다.

 

Let’s take a look at a common use case, with the following dataset, and custom ranking on the popularity attribute (descending):

다음 데이터 집합과 인기 속성(내림차순)에 대한 사용자 지정 순위를 통해 일반적인 사용 사례를 살펴보겠습니다.

 

[
  {
    "name": "iPhone 6 Plus",
    "popularity": 20
  },
  {
    "name": "iPhone 6",
    "popularity": 10
  },
  {
    "name": "iPhone 7",
    "popularity": 200
  }
]

 

With this configuration, if a user were to search for “iphone”, they would first get the iPhone 7, followed by the iPhone 6 Plus, and finally the iPhone 6.

You can decide whether you want the order to be descending (greater values first) or ascending (smaller values first).

 

 

이 구성을 통해 iphone을 검색하면 아이폰 7이 먼저 보여지고 뒤이어 아이폰 6 플러스가 보여진다.
내림차순(더 큰 값 먼저) 또는 오름차순(더 작은 값 먼저) 중 어느 순서로 할지 결정할 수 있습니다.

 

Custom ranking precision(사용자 지정 순위 정확도)

Tie-breaking only works if there are tied records to begin with. If a particular custom ranking metric is too precise, then the next custom metric may never come into play. For this reason, we stress the importance of reducing precision to allow for effective tie-breaking.

동점 처리는 처음부터 동점 기록이 있을 때만 가능하다. 특정 사용자 지정 순위 메트릭이 너무 정확하면 다음 사용자 지정 메트릭이 작동하지 않을 수 있습니다. 이러한 이유로, 우리는 효과적인 결속 해소를 위해 정밀도를 줄이는 것의 중요성을 강조합니다.

Imagine a custom ranking configuration for movies that sets both rating and views (in that order) as custom ranking attributes. If the rating across records is unnecessarily precise—say “4.321321”—the views may never be used to break the tie. However, the search results may not be more relevant. A movie with a slightly lower rating, but many more views would rank lower, while you would expect it to rank higher.

등급과 보기를 모두 사용자 지정 순위 속성으로 설정하는 동영상의 사용자 지정 순위 구성을 상상해 보십시오. 전체 레코드의 등급이 불필요하게 정확하다면(예: "4.321321") 해당 뷰를 사용하여 동률을 깨지 못할 수도 있습니다. 그러나 검색 결과가 더 관련이 없을 수 있습니다. 평점은 조금 낮지만 조회 수가 많은 영화라면 순위가 낮은 반면, 순위가 높을 것으로 예상할 수 있다.

To fix the situation, we recommend creating another attribute (say truncated_rating) with values rounded to one decimal place. In this example, “4.321321” becomes “4.3”. By reducing the precision of the rating attribute, it makes it more likely to have several records with the same truncated_rating, allowing them to tie-break on the count attribute.

이 상황을 해결하려면 값을 소수점 한 자리로 반올림하여 다른 특성(예: shutting_rating)을 만드는 것이 좋습니다. 이 예에서 "4.321321"은 "4.3"이 됩니다. 등급 특성의 정밀도를 낮추면 동일한 cutting_rating의 여러 레코드를 가질 가능성이 높아지며, count 특성에서 타이-브레이크를 할 수 있습니다.

 

 

 

 

 

728x90

'개발 > ALGOLIA' 카테고리의 다른 글

알고리아 Managing Results(3-8)  (0) 2022.03.03
알고리아 Managing Results(3-7)  (0) 2022.03.03
알고리아 Managing Results(3-5)  (0) 2022.03.03
알고리아 Managing Results(3-4)  (0) 2022.03.03
알고리아 Managing Results(3-3)  (0) 2022.03.03