brunch

You can make anything
by writing

C.S.Lewis

by 옥준 Nov 07. 2022

Aurora프로젝트, 네이버 SEO 품질 향상의 시작

다른 국가와 다르게 한국은 네이버라는 포털사이트가 전체 검색엔진의 62.51%를 차지하고 (구글의 경우 27.95%) 있을 정도로 대중적으로 자리하고 있습니다. 단순히 검색뿐만 아니라 쇼핑, 구매, 웹툰, 뉴스 등 다양한 산업이 일상생활 속에서 사용되고 있는 만큼 네이버의 중요성은 이루 말할 수 없습니다.

출처 : internet trend


이런 네이버가 올해 초부터 Aurora 프로젝트라는 웹 검색 품질을 향상하기 위한 프로젝트를 시작했습니다.

최근 들어 1~2개의 웹페이지를 보거나 아예 웹페이지 클릭 없이 검색 결과 페이지(SERP)에서 정보를 찾는 Zero Click을 하는 등의 다양하고 복잡한 형태로 검색하는 패턴이 늘어나며 네이버 또한 검색엔진의 중요성을 간과할 수 없었을 것입니다.


그럼 네이버가 진행하는 Aurora 프로젝트에 대해 함께 알아보시죠.


1. Aurora 프로젝트는 무엇인가요?

Aurora 프로젝트는 AI-Based-Universal-Robust-Ranking-Answering의 약자로, Big Model을  포함하여 머신러닝 기반으로 사용자들의 검색 니즈를 충족시키기 위해 만들어진 프로젝트입니다. 네이버 사용자들의 복잡해진 검색 패턴과 높아진 눈높이를 충족시켜야 했겠죠?


2. 검색엔진을 향상시키기 위해 네이버는 어떤 알고리즘을 도입했나요?

문서 단어가 ID로 표현되어서 색인되고 검색되는 기존의 어휘 기반 매칭과는 다르게, 문서의 단어가 주변의 문맥과 함께 인코딩 된 후 의미적인 백터(vector)로 표현되는 뉴럴 매칭을 도입했고, 이 뉴럴 언어 모형은 익히 들어온 2019년 구글에서 도입한 BERT 알고리즘입니다. 즉, 네이버도 구글이 도입했던 알고리즘을 동일하게 선택하는 상황이 되어버렸습니다.

출처 : Naver Search 블로그

네이버에 뉴럴 매칭을 도입하면서 기존 어휘 기준 매칭 방법에서 어려웠던 일이 가능하게 되었습니다.


1) 단순한 질의와 문서에서 동일한 단어가 출현하는지를 보는 어휘 단위 매칭에서는 질의 변환(Query rewriting), 동의어, 확장 등 제한적인 범위의 유사어 선택만 가능했지만 단어의 의미를 백터로 표현하는 뉴럴 매칭에서는 이보다 적극적인 매칭이 가능하게 되었습니다. 즉, 키워드 스터핑*에 대한 영향력이 BERT 알고리즘으로 넘어오면서 점점 약해지고 있다는 점을 암시할 수 있습니다.


*키워드 스터핑 : 검색 엔진에서 높은 우선순위를 얻기 위해 웹 페이지에 특정 키워드를 고의로 다량 삽입하는 행위


2) 단어의 고유한 의미뿐만 아니라, 주변 문맥의 의미 정보도 같이 백터로 표현이 되면서 문서에서의 단어가 질의에서의 문맥과 일치하는 쓰임새로 사용되었는지 함께 고려할 수 있습니다. 키워드 자체의 뜻 보단 문맥 자체로 파악할 수 있게 학습이 가능하다는 점이죠.


위와 같은 장점을 지닌 뉴럴 매칭을 통해 이전 어휘 기반 매칭에서는 어려웠던 의미 기반 질의 및 문서 간 매칭 정보를 검색에서 활용할 수 있게 되었습니다.

출처 : Naver Search 블로그

뉴럴 매칭 첫 번째 문제, 과도한 일반화 문제

하지만, 뉴럴 매칭은 완벽한 알고리즘일까요? 네이버에서는 뉴럴 매칭을 적용하기 위해 몇 가지 문제를 극복해야 한다고 언급했습니다. 그중 하나는 과도한 일반화(over-generalization) 문제인데 실제 네이버에서 예시로든 사항을 함께 보시죠.


반도체로 유명한 S사와 H사가 있습니다. 최근 어떤 반도체 공정에서의 기술적인 혁신에 대한 뉴스가 있었는데 사람인 저희도 며칠이 지나고 나서 기억을 해보면 정확히 어디 회사에 대한 내용인지 헷갈릴 수 있듯이 마찬가지로 이와 같은 현상이 뉴럴 매칭에서도 발생합니다. S사와 H사가 반도체를 만드는 회사로 큰 카테고리에서는 동일한 의미 부류인 만큼 머신러닝 과정에서 S사와 H사는 같은 반도체 계열이지만 다른 회사라는 점을 학습시키지 못하면 두 회사에 대해 매우 유사한 백터를 만들기가 쉽죠. 그렇게 될 경우 S사에 대한 질의를 H사에 대한 답변으로 보여주는 오류가 생길 수 있습니다. 


학습 데이터를 증강하여 학습하는 방법, 데이터 증강

검색 서비스인 만큼 웹 검색 신뢰도를 생각한 다면 뉴럴 매칭을 적용하기 전에 꼭 해결해야 하는 이슈이죠.

다행히 네이버는 그동안 검색 서비스를 연구, 개발해오면서 상당한 양의 언어 자원 및 기술을 축적해왔고 동일한 부류에 속하지만 검색에서는 다른 의미로 구분되는 단어의 집합 또한 가지고 있었습니다. 이러한 방대한 데이터를 통해 학습에 필요한 부정 예제(negative examples)를 만들 수 있었죠.


이렇게 학습 데이터를 증강하여 모형을 보다 견고하게 학습하는 방법을 데이터 증강(Data augmentation)이라 하는 데 사용할 수 있는 자원만 충분하다면 간단한 만큼 효과적으로 성능을 높일 수 있습니다.


뉴럴 매칭 두 번째 문제, 색인 공간 및 연산량의 증가

많은 정보를 고려해 데이터에 대한 표현력을 높일수록 성능이 좋아지는 신경망 기반 모형의 특성상, 모형의 단순화나 백터 공간의 축소를 통한 해결 방식은 알고리즘을 망가뜨릴 수 있습니다. 이 문제를 해결해기 위해서 네이버는 다음과 같은 방식을 사용했습니다.


서로 다른 형태의 표현을 인식시키는 '매칭 모형'과 색인 유무의 판별을 도와주는 '부류 모형'

1) 문서의 모든 단어가 모두 동등한 색인 가치를 지니지 않은 만큼 문서의 주제가 직결되어 있으며 사용자가 궁금할 만한 내용을 표현하는 부분만 골라내어 색인해야 하는 단어를 상당히 줄이는 방법입니다.

2) 적합 문서 쌍을 가지고 모형을 학습하면 사용자가 관심이 있을 법한 핵심 내용을 문서의 문맥 정보에 기반해 일정 이상의 정확도로 식별하는 것이 가능합니다.

출처 : Naver Search 블로그

이런 경험을 기초로 하여 뉴럴 매칭 모형에 단어의 색인이 필요한 기능도를 판정하는 레이어와 이와 연결된 별도의 컴포넌트 모형을 추가한 새로운 방법을 개발하게 되었습니다. 동일한 의미이지만 질의와 문서 간 서로 다른 형태의 표현을 '매칭 모형'을 통해 인식하고 동시에 어떤 단어를 색인할 필요가 있는지에 대한 판별은 별도의 '부류 모형'을 사용해 수행합니다. 이 구조를 통해 색인 및 연산량을 줄여주었으며 불필요한 노이즈를 색인에서 제거해줌으로써 정확도 개선에도 도움이 되게 만들었습니다. 


이처럼 네이버도 일찍이 구글이 검색엔진의 정확도를 개선하기 위해 해왔던 여러 가지 알고리즘 및 모형을 도입하고 있으며 그만큼 사용자들의 검색에 대한 니즈가 높아지고 그에 대한 눈높이에 맞게 발 빠르게 따라가야 한다는 것을 몸소 느끼지 않았을까 생각합니다. 실제로 네이버의 검색 결과 페이지는 대부분 광고가 많아 불편함을 말하는 사용자도 적잖게 있으며 지금 이 순간 구글은 여전히 검색엔진 향상을 위해 작년 MUM 알고리즘 업데이트를 시작으로 올해 BERT 알고리즘보다 1000배 더 강력한 멀티태스크 통합 모델(Multitask Unified Mode) 등 더 강력하게 검색엔진의 정밀도를 높이는 활동을 진행하는 만큼 네이버도 이에 발맞춰 빠르게 나아갈 수 있길 바라면서 이만 포스팅을 마치겠습니다.  

작가의 이전글 #1 제주 여행 중 맡은 진짜 제주 향기
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari