지능이라는 이름의 게임(11): 집단지능과 블록체인(3)

이번에는 구글의 검색 엔진을 살펴보자. 내부 개발자가 아닌 다음에는 현재 구글의 검색 엔진이 정확히 어떻게 구성되어 있는지를 정확히 알 수 없다. 구글이 검색엔진 알고리즘을 공개하지 않을 뿐 아니라 그것이 지속적으로 변하고 있기 때문이다.

구글의 검색엔진은 2000년 페이지랭크(PageRank) 알고리즘으로 시작한 이후 계속 갱신되어 왔으며 2013년에 허밍버드(Hummingbird) 알고리즘으로 전환된 후에는 큰 틀이 유지되고 있는 것으로 알려졌다. 구글의 발표에 의하면 검색엔진 알고리즘에는 200여 개의 요소가 투입되고 있다. 외부에 알려진 요소로는, 랭크브레인(RankBrain), 페이지랭크(PageRank), 웹사이트 품질, 검색어의 위치(제목/URL), 검색어의 동의어 존재 여부, 서버의 위치, 컨텐츠 발행 날짜 등이 있다. 그 알고리즘은 사용자가 무엇을 원하는지를 추측한 다음, 가장 적합한 정보 순으로, 최대한 신속하게 검색결과가 제시되도록 작동한다.(주석 1)

구글의 검색엔진 알고리즘은 계속 진화해 왔지만 구글의 접근방식을 이해하는 데는 아직도 페이지랭크 알고리즘을 살펴보는 것이 가장 효과적이다. 페이지랭크 알고리즘은 크게 변화되지 않았으며 아직도 구글 검색엔진 알고리즘의 중요한 요소로 남아 있다. 웹페이지의 페이지랭크 (점수)를 계산하는 원리는 아래 식(1)로 간단히 나타낼 수 있다.

웹페이지 A의 페이지랭크 는 기본적으로 웹페이지 A에 링크를 건 웹페이지 B, C, D 등의 페이지랭크[ ]를 합한 것이다. 식(1)에서 나머지 요소들은 그렇게 단순한 합을 점수로 했을 때 발생하는 문제를 해결하기 위해 추가되었다. (주석 2)

이 식을 곰곰히 살펴보면, 해당 검색어(들)를 갖고 있는 웹페이지의 등급—그것도 링크라는 상당히 엉뚱한 기준을 가지고 매긴—이 검색 결과를 제시하는 순서를 결정한다(현재는 페이지랭크 외에도 많은 정보들이 고려되어 최종적인 나열 순위가 결정된다). 한 웹페이지의 페이지랭크는 다른 웹페이지와의 관계(링크 여부)와, 그 웹페이지를 링크한 웹페이지의 영향력(페이지랭크)에 의해 결정된다.

관련 이미지

한 마디로 페이지랭크는 일종의 인기도이다. 웹페이지들이 각 웹페이지를 두고 링크(link)를 거는 방식으로 일종의 인기투표를 한 결과라고 할 수 있다. 이는 구글의 검색 엔진이, 웹사이트들(결국 그것은 운영자들)의 지혜를 기술적으로 취합해서 효율적인 정보검색이라는 사용자들의 ‘공동’ 과제를 해결하는 집단지능임을 의미한다.

IBM의 Chef Watson은 인지적 컴퓨팅(cognitive computing)이라는 방법을 사용해서 요리 아이디어와 요리법이라는 사람들의 일상적인 숙제를 해결해주고 있다. 이 사례도 대단히 흥미 있지만 생략하고 다음 포스팅부터는 블록체인을 살펴보자.

 

주석 1: 구글의 검색엔진이 변해온 과정을 보려면 MOZ 웹사이트의 Google Algorithm Change History를 참조. 랭크브레인 알고리즘에 관해서는 Search Engine Land blog의 FAQ: All about the Google RankBrain algorithm을 참조.  PageRank에 대한 알기 쉽고 상세한 수학적 설명은 코넬대학교가 운영하는 The Mathematics of Web Search에서 찾을 수 있음. 이 사이트는 PageRank를 이해하는데 필요한 선형대수(linear algebra)에 대한 설명도 제공함.

주석2: 는 damping factor인데, “어떤 무작위로 웹서핑을 하는 사람이 현재의 페이지에서 다른 페이지로 가는 링크를 클릭할 확률”이다. 은 모든 웹페이지의 숫자이며, 는 B라는 페이지가 가지고 있는 링크(outbound links)의 총 개수이다. 이 요소들에 대한 쉬운 설명은 ‘조성문의 실리콘밸리 이야기’ 블로그의 “‘쉽게 설명한’ 구글의 페이지랭크 알고리즘”을 참조.

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다