[Vol.10] 검색기술과 알고리듬에 대한 소고

 In KISA Report

검색기술과 알고리듬에 대한 소고

윤대균 ([email protected])

아주대학교 소프트웨어학과 교수

최근 공정거래위원회(이하 공정위)가 국내 인터넷 서비스 1위 기업인 네이버에 과징금 267억 원을 부과한 사건이 화제를 모았다.(한겨례신문, “‘네이버쇼핑’만 더 잘 보인 이유 있었다…‘알고리즘 조작’ 사실로”, 10월 6일, 2020)) 자사 쇼핑, 동영상 서비스가 타사 서비스 대비 우선 노출되도록 2012년 이후 최소 6차례에 걸쳐 검색 알고리듬 조정이 이루어졌다는 것이다. 경쟁 서비스 대비 1.5배의 가중치를 부여해 상단에 노출한 점, 그리고 한 페이지에 노출되는 전체 상품 중 일정 비율(15~25%)은 자사 서비스에서 제공되는 상품만 나오도록 조정했다고 상세하게 설명을 덧붙였다. 실제로 이런 “조정”이 이루어진 기간도 각 방식별로 적시하여 공정거래위원회가 꽤 오랜 시간 치밀하게 조사해 온 것임을 강조하기도 했다. 물론 네이버는 이에 대해 즉각 반발하며 법원에서 그 부당함을 주장할 예정이라고 발표했다.

 

이번 공정위의 네이버에 대한 조사는 꽤 광범위하게, 그리고 오랜 기간 이루어진 것으로 보인다. 기사에서 볼 수 있듯이 네이버 쇼핑의 제품 개수를 5%씩 늘려가 보자는 내부 직원들 간의 이메일 내용이 확인되면서 네이버의 조작 가능성에 더 무게를 두게 되지 않았을까 판단된다. 네이버에서 이번 결정에 대해 반박하며 결국 법원의 판단을 기다리는 과정에서 사실에 가까운 실체가 밝혀질 것이겠으나 그 전에 검색 기술과 알고리듬에 대해 좀 더 깊이 살펴보며 향후 법정에서의 다툼을 지켜보는 것도 의미가 있다.

 

검색엔진이 하는 일

 

네이버나 구글에서 제공하는 검색 서비스의 중심에는 “검색엔진”이 있다. 일반 사용자들은 “검색엔진”, “검색 알고리듬”, “검색 서비스”와 같은 용어들을 잘 구별하지 못하며, 또 굳이 구별할 필요도 없다. 사용자들이 접하는 것은 “검색 서비스”이고, 이에 필요한 핵심 기술이 구현된 것이 “검색엔진”이며, 이 검색엔진은 복잡한 알고리듬에 의해 동작한다. 본고의 제목에서 검색기술과 알고리듬으로 구분한 이유는, 알고리듬이 검색의 전부가 아니며 따라서 알고리듬이 검색 서비스 결과에 미치는 영향에 대해 파악하기 위해서는 일반적인 검색기술에 대한 이해가 필요하기 때문이다.

 

검색엔진은 사용자가 검색어를 입력했을 경우에 본격적으로 동작을 하게 되지만, 평소에도 늘 새로 생기는 웹페이지를 수집하는(크롤링) 일을 반복한다. 우선 검색어를 입력할 때의 동작과정은 다음의 각 단계를 거친다.

 

⦁사용자가 검색어를 입력한다.
이 때 검색엔진은 형태소 분석을 하고 사용자가 어떤 사람인지, 그리고 문맥은 무엇인지 이해 하려는 시도 한다.

 

⦁검색엔진은 크롤링한 웹페이지 중에서 “연관성”이 있는 페이지를 찾는다.
이 때, 사용자가 입력한 키워드만 있는 그대로 사용하는 것이 아니라, 맥락에 따라 임의로 추천 키워드를 넣거나, 철자 오류라고 판단되는 것은 알아서 수정하기까지 한다.

 

⦁검색엔진은 찾은 웹페이지를 “순서”에 따라 정렬한 후 해당 링크를 표시한다.
일반적으로 “보통”의 사용자가 보기에 중요할 것 같은 순서로 정렬을 하나, 최근 추세는 검색어 를 입력한 사용자가 “선호할 것 같은” 순서로 정렬을 한다. 물론 “광고”는 예외적으로 검색 서비스 정책에 따라 주요 위치에 정렬한다. 또한, 해당 링크만 딸랑 표시하는 것이 아니라 해당 페이지 내용의 일부를 링크와 함께 보여줌으로써 사용자들이 해당 검색결과를 클릭할지 판단할 수 있도록 도와준다.

 

⦁사용자는 링크를 클릭하여 해당 페이지로 이동한다.
여기서 검색엔진은 사용자가 클릭한 이력, 클릭한 페이지에 머문 것으로 추정되는 시간 등의 정보를 “잘” 기억해 둔다.

 

이상은 사용자가 검색어를 입력했을 때 검색엔진이 수행하는 기본적인 동작들이다. 검색엔진은 이 외에도 끊임없이 검색서비스를 위해 “무엇인가” 동작을 늘 하고 있다. 특정 주기에 정기적으로 할 수도 있고, 필요하다고 판단되는 경우 임의로 다음과 같은 작업을 수행한다.

 

⦁검색엔진은 인터넷상의 새로운 웹페이지를 크롤링한다.
이때 모든 웹페이지를 모두 검색결과로 활용하는 것이 아니라 일종의 문서 정제작업을 한다. 검색결과로서 의미 없다고 판단되는 페이지, 해당 웹페이지가 웹표준을 전혀 준수하지 않는 등 품질이 매우 떨어지는 경우는 수집하자마자 바로 폐기한다. 메일에서 스팸을 걸러내는 것으로 이해하면 된다.

 

⦁추후 빠르게 찾을 수 있도록 수집된 페이지에 대한 색인을 생성한다.

 

⦁검색엔진은 각 페이지에 대한 “페이지랭크”를 업데이트한다.

 

페이지랭크(PageRank)는 검색 결과를 노출시킬 때 우선순위를 결정하는 주요 요소로 해당 웹사이트가 인터넷상에서 상대적으로 얼마나 “중요한”가를 나타내는 수치이다. 오늘날 구글을 있게 한 가장 핵심 알고리듬이며 웹페이지의 순서를 보여준다는 뜻으로 페이지랭크라 부른다. 혹자는 구글 창업자인 래리 페이지의 성을 따 왔다고도 한다. 해당 웹페이지의 페이지랭크 값은 이 페이지에 대한 다른 웹페이지에서의 링크가 많아질수록 커진다. 페이지 랭크는 다음과 같은 수식으로 결정된다.(1)

PR(x)는 페이지 x의 페이지랭크를 의미하며, L(x)는 페이지 x에서 외부로 나가는 총 링크 수이다. Bx는 페이지 x로 링크가 있는 모든 페이지의 집합을 의미한다. 이 수식을 직관적으로 풀어 설명하면, 한 페이지의 페이지랭크는 자신한테 링크가 있는 모든 페이지의 페이지랭크를 합친 것인데, 단 자신을 링크로 가리키는 페이지에서 자신 말고 다른 페이지로의 링크가 여러 개 있다면 그 개수만큼 나누어 더하는 것이다. 예를 들어 페이지 v에 외부링크가 총 10개가 있다면 L(v) 값은 10이 된다.

 

그런데 실제로 사용자들이 링크가 나올 때마다 무조건 클릭하는 것은 아니기 때문에 가상의 사용자가 링크를 클릭할 확률 d를 적용하면 다음과 같이 수식이 보정된다.

 

 

d를 오디오 분야에서 용어를 따와 댐핑팩터(damping factor)라고 부른다. 통상 d 값은 0.85 정도라고 한다. N은 전체 페이지 수를 나타낸다. 위 수식에 의하면 모든 페이지의 페이지랭크 합은 1이 된다. 실제 검색엔진에서의 순위는 단순히 페이지랭크뿐만 아니라, 여기에 페이지 품질, 맥락(context), 그리고 “개인별 성향”에 기반을 둔 요소들이 추가된다. 여기서 흔히 이슈가 되는 검색 알고리듬은 주로 후자, 즉 페이지 품질이나, 성향을 분석하는 방식에 해당한다.

 

잘하는검색 엔진이란?

 

구글과 네이버는 얼마나 “좋은” 검색엔진을 가지고 있을까? 사실 “좋은”이란 표현보다는 “잘하는” 검색 서비스라고 말하는 것이 더 적당할 수 있다. 좋다 / 나쁘다는 기준을 정하기는 어렵지만, 이 두 회사의 성공을 견인할 만큼 잘하는 검색엔진이 있다고 말하는 것이 직관적이기 때문이다. 그러면 도대체 잘하는 검색 엔진이란 무엇인가? 그 답은 의외로 간단하다. 검색 결과의 가능한 앞쪽에 사용자가 만족해할 만한 답을 노출하는 것이다. 가장 최적의 검색 결과라면, 사용자가 더 다른 클릭을 하지 않아도 될 만큼 정답 하나만 노출 시키는 것이다. 검색 서비스를 만드는 사람이라면 늘 이런 목적을 향해 알고리듬을 개선해나아가게 된다. 이를 이해하기 쉽게 그림으로 표현하면 그림1과 같다.

 

 

[그림 1] 검색 결과의 개선 방향
[출처 : 윤대균]

그림1은 검색이 개선되는 방향을 도식화 한 것이다. 이 그래프에서 x축은 검색 결과가 노출되는 순서이고, y축은 해당 위치에서의 클릭이 일어나는 빈도이며 검색이 개선될수록 클릭이 앞쪽에서 이루어진다는 것을 의미한다. 즉, 사용자가 만족할 수 있는 답이 주로 앞에 포진하면 할수록 “잘” 하는 검색 서비스로 간주할 수 있다. 만족스러운 검색 결과를 찾을 때까지 자꾸 뒤쪽 페이지를 들춰볼 필요가 없다는 뜻이다.

 

검색알고리듬을 개선하는 것도 결국 이런 목표를 지향하는 것이라고 볼 수 있다. 구글이나 네이버의 경우 끊임없이 알고리듬을 개선하기 위한 노력을 기울이고 있다. 알고리듬 개선이 이루어지는 과정에서 일단 개선 아이디어가 제시되면 이를 바탕으로 심도 있는 여러 단계의 테스트가 진행된다. 이런 모든 테스트에서 적합 판정을 받을 경우 실제 검색서비스에 적용되어 일반 사용자들이 접하게 된다. 여기서 가장 중요한 것은 테스트 단계로 다음과 같은 평가/테스트가 포함된다

.

⦁내부 품질 테스트/평가

⦁외부 품질 테스트/평가

⦁법률 및 개인정보보호 컴플라이언스 테스트

⦁라이브 테스트

 

특히 여기서 눈여겨볼 것은 외부 품질 테스트이다. 수많은 사용자의 다양한 수요와 성향을 만족시키기 위해 외부 품질 테스트 및 평가는 매우 중요하다. 구글은 2019년 한 해 46만4천여 회의(2)외부 전문가들에 의한 테스트를 실시하였으며 이 과정을 통해 3,620번의 검색 개선이 이루어졌다고 밝히고 있다. 검색 품질 평가를 위해 구글은 상세한 가이드라인을 제시하고 있다.(3) 이 가이드라인은 한편, 구글 검색결과에서 상위에 노출되기 위한 가이드로도 활용될 수 있다. 검색광고 전문 대행사들이 SEO(Search Optimization)를 위해 참고하여야 할 문서이기도 하다. 네이버의 경우에도 외부 인사들로 구성된 서비스 품질 자문단이 있지만 구글처럼 공개적이면서 체계적으로 외부 품질 평가가 이루어지지 못하는 점은 아쉬운 대목이다.

 

 

검색랭킹에 깊이 관여하는 머신러닝

 

 

최근에는 머신러닝을 활용한 개인 맞춤형 검색 랭킹 알고리듬이 보편화 되고 있다. 일반적인 검색엔진 기능에 더하여 검색 의도 및 문맥에 맞는 결과를 추출하고 이를 가장 유용한 순서로 배치하는 데 머신러닝을 활용한다.

 

 

[그림 2] 머신러닝을 활용한 검색 랭킹 조정
[출처 : 위키피디아]

머신러닝을 적용하기 위해서는 충분한 트레이닝 데이터가 필요하다.(그림 2 오른쪽 하단) 우선 트레이닝에 필요한 다음과 같은 피처(feature)들을 도출하여야 한다.

 

⦁정적(static) 피처: 검색 질의어와 무관한 페이지랭크, 문서 길이 등

⦁동적(dynamic) 피처: TF-IDF(Term Frequency – Inverse Document Frequency)
TF는 어떤 한 문서에 특정 단어(term)가 나오는 빈도를 말하고, DF(Document Frequency)는 여러 개의 문서가 있을 때 특정 단어가 얼마나 많은 문서에 등장하는지를 나타낸다. IDF는 DF 를 역으로 적용하는 것으로, 특정단어가 나오는 문서의 빈도가 낮을수록 값이 커진다. TF와 IDF를 조합한(곱한) 것이 TF-IDF로, 특정 단어(term)의 빈도가 높되 이 단어가 나오는 문서의 빈도는 낮을 경우 값이 커지게 된다. 이는 다시 말해 특정 단어가 들어가 있는 문서가 있다면 이 문서는 해당 단어와 매우 깊은 연관이 있음을 의미한다.

⦁검색 질의어 피처: 검색 질의어에만 국한되는 것으로 검색어 단어 수 등을 들 수 있다.

 

이상과 같은 피처들뿐만 아니라 검색 결과에 영향을 미치는 모든 요소를 일컬어 랭킹 시그널(Signal)이라고 부른다. 이런 모든 시그널들이 최적의 검색 랭킹을 위한 학습에 활용되어 결국 해당 웹페이지의 검색 순위를 좌우하는 요소가 된다. 한 검색 마케팅 전문 사이트에 의하면 구글 검색에만 200개가 넘는 시그널이 유효하다고 한다. 네이버 검색도 별반 다르지 않을 것으로 짐작된다. 여기에는 앞서 살펴본 피처 외에 모바일 페이지 품질, 페이지 로딩속도, 이미지 품질, 해당 도메인의 이력(나이), 안전성 여부(http vs https) 등 일일이 열거하기 어려울 정도의 많은 피처가 존재한다.

 

현대의 검색 엔진은 머신러닝 의존도가 점점 더 높아지고 있다. 즉, 매우 다양한 피처들 하나하나가 검색 노출 순위에 영향을 미치게 된다. 특히 개인의 검색 서비스 사용 이력, 즉, 흔히 쓰는 키워드와 주로 클릭하는 페이지에 대한 학습이 많이 이루어질수록 개인별 차별화된 검색 결과가 노출될 가능성이 커진다. 이런 편향은 학습을 거듭할수록 심화될 수 있다.

 

검색에서의 중립성이란?

 

위키피디아에서는 검색의 중립성(Neutrality)에 대해 다음 세 가지 요소를 들고 있다.
첫째, 편집자의 손길이 닿지 않는, 즉 알고리듬에 의해서만 순위가 정해지며, 둘째, 포괄적이며 선별적이지 않고(Comprehensive), 셋째 공정(Impartial)해야 한다는 것이다. 연관성 및 콘텐츠 품질에 의해서만 순위가 결정되어야 한다는 뜻으로, 광고주나 특정 스폰서의 영향력 밖에 있어야 한다는 의미이기도 하다.

 

그렇다면 과연 검색 결과가 모두에게 공정하고 편향적이지 않을 수가 있을까? 검색엔진의 결과를 좌우하는 많은 다양한 시그널은 주로 “전문가”들에 의해 설계된다. 또한, 검색 결과에 대한 반응이 계속 축적되며 이를 학습한 검색 모델에 반영된다. 즉 검색 알고리듬 자체가 편향성을 가질 수밖에 없고, 또 그 방향으로 향한 진화를 거스르기 힘들다. 내가 “무엇”인가 “검색”을 하여 결과를 줄 세우기 하는 행위 자체가 편향성을 내포하고 있다고 봐도 틀린 말이 아니다.

 

앞서 언급했듯이 수많은 시그널들을 통해 학습된 알고리듬에 의해 검색결과가 좌우된다. 사실 검색알고리듬을 개발한 당사자도 검색결과를 예측하기 힘들다. 그리고 수많은 SEO 전문가들이 검색 알고리듬을 예의 주시하고 있다. SEO 전문가들이 알고리듬 변경을 찾아내고 그 이후 구글이 시인하는 경우도 많다. 국내에서도 네이버 검색 광고의 사소한 변경에 민감해 하는 SEO 전문가들이 많다. 약간의 변경 징후가 발견되어도 바로 검색 광고 에이전시들은 이를 눈치 채고 여기에 맞는 최적화를 시도하려 할 것이다.

 

최근 공정위에서 네이버가 자사 서비스에 유리하게 검색순위를 인위적으로 조작했다고 단정하고 있는 것은 매우 이례적이라고 볼 수 있다. 공정위에서 오랜 시간 충분한 조사와 검토를 거친 후 내놓은 결론임에도 불구하고 네이버는 여기에 수긍하지 않고 있다. 특히 최근까지도 타 오픈마켓에 대해 불리한 기준을 적용하여 자사 쇼핑 서비스를 우대하는 인위적인 검색순위 조정이 있었다고 한다. 사용의 편리성, 결제의 효율성 등으로 일부러 네이버 쇼핑을 찾아가는 필자의 입장에서는 아마 이러한 차별을 피부로 느끼지 못했을지도 모른다. 다른 한편으로는 이러한 검색 결과가 나한테 최적이라고 판단한 알고리듬이 열심히 계산한 결과일 수도 있다. 검색 서비스를 “잘한다”는 것은 나를 위한 편향된 결과를 제공하는 것이기 때문이다. 만일 공정위와 네이버가 법정으로 이 사안을 가져간다면 주요 쟁점 역시 이 부분에 있지 않을까 생각된다.

 

 

본 원고는 KISA Report에서 발췌된 것으로 한국인터넷진흥원 홈페이지(https://www.kisa.or.kr/public/library/report_List.jsp)에서도 확인하실 수 있습니다.

KISA Report에 실린 내용은 필자의 개인적 견해이므로, 한국인터넷진흥원의 공식 견해와 다를 수 있습니다.

KISA Report의 내용은 무단 전재를 금하며, 가공 또는 인용할 경우 반드시 [한국인터넷진흥원,KISA Report]라고 출처를 밝혀주시기 바랍니다.

   [ + ]

1. 수식출처: 위키피디아
2. 구글 코리아에 나와 있는 통계로는 38만 3600회로 다소 차이가 있다.
3. https://static.googleusercontent.com/media/guidelines.raterhub.com/en//searchqualityevaluatorguidelines.pdf
Recent Posts
Contact Us

언제든지 편하게 연락주세요.

Not readable? Change text. captcha txt