웹소식&트렌드
[펌] 웹문서 검색엔진에 있어서의 랭킹시스템
오뚜기
2004. 12. 16. 18:12
http://blog.naver.com/cut2kam5/100008567426 에서 펌
과거에 웹문서 검색엔진은 검색결과의 정확도에 있어서 낮은 평가를 받았습니다. 그 이유는 대부분의 웹문서 검색엔진들이 단어의 빈도수에 따라서 검색결과를 출력하기 때문이었습니다. 이 말은 '야후'라는 검색어로 검색을 할 경우 '야후'라는 단어가 보다 많이 사용된 문서가 상위에 출력된다는 것입니다. 그런데 이런 빈도수 위주의 랭킹시스템은 특정 기업의 문서를 검색하는 경우나 특정 사이트 내부의 문서만을 대상으로 검색하는 등의 신뢰할 수 있는 영역을 대상으로 검색을 하는 경우에는 충분한 효과를 거둘 수 있지만 인터넷과 같이 신뢰할 수 없는 영역을 검색하는 경우에는 엉뚱한 결과가 나온다는 문제가 있습니다. 실제 많은 웹문서들이 랭킹을 조작하기 위해서 내용과는 상관없이 제목에 야후, 국민은행, 옥션, 게임, 음악, 스포츠 등의 인기 검색어를 사용하는 경우가 많으며 실제로 아직까지도 몇몇 검색엔진을 제외한 나머지 검색엔진의 경우에는 엉뚱한 검색결과가 나오는 경우가 많습니다. 그래서 과거에 웹문서 검색엔진은 결국 디렉토리 검색을 보조하기 위한 수단으로만 사용되는 정도였습니다.
그러나 지금은 상황이 조금 달라져서 몇몇 검색엔진의 경우에는 매우 정확한 검색결과를 보여주고 있는데 그 대표적인 사례는 구글입니다. 구글의 경우는 페이지랭크 알고리즘을 랭킹시스템에 적용을 했는데 이 알고리즘의 요지는 보다 많이 링크가 되어 있는 사이트가 보다 인기있는 사이트라는 것이었고 실제 구글의 랭킹시스템에 의해서 계산된 검색결과가 대부분의 사용자들이 만족할만한 수준의 것이었습니다. 저는 어떤 검색엔진이 정확하다는 것은 그 검색엔진의 검색결과에 대부분의 사용자들이 동의할 수 있다는 것을 의미한다고 생각합니다. 그런데 이런 페이지랭크 알고리즘을 검색엔진에 적용시켜 보신 분은 아시겠지만 이것 또한 만병통치약은 아닙니다. 구글의 페이지랭크 알고리즘이 알려진 이후에 많은 웹사이트에서 문서끼리 서로 링크를 거는 방식으로 대량의 웹문서를 만들어서 랭킹조작을 시도하고 있습니다. 이것은 기존의 검색어 빈도수 조작에 더한 새로운 형태의 스팸문서입니다. 따라서 지금의 상황에서는 무조건적으로 링크의 빈도수를 신뢰할 수 없습니다. 그리고 근본적으로 하나의 문서가 링크가 많이 되어 있다고 해서 그 문서를 모든 경우에 있어서 검색결과의 상위에 출력할 수도 없습니다. 현재 한국의 웹문서들에서 링크를 추출해 보면 가장 많이 발견되는 링크가 야후코리아입니다. 그렇지만 야후코리아의 초기페이지에 '게임'이라는 단어가 있다고 해서 '게임'이라는 단어로 검색을 했을 경우 야후코리아를 최상위에 나오게 할 수는 없다는 거죠.
이런 상황을 감안한다면 결국 검색어의 빈도수나 페이지랭크 어느 한쪽만을 의지해서 랭킹시스템을 구성할 수 없으며 검색어의 빈도수와 링크의 빈도수를 무조건적으로 수용할 수도 없습니다. 그리고 이런 어려움의 원인은 결국 웹문서 검색엔진이 신뢰할 수 없는 영역을 검색한다는 것에 있습니다. 이런 현실에서 웹문서 검색엔진에서 제대로 된 검색결과를 출력하는 랭킹시스템을 구성하기 위해서는 다음과 같은 점을 고려할 수 있겠습니다.
- 스팸필터링
이것은 일단 검색대상의 신뢰도를 조금이나마 높이는 방법입니다. 그러나 요즘의 스팸문서는 날이 갈수록 더 교묘한 방법을 사용하여 랭킹조작을 시도하고 있습니다. 그리고 스팸필터링을 지나치게 강력하게 적영하는 경우에는 스팸문서가 아닌 엉뚱한 문서가 검색대상에서 제외되는 결과가 나오므로 적당한 정도의 스팸필터링을 적용해야 하겠습니다. 실제의 방법에 있어서는 자바스크립트 등을 이용해서 다른 문서로 리디렉트를 하는 문서를 찾아내거나 하는 방법 등이 있는데 앞서 말했듯이 정당한 경우의 리디렉트 문서를 제외하는 경우가 생기지 않도록 조심해야 합니다.
- 검색어의 빈도수
전통적인 방법입니다. 웹문서 검색엔진에 적용하는 경우에 많은 문제점을 갖고 있지만 무시할 수 없는 방법입니다. 실제로 어떤 문서에서 '야후'라는 단어가 많이 발견된다면 이 문서가 야후와 관련이 있다고 생각하는 것이 타당합니다. 그러나 검색어의 빈도수 조작을 시도하는 문서가 많은 만큼 어느 정도의 제한점을 설정하는 것이 필수입니다. 예를 들자면 일정 횟수 이상의 단어가 반복이 되는 경우 랭킹에 반영을 하지 않는다던가 오히려 랭킹시스템에서의 점수를 깎는 방법이 있겠습니다.
- 링크의 빈도수
보다 많이 링크가 되어 있는 사이트가 보다 인기가 있는 사이트라는 것이 기존의 구글의 페이지랭크 알고리즘의 요지인데 비록 요즘에 들어서 이런 형태의 알고리즘을 역이용하려는 스팸문서가 많아지기는 했지만 아직도 링크의 빈도수는 웹문서 검색엔진의 랭킹시스템을 구성하는 데에 중요한 요소가 될 수 있습니다. 그런데 링크에도 여러 종류가 있는데 서로 다른 사이트간의 링크가 있는가 하면 사이트 내부에서의 링크도 있으며 텍스트로 링크가 되어 있는 경우도 있고 이미지로 링크가 되어 있는 경우도 있습니다. 링크의 빈도수를 랭킹에 반영하려면 이런 경우에 있어서 인정할 수 있는 링크과 인정할 수 없는 링크의 구분을 하고 제한을 설정하는 것이 중요합니다.
- 링크텍스트의 반영
링크텍스트란 하나의 문서에서 다른 문서를 지칭할 때의 텍스트를 말합니다. 즉 'kr.yahoo.com' 의 제목에서 발견되는 '야후' 라는 단어보다 타 사이트에서 'kr.yahoo.com' 을 '야후'라는 이름으로 링크를 한 경우의 텍스트가 보다 객관적이라고 판단할 수 있으며 이 링크텍스트를 가져올 수 있다면 랭킹에 매우 중요한 정도로 반영할 수 있다는 것입니다. 물론 요즘에는 이런 것까지 감안해서 스팸문서를 제작하지만 여전히 문서의 내부에서 발견되는 단어보다는 신뢰도가 더 높습니다. 그러나 이런 링크텍스트를 반영하기 위해서는 크롤러가 우선 링크텍스트를 가져오고 저장할 수 있는 기능이 있어야 하겠습니다.
과거에 웹문서 검색엔진은 검색결과의 정확도에 있어서 낮은 평가를 받았습니다. 그 이유는 대부분의 웹문서 검색엔진들이 단어의 빈도수에 따라서 검색결과를 출력하기 때문이었습니다. 이 말은 '야후'라는 검색어로 검색을 할 경우 '야후'라는 단어가 보다 많이 사용된 문서가 상위에 출력된다는 것입니다. 그런데 이런 빈도수 위주의 랭킹시스템은 특정 기업의 문서를 검색하는 경우나 특정 사이트 내부의 문서만을 대상으로 검색하는 등의 신뢰할 수 있는 영역을 대상으로 검색을 하는 경우에는 충분한 효과를 거둘 수 있지만 인터넷과 같이 신뢰할 수 없는 영역을 검색하는 경우에는 엉뚱한 결과가 나온다는 문제가 있습니다. 실제 많은 웹문서들이 랭킹을 조작하기 위해서 내용과는 상관없이 제목에 야후, 국민은행, 옥션, 게임, 음악, 스포츠 등의 인기 검색어를 사용하는 경우가 많으며 실제로 아직까지도 몇몇 검색엔진을 제외한 나머지 검색엔진의 경우에는 엉뚱한 검색결과가 나오는 경우가 많습니다. 그래서 과거에 웹문서 검색엔진은 결국 디렉토리 검색을 보조하기 위한 수단으로만 사용되는 정도였습니다.
그러나 지금은 상황이 조금 달라져서 몇몇 검색엔진의 경우에는 매우 정확한 검색결과를 보여주고 있는데 그 대표적인 사례는 구글입니다. 구글의 경우는 페이지랭크 알고리즘을 랭킹시스템에 적용을 했는데 이 알고리즘의 요지는 보다 많이 링크가 되어 있는 사이트가 보다 인기있는 사이트라는 것이었고 실제 구글의 랭킹시스템에 의해서 계산된 검색결과가 대부분의 사용자들이 만족할만한 수준의 것이었습니다. 저는 어떤 검색엔진이 정확하다는 것은 그 검색엔진의 검색결과에 대부분의 사용자들이 동의할 수 있다는 것을 의미한다고 생각합니다. 그런데 이런 페이지랭크 알고리즘을 검색엔진에 적용시켜 보신 분은 아시겠지만 이것 또한 만병통치약은 아닙니다. 구글의 페이지랭크 알고리즘이 알려진 이후에 많은 웹사이트에서 문서끼리 서로 링크를 거는 방식으로 대량의 웹문서를 만들어서 랭킹조작을 시도하고 있습니다. 이것은 기존의 검색어 빈도수 조작에 더한 새로운 형태의 스팸문서입니다. 따라서 지금의 상황에서는 무조건적으로 링크의 빈도수를 신뢰할 수 없습니다. 그리고 근본적으로 하나의 문서가 링크가 많이 되어 있다고 해서 그 문서를 모든 경우에 있어서 검색결과의 상위에 출력할 수도 없습니다. 현재 한국의 웹문서들에서 링크를 추출해 보면 가장 많이 발견되는 링크가 야후코리아입니다. 그렇지만 야후코리아의 초기페이지에 '게임'이라는 단어가 있다고 해서 '게임'이라는 단어로 검색을 했을 경우 야후코리아를 최상위에 나오게 할 수는 없다는 거죠.
이런 상황을 감안한다면 결국 검색어의 빈도수나 페이지랭크 어느 한쪽만을 의지해서 랭킹시스템을 구성할 수 없으며 검색어의 빈도수와 링크의 빈도수를 무조건적으로 수용할 수도 없습니다. 그리고 이런 어려움의 원인은 결국 웹문서 검색엔진이 신뢰할 수 없는 영역을 검색한다는 것에 있습니다. 이런 현실에서 웹문서 검색엔진에서 제대로 된 검색결과를 출력하는 랭킹시스템을 구성하기 위해서는 다음과 같은 점을 고려할 수 있겠습니다.
- 스팸필터링
이것은 일단 검색대상의 신뢰도를 조금이나마 높이는 방법입니다. 그러나 요즘의 스팸문서는 날이 갈수록 더 교묘한 방법을 사용하여 랭킹조작을 시도하고 있습니다. 그리고 스팸필터링을 지나치게 강력하게 적영하는 경우에는 스팸문서가 아닌 엉뚱한 문서가 검색대상에서 제외되는 결과가 나오므로 적당한 정도의 스팸필터링을 적용해야 하겠습니다. 실제의 방법에 있어서는 자바스크립트 등을 이용해서 다른 문서로 리디렉트를 하는 문서를 찾아내거나 하는 방법 등이 있는데 앞서 말했듯이 정당한 경우의 리디렉트 문서를 제외하는 경우가 생기지 않도록 조심해야 합니다.
- 검색어의 빈도수
전통적인 방법입니다. 웹문서 검색엔진에 적용하는 경우에 많은 문제점을 갖고 있지만 무시할 수 없는 방법입니다. 실제로 어떤 문서에서 '야후'라는 단어가 많이 발견된다면 이 문서가 야후와 관련이 있다고 생각하는 것이 타당합니다. 그러나 검색어의 빈도수 조작을 시도하는 문서가 많은 만큼 어느 정도의 제한점을 설정하는 것이 필수입니다. 예를 들자면 일정 횟수 이상의 단어가 반복이 되는 경우 랭킹에 반영을 하지 않는다던가 오히려 랭킹시스템에서의 점수를 깎는 방법이 있겠습니다.
- 링크의 빈도수
보다 많이 링크가 되어 있는 사이트가 보다 인기가 있는 사이트라는 것이 기존의 구글의 페이지랭크 알고리즘의 요지인데 비록 요즘에 들어서 이런 형태의 알고리즘을 역이용하려는 스팸문서가 많아지기는 했지만 아직도 링크의 빈도수는 웹문서 검색엔진의 랭킹시스템을 구성하는 데에 중요한 요소가 될 수 있습니다. 그런데 링크에도 여러 종류가 있는데 서로 다른 사이트간의 링크가 있는가 하면 사이트 내부에서의 링크도 있으며 텍스트로 링크가 되어 있는 경우도 있고 이미지로 링크가 되어 있는 경우도 있습니다. 링크의 빈도수를 랭킹에 반영하려면 이런 경우에 있어서 인정할 수 있는 링크과 인정할 수 없는 링크의 구분을 하고 제한을 설정하는 것이 중요합니다.
- 링크텍스트의 반영
링크텍스트란 하나의 문서에서 다른 문서를 지칭할 때의 텍스트를 말합니다. 즉 'kr.yahoo.com' 의 제목에서 발견되는 '야후' 라는 단어보다 타 사이트에서 'kr.yahoo.com' 을 '야후'라는 이름으로 링크를 한 경우의 텍스트가 보다 객관적이라고 판단할 수 있으며 이 링크텍스트를 가져올 수 있다면 랭킹에 매우 중요한 정도로 반영할 수 있다는 것입니다. 물론 요즘에는 이런 것까지 감안해서 스팸문서를 제작하지만 여전히 문서의 내부에서 발견되는 단어보다는 신뢰도가 더 높습니다. 그러나 이런 링크텍스트를 반영하기 위해서는 크롤러가 우선 링크텍스트를 가져오고 저장할 수 있는 기능이 있어야 하겠습니다.