구글 SEO를 위한 BERT 모델 훑기

아마귀차니스트

·

2020. 3. 7. 18:43

 

  정말 타이틀이 거창해졌습니다. 구글 SEO를 위해서 화공돌이가 BERT 모델에 대해 찾아보다니...그만큼 구글을 통한 사람들의 검색이 많다는 의미로 알아봐주시면 감사하겠습니다. 우리나라 주요 자연검색어(Organic Search)는 네이버와 구글에서 발생합니다. 기타 다음이나 NATE 등이 있지만, 소수니까 무시하도록 하죠.

 

네이버 C-RANK의 알고리즘

 

  네이버는 C-RANK를 통해 게시글의 신뢰도와 인기도를 평가하고 이를 통해 믿을 수 있는 정보를 우선 노출하고 있습니다. 곧, 카테고리에서 어느 정도 글을 썼고, 그 글의 신뢰도가 어느 수준인지 평가해 검색결과로 반영하겠다는 의미죠. 예전처럼 키워드로 도배한 글에 대한 철퇴를 내린 것이라고 할 수 있습니다. 네이버의 상단을 차지하기 위해서는 그만큼 한우물만 파는 전문성이 필요한 시점이 도래한 것이죠.

 

  시작은 네이버에 앞서 구글이 시작했습니다. 구글은 모바일의 구글 어시스턴트와 같은 녀석들에게 BERT를 적용해 질문이 정확이 어떤 내용인지 파악하고자 했습니다. 더욱이 검색엔진에도 BERT를 활용하기 시작했고, 그 대상언어로 한국어가 포함되어 있습니다. 그렇기 때문에 자연검색을 통한 트래픽 증가를 노린다면, BERT에 대해서 알아볼 필요성이 있다고 생각했죠. 그래서 BERT에 대해 얕게나마 정리해보고 싶었습니다.

 

버트(BERT)가 누구냐?

  구글이 공개한 인공지는 언어모델 BERT(Bidirectional Encoder Representations from Transformers)는 검색과 같은 광범위한 자연어 작업(NLP)에서 단어의 늬앙스와 문맥을 보다 잘 이해하고 유용한 검색결과가 효과적으로 일치하도록 도와주는 알고리즘입니다. (출처:노컷뉴스 일부 발췌)

 

  현재 구글에서 BERT를 얼마나 적용했는지 모르지만, 초창기에는 미국 영어기준 10건 중 1건을 BERT 알고리즘을 적용해 검색결과로 보여줬다고 합니다. 기존 검색결과보다 사람들이 검색하는 결과에 대한 보다 접근성 높은 결과를 가져왔기 때문에 여기저기에 도입하려고 노력중인 알고리즘이라고 합니다.

 

BERT 모델 Transformer 아키텍처

 

BERT를 적용하면, 구글 검색엔진은 어떻게 이해할까?

  정상적인 한국어라면, 구글이 학습하는데 문제가 없겠지만...이런 글이 나온다면 구글도 무사하지는 못할겁니다.

번역기가 이런글을 알아볼 수 있을까요?

  구글이 어떻게 BERT 모델을 한국어에 적용했는지에 대해서는 검색능력이 부족해 알 수가 없었습니다. 다만 네이버 클로바의 연구진이 진행한 실험을 바탕으로 정리를 해보려고 합니다. 평가단계는 제외하고, Preprocessing 과정만 보도록 하죠.

 

실험 파이프라인 진행도 (출처 :https://blog.pingpong.us/dialog-bert-pretrain/#%EC%99%9C-bert%EB%A5%BC-%EC%84%A0%EC%A0%95%ED%96%88%EB%82%98%EC%9A%94)

 

  제가 봐야할 부분은 2번째 블럭의 Preprocessing 입니다. 문장을 Word Piece Model에 따라 토큰화시키고, 이에 따라 단어별로 문장에 어디에 어떻게 붙는지 공부하는 형태더라구요. 문어체에서는 낫겠지만, 구어체에서는 정말 어려울 것 같은 느낌이 팍팍 듭니다.

 

구어체의 문장을 전처리과정을 통해 각각의 형태소로 나눈 모습

 

  여기서 제가 실험해보고 싶은 부분은 맨 윗줄에 Input입니다. 사람들이 검색을 할 때 입력하는 단어가 어떻게 나뉘는지 보고, 이를 통해 검색어에 직접 넣어보기도 하고, 구글 애드워즈 키워드 플래너에 넣어보기도 하면서, 최상단에 위치한 웹페이지와 입력한 검색어의 값이 어떻게 상관관계를 갖고 있는지 파악하고자 노력해봐야겠다는 생각이 들더라구요. 제가 주목하고 싶은 부분은 "명사"들의 나열입니다.

블로그 실험 첫번째, BERT가 인식할만한 명사의 나열

  BERT 모델을 보면 화공돌이는 토나옵니다. 그저 버트가 어떻게 검색어를 인식하고, 그 결과로 나온 웹페이지가 어떤 구성을 갖고 있는지 그 상관관계를 알아보고자 하는게 첫번째 실험의 목표죠. 실험의 계획은 단순합니다.

 

  • 추출 : 내 블로그의 검색키워드 중 명사의 나열로 되있는 것들 분류
  • 가설 : 1위인 웹사이트는 나보다 더 많은 키워드를 내포하고 있을꺼야!
  • 실험 : 내가 1위인 키워드 말고, 2~3위인 키워드를 찾아 1위 웹사이트의 키워드를 뽑아내 내 글과 비교해보기
  • 평가 : 실제 횟수별로 비교해보고, 어떤 점에서 구글이 좋아했는지 포인트를 찾아보기

  물론 BERT 모델이 중요하기도 하지만, C-RANK처럼 주변 웹사이트와의 관계, 사용자의 피드백을 통해 중요도를 판단하는 방법도 동시에 적용되고 있다고 봅니다. 그래서 그런 요소들은 배제할만한 비슷한 블로그나 웹사이트를 찾는게 일이겠죠...오늘부터 일주일, 실험에 들어갑니다.