오늘은 검색 알고리듬 이야기.
태초에 웹이 있었지만 웹이 지식의 보고가 된 가장 결정적인 사건은 검색사이트의 등장이었다. 꽤 오래 전에는 기업들이 직관적인 인터넷 주소를 점유하기 위해 노력했지만, 이제는 아무도 그것에 신경쓰지 않는다. 대부분 검색사이트를 통해 진입하는 것이 일반화 되어있기 때문이다.
그렇다면 검색엔진이라는 것은 IT사이드에서 창조해 낸 새로운 알고리듬일까? 검색엔진의 기본은 인덱스를 사용하는 것이며, 사실 인덱스는 이미 기존에도 꾸준히 사용해오던 방식이다. 사전이나 학술서들의 맨 뒤 색인 페이지가 바로 그것이다. 인덱스의 기본은 페이지 내의 키워드와 그 키워드가 포함되는 페이지를 연결해두는 것이다. 그리고, 그 키워드들을 알파벳 순서로 나열해두면 작업이 끝난다. 사람들은 사전을 검색하는 요령으로 맨 뒷페이지에서 키워드를 찾고 그 옆에 제시된 페이지로 이동을 한다. 웹페이지도 동일하다. 검색회사에서는 세상의 모든 웹페이지 내의 키워드들을 추출하고 그것과 해당 키워드가 존재했던 페이지의 주소를 연결해둔다. 이것이 검색엔진의 핵심 알고리듬이다.
여기에 메타워드 트릭이 추가되어 더욱 정교한 검색이 가능해졌다. 메타워드를 사용한 검색은 페이지 내 키워드를 모조리 인덱싱하던 것에서, 해당 키워드가 존재하는 부분에 대한 정보(제목, 바디, 주석 등등)까지 함께 고려하여 검색하는 것이다. 예를 들어 키워드 검색을 할 때 바디보다 제목에 키워드가 들어있으면 더 히트율이 높은 페이지라 생각하고 보다 상위에 보여주는 식이다.
이쯤에서 리얼월드에는 존재하지 않는 웹의 구조를 활용한 획기적인 페이지랭크 알고리듬이 등장하게 된다. 이 페이지랭크 알고리듬(검색사이트에서는 검색 후 히트율이 높을 것 같은 페이지부터 차례로 보여주는게 되는데, 이 때 페이지 간의 랭킹을 계산하는 알고리듬)이 현재의 구글을 만들어냈다.
이 알고리듬이 리얼월드에 존재하지 않는 이유는 바로 하이퍼링크를 사용하기 때문이다.(리얼월드에는 하이퍼링크가 없으니까) 하이퍼링크는 웹의 가장 중요한 기능으로 페이지 중 특정단어를 클릭하면 그 단어에 맞는 사이트로 이동하게 된다. 페이지랭크 알고리듬은 특정 페이지의 랭크를 정할 때 해당 페이지로 연결되는 외부 하이퍼링크의 갯수가 많을 수록 랭크를 높게 주게 된다. 물론 이 외에 여러가지 알고리듬으로 하이퍼랭크 알고리듬을 보정하게되며, 구글도 현재 200개 이상의 보정 알고리듬을 함께 돌리고 있다.
요즘은 자고 일어나면 새로운 인프라나 테크놀로지가 출현된다. 어떤 것이 살아남거나 소멸할지 재빨리 판단해야하고, 나아가서 그 인프라의 특성을 이용해 또 어떤 의미있는 알고리듬들을 만들어낼 수 있을지 고민하는 것은 IT를 하는 사람들만의 특권이다. 뒤꿈치 따라가며 감탄만 하지 않으려면 부지런히 움직일 일이다.
2014. 7. 14. 09:56
먹고살려고 하는 일