[카테고리:] 학술

  • 컴퓨터 잡음

    컴퓨터로 BBC라디오 듣다가 잡음이 계속 귀에 거슬린다. 외부 스피커를 쓰면 잡음이 묻혀서 상관 없는데 연구실에서 여럿 있을 때 크게 틀어놓을 수 없으므로 이어폰을 써야 한다. 문제는 이어폰을 쓰게 되면 잡음도 같이 증폭되어서 커진다는 것이다. 이건 내 귀가 아무리 막귀지만 좀 심하다.

    계속 들어보면서 한가지 흥미로운 사실을 발견했는데, CPU사용량이 늘어나면 잡음이 줄어든다는 것이다. CPU 사용량이 100%인 경우에는 잡음이 전혀 없이 ƒ틀暉構?소리가 들렸다. 그렇다고 잡음 없애자고 CPU를 계속 100% load로 돌릴 수도 없는 노릇이고.

    잡음 감소를 위해서 혹시나 싶어 접지를 시도했으나 연구실 사정상



    [각주:

    1

    ]



    접지 되는 전원으로부터 전원 플러그를 뽑을 수가 없어서 접지를 제대로 해볼 수가 없었다.

    질문 1. 잡음의 근원은 CPU일까?

    질문 2. 어?서 CPU사용량이 잡음에 영향을 미칠까?

    질문 3. 잡음을 줄이기 위해서 접지가 도움이 될 수 있을까?

    질문 4. CPU에서 잡음이 나온다면 CPU나 메인보드를 직접 접지하는 것이 도움이 될 수 있을까?

    질문 5. 사운드카드가 메인보드 내장형인데, 별도의 사운드카드를 이용한다면 잡음이 줄어들 수 있을까?

    아시는 분은 댓글을. 선정되신 분은 추첨을 통해 해당 블로그에 댓글 달아드리러 갑니다. -_-;

    1. 외부 서버에 접속해서 계산을 돌리는 선배들도 있어서 허락없이 컴퓨터를 끄는 것은 “때려주세요”라는 말을 행동으로 표현한 것과 같다.

      [본문으로]

  • 뫼비우스의 띠’비밀 풀렸다…‘에너지 밀도차’로 해석

    번역해서 풀어 쓰신 글을 보니 눈에 확 들어오네요.

    이걸로 뫼비우스 3D 뷰어 같은거 만들면 볼만할 것 같네요.

    물론 직접 만들고픈 욕구는 전혀 없습니다. 머리 아파요 -_-;

  • 이공계 살리기와 운하 건설?


    http://waterway.or.kr/blog/?no=13

    이공계 문제의 원인은 제조업이 경쟁력을 잃고 연구인프라가 없는데, 연구인프라는 일단 회사가 잘나가야 생기는 거고, 회사가 잘나가려면 산업인프라가 잘 되어야 하는데, 그중 물류비용 절감이 중요하고, 따라서 운하를 만드는 것은 궁극적으로 이공계 문제 해결까지도 도움을 줄 수 있다는 주장.

    물류비용 절감까지는 동의 할 수 있다. 그러나 한반도 운하가 성공적으로 물류비용을 줄일 수 있을지에 대해서는 회의적이다. 물류비용을 줄일 수 있다는 것은 자동차보다 많은 양을 바다로 가는 배보다 빠르게 옮길 수 있으므로 가능하다는 얘기인데, 여기에 건설비용을 추가하면 물류비용 자체가 싸다고 해도 건설비 투자한거 회수하느라 결국 비용절감은 없을 것 같다. 건설비를 선불로 국가가 다 지불하면 향후 수십년간 세금은 줄어들 길이 없을 것이고, 후불로 건설회사에서 통행요금 받는다면 물류비용이 줄어들 이유가 없다. 건설회사에서 지어다가 국가에 기증하고 기술력 인증만 받겠다면 모를까, 사장이 미치지 않는 한 그런 회사가 있을리 없지.


    http://waterway.or.kr/blog/?no=13

    에서 인용


    한반도대운하 사업은 이공계에게 새로운 기회를 줄 수 있습니다. 아니 새로운 기회가
    되도록 사업이 계획되어야 합니다. 토목기술, IT기술, 환경, 생태, 관광, 조선, 해양 등 분야에서 이공계의 과학기술이
    접목되고 실현될 수 있는 창조의 공간이 될 수 있습니다. 많은 아이디어가 대운하의 물길을 타고 쏟아져야 합니다 .그래야 우리가
    애초에 원하는 대운하의 성과를 기대할 수 있습니다.

    물론 이 내용만 보면 그럴듯해 보인다. 운하 건설이라는 것이 웬만한 기술로 되는 것이 아니라 첨단 공학 기술이 필요하고, 당연히 이공계 인력이 필요할 것이다. 하지만 뭔가 억지가 숨어있다는 느낌이 든다. 과연 운하 건설에 투자된 돈이 이공계쪽 종사자에게 돌아갈 것인가. 실질적으로 이공계통 종사자들에게 필요한 것은 돈이다. 미래를 위한 국책사업이고 국운을 건 도전이고간에, 그것보다 중요한 것은 창조해낸 아이디어에 대한 정당한 평가와 평가에 비례하는 보수인 것이다. 그런데 우리나라 건설 사업 구조를 보면 일단 건설회사 사장이 제일 많이 먹고, 하청과 도급을 거듭에 거듭하여 나머지를 다른 사람들이 나눠먹는 구조로 되어 있다. 과연 말단 하청업체에 근무하는 내가 만든 공법이 운하 건설에 응용되어 사업비를 10억원 절감했다면 그중 1%라도 내가 받을 수 있을 것인가. IT쪽은 더 심할 것이다. 돈은 제대로 안 주면서 마감시간은 절반으로 줄이고 무조건 닦달하면서 만들어 내라고 한 다음, 어떻게든 해서 갖다 바치면 그중 대장급 몇명만 신문에서 영웅취급 해주고 보너스 몇푼 주고 끝낸다. 여전히 먹고 사는건 힘들 것이다. 특히 운하 사업을 주도하겠다는 이명박씨야말로 그렇게 때울 가능성이 가장 큰 사람으로 보인다. 이 문제는 운하 사업을 시작한다고 해결되는 것이 아니라 이공계열쪽 사업주의 일 시키는데 대한 근본 개념부터 뜯어고쳐야 하는 부분이다. 운하 공사 시작하면 하청 주는게 사라지나? 비정규직이 없어지나? 운하 사업에 참여하는 회사의 근로자들 월급이 올라가나? 어느것도 보장되지 않는다. 한반도 운하 사업과 이공계 문제는 별개의 문제이다.

    이공계 문제로부터 한반도 운하 사업의 정당성을 주장하려는 건 좋지만, 운하 사업으로부터 파생되는 부가 효과들이 이공계 문제를 해결하는데 실질적으로 도움이 될 것이 확실하지 않는 한, 이 주장은 무의미하다. 억지로 연관시키지 않았으면 좋겠다.

  • 이공계 죽이기


    http://news.chosun.com/site/data/html_dir/2007/07/13/2007071300966.html

    몇년만일까. 이런 쓰레기같은 글을 읽게 된 것이. 슬프다 못해 눈물이 나려고 한다. 블로그에는 차마 적을 수 없는 육두문자와 된소리 단어들이 쏟아질 수밖에 없었다.

    우리나라가 내수 서비스업과 유통업만으로 먹고 살 수 있을까?

    물건들은 전부 수입해서 외화 다 빠져나가고, FTA되면 먹거리도 다 외국에서 수입해 올거고, 이공계에 투자 안하면 그나마 굴러간다는 IT도 없으니 돈 들어올 구석은 없고 나갈 구석만 있다. 서비스업 종사자들이 많으니 돈 많은 사람들은 편하게 살겠다. 그럼 돈 없는 사람들은 서비스업에 종사해야 하나? 그것도 경쟁 심해지면 똑같이 돈 못벌텐데.

    기사 본문을 인용해 본다.

    안타까운 현상이지만 한국 경제가 이공계 산업에만 붙잡혀 있을 만큼 한가하지는 않다고 경제 전문가들은 말한다.

    그 이유는 세계 경제의 통합 과정에서 각 나라의 역할이 바뀌었기 때문이다. 많은 경제인들이 중국과 인도에 다녀오면 ‘이제는 도저히 안 되겠다’고 말한다. 이는 제조업에서는 중국, 인도와 경쟁할 수 없다는
    얘기다. 두 나라와 동남아 국가, 브라질이 이제 전 세계에 값싼 소비재를 공급하는 거대한 제조 공장으로 자리잡았다.

    무슨, 헛소리인가. 제조업은 당연히 원자재와 인건비 싸움이다. 사람 많은 동네와 경쟁하는 것은 당연히 힘든 일이다. 이공계 산업은 부가가치를 창출하는 두뇌 싸움이다. 당신이 존경해 마지 않을 저 “위대한” 지도자 회장님 “이건희” 님께서 “말씀” 하시기를 한명의 천재가 백만명을 먹여살린다지 않던가. 이공계 산업을 함부로 제조업과 동격으로 만들어 버리면 안되지요. 당장 당신네 글 써놓은 조선일보 홈페이지는 웹 프로그래머와 웹 디자이너가 만든거 아닙니까?

    어디서 또 주워들은건 있어서 수학을 금융에 응용할 수 있다는 얘기도 하는군. 금융은 자산 운용의 묘도 중요하지만 더 중요한건 자본의 크기다. 아무리 좋은 물건을 알아보더라도 돈이 없으면 못 하는 법이다. 한국 금융시장의 자본력은 해외 거대 자본을 막을 수 없다. 당장 외환은행만 봐도 먹튀 당하고 있지 않는가. 금융수학, 금융공학 등 수학적 지식을 경영/경제학에 도입하려는 시도? 좋지. 그런데 그건 기본적으로 이공계 교육이 제대로 된 다음에 하는 얘기다.


    http://snowall.tistory.com/250


    위의 글에서 밝혔듯이, 기초 과학이라는 분야는 “최첨단”이 되기 위해서라도 투자해야 하는 분야이다. “투자”라는 것은 결코 “대출”이 아니다. 수익이 돌아오지 않을 수도 있으며 성공하면 큰 이익을 볼 것이 기대되기 때문에 투자하는 것이다. IMF때 가장 먼저 짤린 사람들이 연구원들이었다지.

    영국의 경우 금융·부동산업에서 밥벌이하는 취업자 숫자가 제조업 분야보다 60%가 많다.

    영국은 그렇겠지. 우리나라에서도 금융, 부동산업에서 밥벌이 하는 사람들이 강남 땅값 올리는 거 아닌가?

    부동산이나 금융은 아무것도 만들어내지 않는다. 돈을 이용해 돈을 벌기 때문에, 근본적으로 만들어내는 것은 아무것도 없다. 단지 돈을 빌려주고 이자를 받으므로, 그 돈을 빌린 사람들이 물건을 만들어내서 팔게 되는, 그런 간접적인 효과만 있을 뿐이다. 그걸로 많은 사람들이 돈 벌어먹고 살면, 물건 만드는 사람들은 뼈 빠지겠다?

    이공계만 문제인가? 그럼 일단 돈 안되는 인문과학 없애고, 사범대는 임용고시 학원으로 바꾸고, 우리나라 영화랑 음악도 표절이다 실패다 말 많은데 예술대도 없애고, 법대는 로스쿨 만들거니까 없애고, 의대도 의학전문대학원으로 바꿀테니 없애자. 종합대학은 모두 단과대학으로 구조조정을 해야 할 것이다. 어문계열이랑 경영대는 남겨놔야겠네. 중국에 투자하고 미국이랑 얘기하려면. 아, 금융 전문가 만들려면 수학과는 남겨놔야지. 그리고 당신같은 기자 만들려면 신문정보학과도 놔둬야겠지. 뭐, 이것도 언론고시학원으로 바꾸시고.

    천재? 앨버트 아인슈타인, 마리 퀴리, 토마스 에디슨, 아이작 뉴턴 등등은 이시대의 한국에 태어났으면 모두 쓰레기 취급 받다가 백만 실업자중의 한명이 될 가능성이 아주 높은 사람들이다. 천재가 있어도 못알아보는 주제에 잘도 천재 키우겠다. TV에 나왔던 천재들은 지금 뭐하시려나.

    참고로 “바이오 분야”도, “나노 기술”도, “배아줄기세포 연구”도, “핵융합 발전 연구”도 모두 이공계다. 그것도 천재 과학자 한두명이 하나씩 맡아서 하는 연구가 아니라 각 분야의 박사급 수십명, 석사급 수백명이 참여해서 십수년을 연구해야 우리나라가 “최첨단”이 될 정도로 어려운 분야다. 이공계 위기론은 당신네들이 싫어하는 입자물리나 천문학자들만 말하는게 아니다. 과학자들은 책팔아서 먹고 사나? 돈을 줘야 저런 분야에서 연구하고 성과도 내서 세계적으로 저명한 과학자도 되고 노벨상도 받고 그러는 거 아닌가.

    이공계 살리기가 숭고한 애국운동이거나 선진국으로 가는 경제살리기 전략인 것으로 몰고 가서는 곤란하지. 물론 곤란하다. 이공계 살리기는 애국운동도 아니고 경제 살리기 전략도 아니다. 이공계 종사자들이 먹고 살자고 하는, 좀 심하게 얘기하자면 밥그릇 싸움이다. 그러나 경제라는 것이 물건을 만들어서 사고 파는 과정 전체를 말하는 것이고, 사고 팔기 위한 좋은 물건을 싸게 만드는 것은 기술일진대 그걸 단지 “만들기” 만으로 호도하여 이공계에 목숨걸지 말자고 하는 건 대체 어디다 국운을 걸자는 얘기인가. 한류? 우리나라가 휴대전화 만들어 파는데 당장 퀄컴에 주는 로열티가 얼마나 되는지 들어는 보셨는지. 그게 이공계가 죽어서 못했다면, 우리는 어째서 그런 로열티를 받는 새로운 제품을 만들어내지 못하는가. 이공계가 죽었으니까? 그럼 그냥 죽여놓고, 만들지 말까? 이공계 없이 그런 로열티 받는 제품이 나올 수 있을까?

    우리나라가 임진왜란 때 일본에게 속수무책으로 당했던 것이 조총때문이었다. 일제시대 때 점령당했던 것도 군사 무기의 차이에서 기인한 것이다. 기술자 천대하다고 해외 문물 막다가 그꼴 났다. 지금은 그나마 다행히도 우리나라 무기도 국산화 하기 위해서 열을 올리고 있다. 그런 국산화 기술은 이공계에서 안하나? 인문계에서? 어문계열에서? 금융권에서 개발하나? 국방 기술을 수입할 수 있을까? 그건 맨입에 가르쳐주나? 절대 맨입에 안나오지. 차라리 우리가 개발해서 외국에 팔아야 비싸게 먹히지. 대체 이공계 죽여놓고 국방은 무슨 헛소리고 국력 증강은 어떤 개소리냐. 조선일보의 논설실장이라는 사람은 다시한번 일제시대가 도래하기를 바라는 것인가. 당신네가 가장 미워하는 북한의 군사력은 남한이 쌀 주고 경유 줘서 저절로 된 것일까? 대포동 미사일은 쌀과 경유만 있으면 저절로 만들어질까?

    마치 이공계가 한국 경제 다 죽인다는 식의 헛소리, 제발 그만하시기를.

    *이공계



    중요하다는 취지에서 이 글을 적지는 않았습니다. 다만, 이공계 살리기 안하면 경제가 살아난다는 식의 논리가 너무나 거슬렸기에 적게 되었습니다.

    *혹시나 해서 덧붙여 둡니다. 제 얘기는 제조업이 중요하지 않다는 얘기도 아닙니다. 제조업과 이공계가 같은 것이 아니라 제조업의 근간이 이공계열의 연구라는 것을 말하고 싶습니다.

  • 전압의 개념

    전압의 정확한 개념이 무엇인가요????

    전압이란 것이 무엇인가요

    흘러가던 전류가

    저항을 만나면 전압이 강하된다고 하는데

    도대체 전압이란게 무엇이길래 저항을 만나면 줄어들고 하는 것인가요

    답변 부탁드립니다^^

    전하(Electric Charge)는 “전기장에 반응하는 특징”을 말합니다. “전하를 갖고 있다”는 뜻은 “전기장에 반응하는 특징을 갖고 있다”는 뜻과 같으며, “전하”라는 단어가 들어간 모든 자리에는 “전기장에 반응하는 특징”이라는 말을 대신 써도 됩니다. 또한, “전하를 갖고 있는 것”을 짧게 줄여서 “전하”라고만 부르기도 합니다.

    전하는 숫자 1개로 표현될 수 있습니다. 즉, 부호를 가지는 실수입니다. 가령, +1이나 -3같은 전하를 가질 수 있습니다.

    전하를 움직이게 하는것은 딱 하나가 있는데, 바로 “전기장(Electric field)”입니다. 전기장은 크기와 방향을 갖고 있으며, 전기장의 방향으로 움직이는 것을 +전하를 갖고 있다고 말합니다. 전기장은 그 위치에 있는 크기가 +1인 전하가 받는 힘의 크기와 방향으로 결정됩니다. 전자기학은 전하가 어떻게 움직이는지 설명하기 위해서 만들어진 과목인데, 전하를 움직이게 하는 것은 오직 전기장뿐이므로 전기장이 어떻게 공간에 펼쳐져 있는지를 말할 수 있다면 전하가 어떻게 움직이는지도 알 수 있습니다. 따라서 전자기학은 전기장에 관한 과목입니다.

    전기장을 만들어내는 것은 두가지가 있는데, 하나는 전하이고 다른 하나는 변화하는 자기장입니다. 변화하는 자기장이 전기장을 어떻게 만드는지는 복잡하므로 생각하지 않기로 합니다. 전기장을 만들어내는 것은 전하인데, 전하는 공간에 존재하는 것만으로 전기장을 만들어 냅니다. (여기에도 복잡한 논의가 있으므로 생략합니다)

    전기장은 크기와 방향을 가지고 있으므로 전기장을 알아낸다는 것은 크기와 방향을 모두 알아낸다는 것입니다. 이건 좀 복잡하죠. 그래서 과학자들은 “포텐셜(Potential, 전위)”이라는 개념을 만들어 냅니다. 전위는 공간에 펼쳐진 함수인데, 크기만 갖고 있습니다. 즉, 방향을 생각하지 않고 공간의 어느 한 점을 알려주면 그 점에 배정된 숫자 하나를 알려주는 함수라는 뜻입니다. 전위로부터 전기장을 알아내는 방법은 단지 전위를 미분하는 겁니다. 미분이라는 계산 자체는 복잡한 부분이 있지만, 그 개념은 단지 “기울기를 계산한다”는 뜻입니다.

    가령, 산의 높이를 모든 점에서 알고 있다면, 어떤 점에서 기울기를 계산하면 경사가 얼마나 급한지에 따라서 크기가 나올 것이고, 어느쪽 방향으로 기울어졌는지에서 방향이 나올 겁니다. 전위에 대해서도 같은 계산을 할 수 있는데, 이 계산을 통해서 전기장의 크기와 방향을 결정할 수 있습니다.

    전압(Voltage)은 전위 자체를 이야기하거나 어느 두 점의 전위의 차이를 이야기합니다. 어느쪽이든 상관 없는데, 전하가 움직이는 방향은 전압이 높은 쪽에서 낮은 쪽으로 움직입니다. 이것은 시각적으로는 물이 높은 곳에서 낮은 곳으로 흘러가는 것과 같은 이치로 생각하면 됩니다.

    전하는 전압이 높은 곳에서 낮은 곳으로 움직이면서 전기장에 의해서 움직였고, 전기장은 일종의 힘이므로, 힘에 의해서 움직인 전하는 운동 에너지를 갖게 되고, 점점 빨라지게 됩니다.

    저항의 크기는 본래 전기 전도도의 역수로 계산됩니다. 전기 전도도라는 것은 도체 내부의 전자들이 전기장에 얼마나 잘 반응하는지를 숫자로 나타낸 것인데, 전류와 전기장 사이에 비례 관계가 있다고 하는 것이 옴의 법칙이며, 그 비례 계수가 전기 전도도 값입니다. 저항값은 전기 전도도의 역수로 주어집니다.

    따라서, 개념상 전하가 저항을 통과하기 전과 통과한 후에는 전하가 움직였기 때문에 전위 차이가 있어야만 합니다. 반대로, 전위차이가 없다면 전하가 움직이지 않으며, 따라서 전류가 흐르지 않는 상태가 됩니다.

    정확히 말해서, 전류가 흐른다면 전류가 흘러가는 쪽은 전류가 흘러온 쪽보다 전압이 낮아야만 합니다. 회로도에서는 전선 부분은 전압이 일정하고 저항에서만 전압이 낮아지는 것으로 표현하는데, 실제 세상에서는 전선 역시 저항을 갖고 있으므로 전선 내부에서도 전위차이는 존재합니다. 저항을 만났기 때문에 줄어드는 것이 아니라, 전류가 흐르는 상태라면 반드시 전압이 낮아져야만 한다는 점이 중요합니다.

    만약 저항이 없다면 전기 전도도가 무한대라는 뜻이고, 이것은 전기장이 조금만 있어도 무한히 큰 전류가 흐른다는 것을 뜻합니다. 이 상태를 초전도체 상태라고 부릅니다.

  • 구글 페이지랭크(PageRank) 알고리듬

    * CC라이센스에 따라 저작권자와 원문 정보를 포함하여 복사해 왔습니다. 이 글은 CC라이센스를 따르며,

    저작권은 번역하신 이명헌님에게 있습니다.

    사용자 삽입 이미지


    —————————————————

    [텍스트마이닝] 구글 페이지랭크(PageRank) 알고리듬

    구글 개발자 서르게이 브린 논문 번역

    이명헌 (@메일) / 2002-12-30 /

    문서출처: 이명헌 경영스쿨 http://www.emh.co.kr/xhtml/google_pagerank_citation_ranking.html

    이 문서를 게시하거나 프린트하려면 위 문서출처를 반드시 포함해야 합니다.(참고: 저작권정책)

    Abstract

    웹 페이지의 ‘중요성’은 본질적으로 주관적인 문제여서 읽는 사람의 관심사나 지식 그리고 태도 등에 의존한다. 하지만 웹 페이지의 상대적 중요성에 관해서는 객관적으로 얘기할 수 있는 부분이 많다. 이 논문은 객관적이고 기계적으로 웹 페이지를 랭킹해서 읽는 사람의 관심이나 기울이는 주의를 효과적으로 측정할 수 있는 수단인 “PageRank”를 소개한다. 우리는 페이지랭크(PageRank)를 이상적인 랜덤 웹 써퍼(random web surfer)에 비교해 볼 것이며, 어떻게 많은 웹 페이지를 대상으로 PageRank를 능률적으로 계산할 수 있는지를 설명할 것이다. 그리고 어떤 방식으로 PageRank를 검색이나 사용자 네비게이션에 응용할 수 있는지도 보여 주고자 한다.

    1. 도입과 동기(Introduction and Motivation)

    월드와이드웹(World Wide Web)은 정보검색(Information Retrieval)에 새로운 과제를 안겨 주었다. 웹은 매우 거대하며 이질적(heterogenous)이다. 현재 추산으로도 약 1억5천만 페이지 이상이 웹에 존재하며, 이 숫자는 매년 적어도 두 배씩 커지고 있다. 더욱 중요한 점은, 웹 페이지들이 극단적으로 다양하다는 것이다. 예를 들면 “Joe가 오늘 점심 때 뭘 먹었지?”와 같은 질문이 있는가하면 정보검색에 관한 전문적 논문집이 있기도 하다. 이런 주된 도전 과제들 외에도 웹에는 익숙하지 못한 초보 사용자들과 검색 엔진의 랭킹 기능(ranking function)을 교묘히 이용하려는 많은 웹 페이지들로부터 비롯되는 문제점이 있다.

    그러나 웹은 다른 “평면적”인 문서 컬렉션(flat document collections)과 달리 하이퍼텍스트가 있다. 하이퍼텍스트(hypertext)는 웹 페이지 자체의 텍스트 외에 링크 구조(link structure)나 링크 텍스트(link text)같은 상당한 수준의 부가적인 정보를 제공한다.

    이 논문에서 우리는, 모든 웹 페이지를 보편적 “중요도” 순으로 순위를 매기기 위해 웹의 링크 구조를 사용하였다. 이 랭킹은 페이지랭크(PageRank)라 하며, 검색엔진 사용자나 웹 사용자가 거대한 이질적 세계인 월드와이드웹을 빠르게 이해할 수 있게 도와준다.

    1.1 웹 페이지의 다양성(Diversity of Web Pages)

    학술적 인용(academic citation)을 분석한 문헌은 이미 많이 존재하지만 웹 페이지와 학술 출판물 사이에는 많은 중요한 차이가 있다. 학술 논문은 철두철미하게 리뷰되지만 웹 페이지는 ‘품질 관리’나 ‘출판 비용’ 없이 늘어난다. 단순한 프로그램 하나만으로도 아주 많은 페이지를 손쉽게 만들어 낼 수 있으며 인위적으로 인용 횟수를 쉽게 부풀릴 수 있다. 웹 환경 속에는 그 안에서 이익을 찾는 많은 벤쳐들이 있기 때문에 이들이 사용자의 주의를 끌어오는 전략 역시 검색엔진 알고리듬의 발달에 맞춰서 함께 진화되어 왔다. 이러한 이유로 복제가능한 특징을 세는 방식으로 웹 페이지를 평가하려는 전략은 손쉽게 악용될 수 있다. 게다가, 학술 논문의 경우는 그 갯수를 정확히 셀 수 있을 뿐만 아니라 사실상 질적인 면 및 인용 횟수 등에서 유사하고 그 목적 역시 비슷하다.(대개 ‘지식의 몸체’를 키우기 위한 목적으로 만들어진다.) 하지만 웹 페이지는 질적인 면에서나 사용적인 측면, 인용, 길이 등에 있어서 학술 논문보다 훨씬 더 다양하다. IBM 컴퓨터에 관한 애매한 질문들을 모아놓은 것은 IBM 홈페이지와 매우 다르다. 운전자에게 휴대폰이 미치는 영향에 관해서 연구한 논문은 특정 휴대폰 회사의 광고와 매우 다르다. 사용자가 읽은 웹 페이지의 평균적인 질은 평균적인 웹 페이지의 질보다 높다. 그것은 웹 페이지를 만들고 퍼블리슁하는 것이 매우 쉽기 때문에 웹에는 사용자들이 읽지 않으려 하는 많은 저품질의 웹 페이지가 있기 때문이다.

    웹 페이지에는 여러 가지 분화될 수 있는 요소가 많이 있다. 이 논문에서 우리는 그 중의 하나 – 웹 페이지의 상대적 중요성을 어떻게 추산할 것인가 – 라는 문제를 주로 다룬다.

    1.2 페이지랭크(PageRank)

    웹 페이지의 상대적 중요성을 측정하기 위해 우리는 웹 그래프를 기반으로 웹 페이지를 랭킹(ranking)하는 방식인 페이지랭크를 제안한다. 페이지랭크는 검색이나 브라우징, 트래픽 추산에 적용될 수 있다. 섹션 2에서는 페이지랭크의 수학적 기술을 다룰 것이며 직관적인 정당화(intuitive justification)를 얘기할 것이다. 섹션 3에서는 5억1800만 개에 이르는 하이퍼링크에 대해 어떻게 효율적으로 페이지랭크를 계산할 수 있는지 보여주고자 한다. 페이지랭크의 유용성을 테스트하기 위해 우리는 구글(Google)이라는 웹 검색 엔진을 구축했다. 이것은 섹션 5에서 다룬다. 섹션 7.3에서는 페이지랭크가 어떻게 브라우징을 도울 수 있는지 보여주고자 한다.

    2. 웹 상의 모든 페이지의 순위 매기기(A ranking for every page on the Web)

    2.1 관련 자료

    학술 인용 분석에 관해서는 매우 많은 연구가 이미 존재한다. Goofman은 과학 커뮤니티에서 일종의 유행병처럼 정보 흐름이 퍼져 나간다는 것을 주장한 흥미로운 이론을 발표하기도 했다.

    웹 같은 대형 하이퍼텍스트 시스템에서 어떤 방식으로 링크 구조(link structure)를 이용할 수 있는지에 관해서도 최근들어 상당한 연구가 이뤄지고 있다. Pitkow는 얼마 전에 다양한 방식의 링크 기반 분석을 설명한 “월드와이드웹 생태계의 특징”이라는 제목의 박사 학위 논문을 완성했다. Weiss는 링크 구조를 감안한 클러스터링 방식에 대해서 논했다. Spertus는 여러 가지 적용사례에 있어서 링크 구조로 부터 얻어낼 수 있는 정보에 관해 발표했다. 좋은 시각화를 위해서는 하이퍼텍스트에 부가적인 구조가 필요하다는 연구도 있었다. Kleinberg는 웹을 서로 인용하는 행렬로 보고 그 고유벡터(eigenvector)를 계산하는 방식을 기반으로 “헙 & 오쏘리티(Hubs and Authorities) 모델”이라는 흥미로운 모델을 개발했다. 마지막으로, 도서관 커뮤니티 쪽에서는 웹의 “질”이라는 것에 대해 관심을 갖고 있기도 하다.

    일 반적인 인용 분석 테크닉을 웹의 하이퍼텍스트적 인용 구조에 적용하고자 시도하는 것은 너무도 자연스러운 것이다. 단순하게 웹 페이지에 있는 각각의 링크를 학술적 인용처럼 생각해 볼 수 있는 것이다. 야후! 같은 메이져 페이지는 야후!를 가리키는 수 만, 수십 만 개의 백 링크(backlinks) 또는 인용을 갖고 있는 것이다.

    야후! 홈페이지가 아주 많은 백 링크를 갖고 있다는 사실은 야후! 홈페이지가 매우 중요하다는 사실을 함축한다. 사실 많은 웹 검색엔진들은 어떤 페이지가 얼마나 중요한가 내지는 높은 질을 갖고 있는가를 판단할 때 백 링크 숫자를 바탕으로 가중치를 주고 있다. 하지만 단순히 백 링크의 갯수를 세는 것은 많은 문제점을 갖는다. 이 문제점들은 학술 인용 데이타베이스에는 존재하지 않는 웹만의 특징과 관련이 있는 것들이다.

    2.2 웹의 링크 구조(Link Structure of the Web)

    약 간의 편차는 있지만 현재 크롤링 가능한 웹 그래프는 약 1억5천만개의 노드(node;페이지)와 17억 개의 엣지(edge;링크)가 있다고 알려져 있다. 각각의 웹 페이지는 그 페이지로부터 밖으로 나가는 포워드 링크(forward link; outedges)와 그 페이지를 가리키는 백 링크(backlink; inedges)를 갖는다. 어떤 페이지의 모든 백 링크를 다 찾아낸다는 것은 불가능하지만 페이지를 다운로드하고 나면, 포워드 링크가 무엇인지는 알 수 있다.

    사용자 삽입 이미지

    backlink 백 링크

    웹 페이지가 백 링크를 몇 개나 갖느냐는 매우 다양하다. 우리가 갖고 있는 데이타베이스에 따르면 넷스케잎 홈페이지는 62804개의 백 링크를 갖는데 반해 대개의 페이지들은 단지 몇 개의 백 링크만을 갖는다. 일반적으로 링크가 많이 된 페이지일수록 그렇지 못한 페이지보다 더 “중요하다”. 학술 인용에서도 인용의 횟수를 세는 단순한 방법이 미래의 노벨상 수상자를 예측하는 데 사용될 수 있다. 페이지랭크는 인용 횟수를 세는 방식 이상의 훨씬 더 정교화된 방법을 제시한다.

    페 이지랭크가 흥미로운 이유는 인용 횟수가 일반적인 의미의 중요성과 일치하지 않는 경우가 매우 많기 때문이다. 어떤 웹 페이지가 야후!에 링크가 되어 있다면 그 페이지는 오직 하나의 백 링크밖에 없지만 그 링크는 매우 중요한 링크다. 야후!에 링크된 그 페이지는 다른 별 볼 일 없는 여러 곳에서 링크된 페이지보다 더 높은 순위를 가져야 한다. 페이지랭크는 링크 구조만을 사용해서 어떻게 “중요성”을 정확히 추정해낼 수 있을까를 시도한 것이다.

    2.3 링크를 통한 랭킹의 전파(Propagation of Ranking through Links)

    위 의 논의를 기초로, 우리는 페이지랭크에 대한 직관적 기술을 다음과 같이 할 수 있다: 어떤 페이지가 높은 랭크의 백 링크를 많이 가질수록 그 페이지의 랭크도 올라간다. 이것은 어떤 페이지가 많은 백 링크를 갖는 경우와 몇 개의 높은 랭크값 백 링크를 갖는 경우 모두를 포괄하는 것이다.

    2.4 페이지랭크(PageRank)의 정의

    어떤 웹 페이지를 u라고 하고 u 페이지가 가리키는 페이지들의 집합을 Fu, u 페이지를 가리키는 페이지의 집합을 Bu라 하자. Nu = |Fu|라 하고, 이것은 u 페이지로부터 나가는 링크의 갯수, 즉 Fu의 갯수다. 그리고 노멀라이제이션에 사용되는 팩터를 c라고 하자.(노멀라이제이션은 전체 웹 페이지의 랭크 총합을 일정하게 하기 위해서다.)

    일단, 단순 랭킹 R을 정의하는 것에서 출발해 보자. 단순 랭킹 R은 페이지랭크(PageRank)를 약간 단순화시킨 버전이다.

    사용자 삽입 이미지

    위 식은 전 섹션에서 얘기한 직관을 공식화한 것이다. 어떤 페이지가 가리키는 페이지들의 랭크에 균일하게 기여하기 위해, 링크가 나가는 페이지의 랭크를 그 페이지의 포워드 링크 갯수로 나누고 있다는 점에 주의하자. 그리고 c는 1보다 작아야 하는데, c < 1인 이유는 포워드 링크가 없는 페이지도 많이 있기 때문에 그런 페이지들의 가중치는 시스템 속에서 사라질 수 있기 때문이다.(섹션 2.7을 참조하라.) 위 등식은 재귀적(recursive)인 식이지만 초기 랭크 집합을 주고 수렴할 때까지 연산을 함으로써 계산할 수 있다.

    사용자 삽입 이미지

    그림 2 단순화된 페이지랭크의 계산

    사용자 삽입 이미지

    그림 3 정상상태를 이루고 있는 페이지들

    그림 2는 한 쌍의 페이지로부터 다른 한 쌍의 페이지로 랭크가 전파되어 나가는 것을 보여주고 있다. 그림 3에서는 일군의 페이지들 사이에서 일정한 정상상태(steady state)의 솔루션을 이루고 있는 것을 볼 수 있다.

    이것을 다른 방식으로 표현해 보자. 각 행과 열이 웹 페이지에 대응하는 정방행렬을 A라 하자. 그리고, 페이지 u에서 v로 가는 연결(edge)이 있다면 Au,v = 1/Nu이라 하고, 엣지가 없다면 Au,v는 0이라 하자. R을 웹 페이지들의 벡터로 생각해 보면, R = cAR이 된다. 그러므로 R은 A의 아이겐벡터(eigenvector; 고유벡터)가 되고 아이겐밸류는 c이다. 사실, 우리가 원하는 것은 A의 지배적 고유벡터(dominant eigenvector)다. 이것은 A를 여러 비퇴화적 시작 벡터(nondegenerate start vector)에 반복적으로 적용함으로써 계산될 수 있을 것이다.

    사용자 삽입 이미지

    그림 4 랭크 싱크

    위에서 살펴 본 단순화된 랭킹 함수는 약간의 문제가 있다. 두 페이지가 서로서로 가리키고 있으며 다른 페이지로는 연결되어 있지 않은 경우를 생각해 보자. 다른 웹 페이지가 그 두 페이지 중 하나를 가리키고 있는 경우, 반복연산(iteration)이 진행되면서 그 루프에서는 랭크가 계속 축적될 뿐 외부로 전혀 분산하지 못 한다.(왜냐하면 외부로 나가는 엣지가 전혀 없으므로.) 루프는 일종의 함정을 형성하게 된다. 우린 이것을 랭크 싱크(rank sink)라 부른다. 랭크 싱크로부터 초래되는 문제를 해결하기 위해, 우리는 랭크 소스를 도입한다.

    정의 1:

    랭크의 소스에 해당하는 웹 페이지의 벡터 중 하나를 E(u)라 하자. 그러면 일군의 웹 페이지들의 페이지랭크는 다음 식을 만족하며 ||R||1 = 1(||R||1은 R’의 L1 norm)이고 c가 최대값을 가질 때의 R’이다.역자주

    사용자 삽입 이미지

    PageRank 페이지랭크

    E가 모두 다 양수이면 등식의 균형을 위해서 c 값이 줄어들어야만 한다는 것에 주의하자. 그러므로 이 테크닉은 소멸계수(decay factor)에 해당한다. 위 식을 행렬 용어로 표현하면 R’ = c(AR’ + E)이고, ||R||1 = 1이므로 이 식은 R’ = c(A + E x 1)R’로 다시 쓸 수 있다. 여기서 1은 1로만 구성된 벡터다. 그러므로, R’은 (A + Ex1)의 아이겐벡터라고 할 수 있다.

    역자주 L1 norm은 (a,b,c,d,e,..)라는 벡터가 있을 때 (a+b+c+d+e+..)의 값을 의미합니다. ‘소스'(source)와 ‘싱크'(sink)는 그래프 이론에서 나온 용어로, 아웃엣지가 없는, 즉 밖으로 나가는 링크가 없는 것을 싱크라 하고 반대로 인엣지가 없는, 즉 안으로 들어 오는 링크는 없고 밖으로 나가는 것만 있는 것을 소스라 합니다.

    2.5 랜덤 써퍼 모델(Random Surfer Model)

    위와 같은 페이지랭크의 정의는 그래프 상의 랜덤 워크(random walks)라는 또 하나의 직관적 기반을 갖고 있는 것으로 볼 수 있다. 단순화된 버전의 페이지랭크는 웹 그래프 상에서 랜덤 워크의 확률분포에 해당한다. 직관적으로 생각해 보면 이것은 “랜덤 써퍼”의 행동을 모델링한 것으로 볼 수 있다. “랜덤 써퍼”는 무작위로 일련의 링크들을 클릭해 나간다. 하지만 실제 웹 써퍼가 작은 루프에 빠져 들었을 때도 계속해서 그 루프 내를 맴돌 가능성은 거의 없다. 대신, 그 써퍼는 다른 페이지로 점프하려 할 것이다. 부가적 팩터인 E는 바로 그 행동을 모델링한 것으로 볼 수 있다. 즉, 써퍼는 주기적으로 “지루해지고” E의 분포에 기반해서 선택된 무작위 페이지로 점프하는 것이다.

    지금까지 우리는 E를 사용자 정의 퍼래미터로 생각했다. 대부분의 테스트에서 우리는 E를 모든 웹 페이지에 걸쳐 동일하게 α값을 갖는 것으로 했다. 하지만, 섹션 6에서는, E 값이 달라짐에 따라 페이지의 랭크가 어떻게 “사용자화”될 수 있는지를 보여줄 것이다.

    2.6 페이지랭크 계산(Computing PageRank)

    페이지랭크를 계산하는 것은 규모의 문제를 무시한다면 아주 간단명료하다. S를 웹 페이지의 벡터(E 같은)라 하자. 그러면 페이지랭크는 다음과 같이 계산될 수 있을 것이다.

    R0 <--- S
    loop:

    Ri+1 <--- ARi
    d <--- ||Ri||1 - ||Ri+1||1
    Ri+1 <--- Ri+1 +dE
    δ<--- ||Ri+1 - Ri||1
    while δ> ε

    d 팩터가 수렴속도를 빠르게 하고 ||R||1을 유지하는 것에 주목하자. 또 다른 노멀라이제이션 방법은 적절한 팩터를 R에 곱하는 것이다. d의 사용은 E의 영향에 작은 효과만 미칠 것이다.

    2.7 댕글링 링크(Dangling Links)

    이 모델과 관계되는 이슈 중 하나는 댕글링 링크 문제다. 댕글링 링크란 외부로 나가는 링크가 없는 페이지를 가리키는 링크를 뜻한다. 댕글링 링크가 모델에 영향을 주는 이유는, 이것의 가중치가 어디로 분산되고 있는지가 불분명하고 또 아주 많은 댕글링 링크가 존재하기 때문이다. 종종 댕글링 링크가 가리키고 있는 페이지는 다운로드되지 않은 페이지일 수도 있다. 웹을 통째로 샘플링하는 것은 어렵기 때문이다.(현재 우리가 다운로드한 2400만 페이지에는 아직 URL이 가리키는 문서가 다운로드되지 않은 5100만 개의 URL이 있는 상태다. 즉, 5100만 개의 댕글링 링크가 있는 것이다.) 댕글링 링크는 다른 페이지의 순위에 직접적으로 영향을 주지는 않기 때문에, 우리는 모든 페이지랭크가 계산될 때까지 댕글링 링크를 그냥 제거했다. 페이지랭크 계산이 다 끝난 뒤에, 즉 큰 문제를 일으키지 않게 되었을 때, 댕글링 링크를 다시 첨가할 수 있다. 링크가 제거됨으로써 그 페이지에 있는 다른 링크의 노멀라이제이션이 영향받을 수는 있지만 크게 변화되는 건 아니다.

    3 임플리멘테이션(Implementation)

    스탠포드 웹 베이스 프로젝트(Stanford WebBase project)의 일환으로, 우리는 현재 총 2400만 페이지의 리파지터리(repository)를 갖고 있는 완전한 크롤링 & 인덱싱 시스템을 구축했다. 웹에 있는 모든 URL을 찾을 수 있게 하기 위해서는 모든 웹 크롤러가 URL 데이타베이스를 유지하고 있어야 한다. 웹 크롤러는 페이지랭크의 임플리멘테이션을 위해, 크롤링하면서 만나는 링크의 인덱스만 구축하면 된다. 작업 자체는 단순한 것이지만 볼륨이 거대하기 때문에 쉽지 않다. 예를 들어, 현재 우리가 구축한 2400만 페이지의 데이타베이스를 5일 안에 인덱싱하기 위해서는, 초당 50 페이지를 프로세싱해야 한다. 보통의 페이지 하나에 통상 11개의 링크가 있으므로(무엇을 링크로 셀 것인가에 따라 달라질 수는 있다.) 초당 550개의 링크를 프로세싱해야 하는 것이다. 또한, 우리가 구축한 2400만 페이지의 데이타베이스는 7500만 개의 각기 다른 URL을 참조하고 있으며, 각각의 링크는 반드시 서로 비교되어야만 하는 것이다.

    웹에 깊숙히 그리고 미묘하게 존재하는 결함들에 유연하게 대응할 수 있는 시스템을 구축하기 위해서 많은 시간이 걸렸다. 웹에는 한없이 커다란 싸이트, 페이지, 심지어 끝없이 계속되는 긴 URL들이 있다. 상당수의 웹 페이지가 잘못된 HTML을 담고 있기 때문에 파서(parser)를 디자인하는 것이 까다로왔다. 예를 들어, 우리는 URL에 /cgi-bin/이 들어 있는 경우 크롤링하지 않았다. 물론, 웹은 계속해서 변하고 있기 때문에 “전체 웹”을 정확하게 샘플링한다는 것은 불가능하다. 싸이트가 다운되는 경우도 있고, 어떤 경우는 자신의 싸이트를 인덱싱되지 않도록 해 놓기도 한다. 이런 모든 점에도 불구하고, 우리는 공개적으로 접근가능한 웹의 실제 링크 구조를 상당한 수준으로 표현했다고 생각하고 있다.

    3.1 페이지랭크 임플리멘테이션

    우리는 각각의 URL을 각기 유니크한 정수로 변환하고, 하이퍼링크의 페이지를 구분할 수 있도록 모든 하이퍼링크를 페이지의 정수 ID를 이용해서 데이타베이스에 저장했다. 임플리멘테이션에 관한 자세한 사항은 구글 검색엔진의 해부학 논문에서 밝혔다. 보통, 페이지랭크는 다음과 같은 식으로 임플리멘테이션했다.

    먼저, 부모 ID(Parent ID)를 이용해서 링크 구조를 정렬한다. 그 다음, 앞에서 말한 것과 같은 이유로 링크 데이타베이스에서 댕글링 링크를 제거한다. (몇 번의 반복 작업만으로도 대부분의 댕글링 링크를 제거할 수 있다.) 그 다음, 랭크 값을 초기화한다. 초기화 값을 어떻게 할 것인가는 어떤 전략을 갖고 있느냐에 따라 달라진다. 수렴할 때까지 반복작업을 계속할 생각이라면, 일반적으로 초기값은 최종값에 영향을 미치지 않는다. 단지 수렴 속도만 빠르게 할 뿐이다. 하지만 초기값을 잘 선택하면 수렴과정의 속도를 높일 수 있다. 우리는 초기 할당값을 신중하게 선택하면 제한적 횟수의 많지 않은 반복 작업만으로도 아주 좋은 결과를 얻거나 더 나은 퍼포먼스를 만들어 낼 수 있다고 믿고 있다.

    각 페이지의 가중치에 메모리를 할당한다. 우리는 단정도 부동소수점(single precision floating point) 값을 사용했고, 각각은 4바이트씩 할당했으므로 7500만 개의 URL은 곧 300메가바이트의 크기가 된다. 만약 모든 가중치를 담고 있을 만큼 램이 충분치 않으면 여러 번의 패쓰(pass)를 사용해도 된다.(우리가 임플리멘테이션한 것은 메모리의 절반과 2개의 패쓰를 사용했다.) 현재 진행 중인 단계의 가중치는 메모리에 저장되고, 전단계의 가중치는 디스크를 통해 리니어(linear)하게 억세스한다. 또한, 링크 데이타베이스 – 즉 알고리듬 정의에서의 A – 로의 모든 억세스도 정렬되어 있기 때문에 리니어하다. 그러므로 A 역시 디스크에 저장될 수 있다. 이러한 데이타 구조들이 매우 큰 크기임에도 불구하고, 리니어 디스크 억세스를 통한 각 반복작업에 걸리는 시간은 보통의 웍스테이션상에서 약 6분 정도면 된다. 가중치들이 수렴하고 나면, 다시 댕글링 링크를 추가하고, 랭킹을 재연산한다. 댕글링 링크를 되돌려 넣은 뒤에 필요한 반복 작업 횟수는 댕글링 링크를 제거하는 데 요구되었던 횟수와 똑같다는 점에 주의하라. 그렇지 않으면, 댕글링 링크의 일부는 가중치가 0이 될 것이다.

    이상의 모든 과정은 현재의 임플리멘테이션의 경우 총 5시간이 소요된다. 수렴 조건을 덜 엄격하게 하고, 더 최적화를 한다면 계산속도는 더 빨라질 수 있을 것이다. 또는, 아이겐벡터를 추산하는 보다 더 효율적인 테크닉이 사용되어도 퍼포먼스가 더 좋아질 것이다. 어쨌든, 페이지랭크를 계산하는 데 필요한 코스트는 풀 텍스트 인덱스를 구축하는 데 필요한 것에 비하자면 아주 사소한 것이라 할 수 있다.

    4 수렴 특성(Convergence Properties)

    그림 5에서 볼 수 있는 것처럼, 3억 2200만개라는 큰 링크 데이타베이스를 합리적으로 감내할 만한 수준으로 수렴시키는 데 필요한 반복작업은 약 52회다. 데이타의 크기가 반이라면 대략 45회면 된다. 이 그래프를 통해서, 극단적으로 큰 크기의 컬렉션에서도 페이지랭크가 아주 쉽게 확장될 수 있다는 것을 알 수 있다. 스케일링 팩터가 대략 logn과 거의 선형관계를 이룬다.

    사용자 삽입 이미지

    그림 5 페이지랭크 연산의 수렴

    페이지랭크 연산이 아주 빠르게 수렴한다는 사실로부터 파생되는 한 가지 흥미로운 점은 웹이 익스팬더양 그래프(expander-like graph)라는 점이다. 이 부분의 이해를 돕기 위해서 그래프 상의 랜덤 워크 이론의 간단한 개론을 살펴 보자. 자세한 것은 Motwani-Raghavan이 쓴 페이퍼를 참조하라.

    그래프 상의 랜덤 워크는 스토캐스틱(stochastic)한 과정이다. 즉, 임의의 한 타임스텝에 우리는 그래프 상의 특정 노드에 서 있고, 다음 타임스텝에 어떤 노드로 이동할 것인지는 균일하게 무작위적으로 분포하는 아웃엣지 중 하나를 선택해서 결정하는 것이다. 만약 모든 (너무 크지는 않은) 서브셋 노드 S가 이웃(neighborhood; S에 속한 노드들로부터 아웃엣지를 통해 접근가능한 꼭지점들의 집합)을 가지고 있고, 그 이웃 노드의 크기가 |S|보다 α배 이상 크다면 그 그래프는 하나의 익스팬더(expander)라고 할 수 있다. 그리고 만약, 특히 가장 큰 아이겐벨류가 두 번째로 큰 아이겐벨류보다 충분히 더 큰 경우, 그 그래프는 좋은 익스팬젼 팩터를 갖고 있다고 볼 수 있다. 랜덤 워크가 빠른 속도로 그래프 상의 노드들의 제한된 분포로 수렴해 가면 그 그래프는 래피들리-믹싱(rapidly-mixing)하다. 또한 그래프가 익스팬더이고 아이겐벨류 분리(eigenvalue separation)를 갖고 있다면 그 랜덤 워크는 래피들리-믹싱인 경우라 할 수 있다.

    이상의 내용을 페이지랭크 연산과 관련 지어 보자. 페이지랭크란 본질적으로, 웹 그래프 상의 랜덤 워크의 제한된 분포로 결정짓는 것이다. 어떤 노드의 중요도 랭킹이란, 본질적으로 충분히 시간이 흐른 뒤에 랜덤 워크가 그 노드에 있을 확률인 것이다. 페이지랭크 연산이 로그 시간 내에 종결될 수 있다는 사실은 랜덤 워크가 래피들리 믹싱이거나 그래프가 좋은 익스팬젼 팩터를 갖고 있다는 말이 된다. 익스팬더 그래프는 여러 가지 바람직한 특성을 많이 갖고 있기 때문에 웹 그래프와 관계된 연산을 함에 있어서 앞으로 다양하게 활용할 수 있을 것이다.

    5 페이지랭크를 이용한 검색

    페이지랭크의 주된 적용처는 검색이다. 우리는 페이지랭크를 활용한 두 가지 검색엔진을 임플리멘테이션했다. 하나는 단순한 타이틀 기반의 검색엔진이고 다른 하나는 풀 텍스트 검색엔진이다. 후자의 이름은 구글이다. 구글은 표준적인 IR 측정치, 근접성(proximity), 앵커 텍스트(웹 페이지를 가리키는 링크의 텍스트), 그리고 페이지랭크 등의 많은 요소를 바탕으로 검색 결과를 랭킹한다. 페이지랭크가 어떤 이점을 갖는지에 관한 포괄적인 유져 스터디는 이 논문의 범위를 벗어나지만, 몇 가지 비교 실험과 검색 결과 샘플을 이 논문을 통해 얘기해 보려 한다.

    페이지랭크의 이점이 가장 크게 활용될 수 있는 부분은 덜 특화된 질의어(underspecified queries)를 처리하는 것이다. 예를 들어, “스탠포드 대학”이라는 질의어를 넣으면, 일반적인 검색엔진은 스탠포드가 들어 간 많은 페이지들을 결과로 보여 줄 뿐이다. 하지만 페이지랭크를 활용하면 스탠포드 대학 홈 페이지가 순위의 가장 위로 올라 오는 것이다.

    5.1 타이틀 검색

    페이지랭크가 검색에 활용되면 얼마나 유용한지를 시험해 보기 위해 우리는 1600만 페이지의 제목만을 사용하는 검색엔진을 만들어 보았다. 그 검색엔진은 질의어를 넣으면 문서 제목에 질의어가 들어 있는 모든 웹 페이지를 찾은 다음, 그 결과를 페이지랭크를 이용해서 정렬한다. 이 검색엔진은 아주 단순한 것이고 간단하게 구축할 수 있는데, 비공식적인 시험을 해 본 결과 놀랄 만큼 훌륭한 성능을 보여 주었다. 그림 6에서 볼 수 있는 것처럼 “University”라는 검색어에 대해 페이지랭크를 이용한 제목 검색엔진은 대표적인 대학들의 목록을 보여 준 것이다. 이 그림은 우리가 만든 MultiQuery 시스템으로, 두 개의 검색엔진에 동시에 질의를 할 수 있는 시스템이다. 그림의 왼 편에 있는 것이 페이지랭크를 기반으로 한 타이틀 검색엔진이다. 검색 결과에 있는 바 그래프와 퍼센티지는 탑 페이지를 100%로 잡고 페이지의 실제 페이지랭크 값에 로그를 취한 다음 노멀라이징한 값이다. 이 논문의 다른 곳에서는 계속 퍼센타일(percentile)을 사용했지만 여기서는 아닌 것이다. 그림의 오른 쪽에 있는 것은 알타비스타 검색엔진이다. 알타비스타의 검색 결과를 보면 “University”라는 질의어에 맷칭되는 무작위적으로 보이는 웹 페이지들 그리고 여러 써버의 루트 페이지가 보인다. (알타비스타는 퀄리티 휴리스틱으로 URL의 길이를 사용하는 것 같다.)

    사용자 삽입 이미지

    그림 6 “University” 검색어에 대한 결과 비교

    5.2 랭크 머징(Rank Merging)

    타이틀에 기반한 페이지랭크 시스템이 아주 훌륭한 결과를 보여 주는 이유는, 제목을 맷칭하는 것이 페이지의 높은 프리시젼을 보장하고, 페이지랭크가 페이지의 높은 품질을 보장하기 때문이다. 웹 검색에서 “University” 같은 질의를 하는 경우, 사용자가 살펴 볼 페이지보다 훨씬 많은 페이지들이 존재하기 때문에 리콜은 그다지 중요하지 않다. 리콜이 중요하게 요구되는 특화된 검색의 경우는 풀 텍스트에 대한 전통적인 정보검색 점수와 페이지랭크를 함께 적용할 수 있을 것이다. 구글 시스템은 그런 형태의 랭크 머징을 사용한다. 랭크 머징은 아주 까다로운 문제로 알려져 있어서 우리는 그런 형태의 질의어를 합리적으로 평가할 수 있게 구축하기 위해 상당한 노력을 부가적으로 기울여야만 했다. 하지만, 그런 형태의 질의어에 있어서도 페이지랭크가 상당히 도움이 된다고 생각된다.

    5.3 몇 가지 샘플 결과

    우리는 페이지랭크를 이용한 풀 텍스트 검색엔진인 구글을 이용해서 상당히 많은 테스트를 해 보았다. 완전한 형태의 유져 스터디는 이 논문의 범위를 벗어나지만, 몇 개의 샘플을 이 논문의 부록 A에 수록했다. 더 많은 질의어에 대한 결과를 원하는 분은 직접 구글을 테스트 해보면 된다.

    표 1은 페이지랭크에 기반한 탑 15위 페이지 목록이다. 이 리스트는 1996년 7월 시점의 결과다. 최근 다시 페이지랭크를 계산해 보았을 때는 마이크로소프트가 넷스케잎보다 조금 더 큰 페이지랭크를 보여 주었다.

    Top 15 페이지랭크

    사용자 삽입 이미지

    표 1

    5.4 커먼 케이스(Common Case)

    페이지랭크의 디자인 목표 중 하나가 질의어의 커먼 케이스를 잘 처리하게 한다는 것이었다. 예를 들어, 미시건 대학의 학생 관리자 기능 시스템의 이름에 “wolverine”이라는 게 들어 있었던 것으로 기억하고 있는 사람이 “wolverine”이라는 검색을 한다고 하자. 우리의 페이지랭크 기반 타이틀 검색엔진은 “Wolverine Access”를 검색 결과의 첫 번째로 보여 준다. 이것은 대단히 합리적이다. 왜냐하면 모든 학생들은 Wolverine Access 시스템을 사용하고 있고, “wolverine”이라는 질의를 한 사람이라면 Wolverine Access 페이지를 살펴 보려 할 가능성이 매우 크기 때문이다. 그런데 Wolverine Access 싸이트가 좋은 커먼 케이스라는 사실은 그 페이지의 HTML에는 전혀 담겨 있지 않다. 심지어 이런 형태의 메타 정보를 페이지 내에 담을 수 있는 방법이 있다고 하더라도, 이런 류의 평가에 있어서는 페이지를 만든 사람을 신뢰하기 힘들다는 게 문제가 된다. 웹 페이지를 만드는 많은 사람들이 자신이 만든 페이지가 웹에서 가장 훌륭하고 가장 자주 읽힌다고 주장할 것이기 때문이다.

    wolverine이라는 것에 관해서 가장 많은 정보를 담고 있는 페이지를 찾는 것과 wolverine 싸이트의 커먼 케이스를 찾는 것은 전혀 다른 일이라는 사실이 중요하다. 웹의 링크구조를 통해 텍스트의 매칭 점수를 전파해 나감으로써 어떤 주제를 자세하게 다룬 싸이트를 찾아내는 흥미로운 시스템이 있다.(Massimo Marchiori. The quest for correct information on the web: Hyper search engines.) 그 시스템은 그런 과정을 통해 가장 중심적인 경로에 포함되는 페이지들을 결과로 보여주는 것이다. 이런 방식은 “flower” 같은 질의어의 경우 좋은 결과를 보여 준다. 즉, 그 시스템은 ‘꽃’이라는 주제를 자세히 다루고 있는 싸이트에 도달할 수 있는 경로 중 가장 좋은 것을 보여주는 것이다. 이것과 커먼 케이스를 찾는 접근법을 비교해 보자. 커먼 케이스 접근법은 꽃에 관한 정보대신 꽃을 구입하는 방법만이 담긴, 사람들이 가장 많이 찾는 꽃 판매 싸이트를 보여줄 지도 모른다. 두 가지 방식 모두 중요하다는 게 우리의 생각이고, 일반적 목적의 웹 검색엔진이라면 마땅히 위의 두 가지 태스크 모두에 있어서 만족스러운 결과를 보여줘야 한다고 생각한다. 이 논문에서는, 우리는 커먼 케이스적 접근법에만 집중하고 있다.

    5.5 커먼 케이스의 하부 구성요소(Subcomponents of Common Case)

    페이지랭크가 도움이 될 수 있는 커먼 케이스 시나리오가 어떤 성격을 갖는가를 생각해 보는 것은 무척 유익하다. Wolverine Access 싸이트처럼 가장 자주 사용되는 페이지 외에도, 페이지랭크는 협동적 오쏘리티 또는 신뢰할 수 있는 싸이트 역시 표현해 준다. 예를 들어, 사용자는 어떤 뉴스가 단지 뉴욕 타임즈 홈 페이지로부터 직접 링크되어 있다는 이유만으로 더 선호할 수 있다. 물론, 그 뉴스 페이지는 뉴욕 타임즈처럼 중요도가 높은 페이지로부터 링크되어 있다는 사실만으로 매우 높은 페이지랭크 값을 갖게 된다. 이것은 일종의 협동적 신뢰(collaborative trust)의 특성을 잡아내고 있는 것처럼 보인다. 왜냐하면, 신뢰도가 높고 권위 있는 소스로부터 언급된 페이지일수록 그 페이지의 신뢰도와 권위가 올라가기 때문이다. 유사하게, 페이지의 품질이나 중요도 역시 이런 류의 순환적 정의에 잘 부합되는 것 같다.

    6 개인화된 페이지랭크(Personalized PageRank)

    페이지랭크 연산의 중요한 요소 중 하나가 E이다. E는, 랭크 싱크처럼 아웃엣지가 없는 싸이클을 보충하기 위한 랭크 소스 웹 페이지의 벡터다. 한편, E는 랭크 싱크 문제에 대한 해결책으로써뿐만 아니라, 페이지랭크 값을 조정할 수 있는 강력한 퍼래미터이기도 하다. 직관적으로 보자면, E 벡터는 랜덤 써퍼가 주기적으로 점프해 가는 웹 페이지의 분포에 해당한다. 밑에서 살펴 보겠지만, 이것은 웹을 거시적으로 관찰하거나 특정 부분에 대해 집중적이고 개인화된 관찰을 하는 데 사용될 수 있다.

    우리가 수행한 실험은 대부분 E 벡터를 모든 웹 페이지에 걸쳐 균일하게 ||E||1 = 0.15로 가정했다. 즉, 랜덤 써퍼가 주기적으로 또 다른 랜덤 웹 페이지로 점프하는 것을 가정한 것이다. 이것은 모든 웹 페이지가 단지 존재하고 있다는 이유만으로 똑같이 가치를 부여받는 것이므로 E를 무척 민주적으로 선택한 것이다. 이런 테크닉이 상당히 성공적이었기는 했지만 중요한 문제점도 갖고 있다. 관련 링크가 많은 어떤 웹 페이지들이 지나치게 높은 랭킹을 받을 수 있는 문제다. 예컨데, 저작권 관련 페이지나 상호간에 링크가 많이 된 메일링 리스트 모음 등이 여기에 해당한다.

    또 하나의 극단적 형태로, E를 오직 하나의 웹 페이지로만 구성할 수 있다. 우리는 두 가지로 실험해 보았다. 하나는 넷스케잎 홈 페이지로 해 보았고 다른 하나는 유명한 컴퓨터 과학자인 존 맥카씨(John McCarthy)의 홈 페이지로 했다. 넷스케잎의 홈 페이지로 한 실험은, 넷스케잎을 기본 홈 페이지로 하고 있는 초보 사용자의 시각에서 페이지의 랭크를 만들어 내려는 시도를 한 것이다. 존 맥카씨의 홈 페이지를 이용한 실험은, 그의 홈 페이지에 있는 링크를 바탕으로 우리에게 상당한 문맥적 정보를 제공한 개인의 시각에서 페이지랭크를 계산한 것이다.

    두 경우 모두, 위에서 말한 메일링 리스트 문제가 나타나지 않았다. 그리고 두 경우 모두에서, 각각의 홈 페이지가 가장 높은 페이지랭크 값을 나타냈으며 그 페이지로부터 직접 연결된 페이지들이 그 뒤를 이엇다. 그 다음 시점부터는 불균형은 줄어 들었다. 표 2는 각각의 경우에서 여러 페이지들의 페이지랭크 퍼센타일을 나타낸 것이다. 컴퓨터 사이언스에 관계된 페이지일수록 넷스케잎 쪽 랭크보다 매카씨 랭 크쪽이 더 높은 값을 갖고, 특히 스탠포드 대학의 컴퓨터 사이언스 학과와 관계되는 페이지는 더욱 높은 매카씨 랭크 값을 갖는 것을 볼 수 있다. 예를 들어 스탠포드 컴퓨터 사이언스 학과의 또 다른 교수의 웹 페이지는 매카씨 쪽 랭크가 넷스케잎의 경우보다 6 퍼센타일 더 높다. 그리고 페이지랭크 값을 퍼센타일로 표시한 것에 주의하자. 이렇게 한 것은 상위 순위에서 나타나는 페이지랭크 값의 큰 차이를 줄여서 표현하기 위해서다.

    Netscape vs McCarthy

    사용자 삽입 이미지

    표 2

    위와 같은 개인화된 페이지랭크는 개인화된 검색엔진처럼 다양하게 응용할 수 있을 것이다. 개인화된 검색엔진은, 단순히 북마크나 홈 페이지를 입력하는 것만으로 사용자의 취향을 상당 부분 효과적으로 추측해내서 사용자의 수고를 대폭 덜어줄 수 있을 것이다. “Mitchell”이라는 질의어로 시행한 예를 부록 A에 수록했다. 그 예를 보면, 웹 상에 “Mitchell”이라는 이름을 가진 사람이 아주 많음에도, 존 매카씨 교수의 동료인 존 밋첼 교수의 홈 페이지가 결과의 1위로 나타난 것을 볼 수 있다.

    6.1 상업적 이익을 위한 조작

    이런 형태의 개인화된 페이지랭크는 상업적 이익을 위해 조작하는 것을 사실상 완전히 차단할 수 있다. 높은 페이지랭크 값을 갖기 위해서는 중요한 페이지로부터 언급되거나 중요하지 않은 많은 페이지로부터 링크되어야만 한다. 최악의 경우, 중요한 싸이트에서 광고(링크)를 구입하는 형태의 조작이 있을 수 있겠지만 그건 비용이 소요되므로 충분히 조절 가능하다. 조작에 대한 이런 저항성은 정말로 중요한 특성 중 하나다. 왜냐하면 상업적 조작 때문에 많은 검색엔진이 골머리를 앓고 있으며 훌륭한 기능을 임플리멘테이션하는 것이 조작 때문에 매우 어려워지기 때문이다. 예컨데, 문서가 자주 업데잇되는 것은 매우 바람직한 특징임에도 검색 결과를 조작하고자 하는 사람에 의해 이런 특징이 남용되고 있는 것이다.

    균일한 E로 할 것인지 아니면 단일 페이지 E로 할 것인지의 절충안으로 E를 모든 웹 써버의 루트 수준 페이지로 구성할 수도 있다. `이 경우, 어느 정도의 페이지랭크 조작이 가능하다는 것에 주의해야 한다. 많은 루트 레벨 써버를 확보해서 특정 싸이트로 링크하면 간단히 조작되기 때문이다.

    7 적용(Applicaitons)

    7.1 웹 트래픽의 추산

    페이지랭크는 대략 랜덤 웹 써퍼에 해당하기 때문에(섹션 2.5 참조), 페이지랭크가 실제 사용도와 어떻게 대응되는지 알아 보는 것은 아주 흥미로운 일이다. 우리는 NLANR(NLANR) 의 프록시 캐쉬로부터 얻은 웹 페이지의 접근 횟수를 페이지랭크와 비교해 보았다. NLANR 데이타는 미 전역에 있는 프록시 캐쉬에 있는 여러 달에 걸쳐진 기록으로, 11,817,665개의 각기 다른 URL에 관한 자료이다. 그 데이타에 따르면 가장 히트가 높은 것은 알타비스타로 638,657 히트다. 그 데이타베이스는 우리가 갖고 있는 7500만 개 URL 데이타베이스와 260만 페이지가 중복된다. 이들 데이타셋을 분석, 비교하는 것은 몇 가지 이유에서 대단히 까다로운데, 우선 캐쉬 억세스 데이타에 있는 많은 URL들이 무료 이메일 서비스에 있는 개인 메일을 읽기 위해 접근한 것들이라는 점이 있다. 그리고 중복된 써버 이름과 페이지 이름도 심각한 문제점이다. 불완전성과 편향됨은 페이지랭크 데이타와 사용도 데이타 모두에서 문제가 된다. 하지만, 몇 가지 흥미로운 트렌드를 볼 수 있었다. 캐쉬 데이타에서는 포르노그래프 싸이트들이 높은 사용도를 보였음에도 이들의 페이지랭크 값은 대부분 낮았다. 이것은, 사람들이 자신의 웹 페이지에 포르토그래피 싸이트로 링크하는 것을 원하지 않기 때문인 것으로 생각된다. 그러므로 페이지랭크와 사용도 데이타 사이의 차이점을 살펴 보는 것을 통해, 사람들이 보고는 싶어하는데 자신의 웹 페이지에서는 언급하고 싶어 하지 않는 게 어떤 것이 있는지를 알아낼 수 있을 것이다. 어떤 싸이트는 매우 높은 사용도를 갖는데 페이지랭크가 낮은 경우가 있다. netscape.yahoo.com 같은 게 그렇다. 이것은 아마도 우리 데이타베이스에 중요한 백 링크가 누락되어 있기 때문인 것 같다. 우리 데이타베이스는 웹 링크 구조이 일부분만을 담고 있기 때문이다. 사용도 데이타를 페이지랭크 계산의 시작 벡터로 사용하고 페이지랭크 연산을 몇 차례 반복하는 것도 가능할 것이다. 이렇게 하면 사용도 데이타가 채워주지 못 한 부분을 메꿀 수 있을 것이다. 어떤 식이 되었든, 이런 형태의 비교는 향후 연구를 위한 흥미로운 주제이다.

    7.2 백 링크 예측자로써의 페이지랭크

    페이지랭크는 백 링크의 예측자로써의 의미가 있다. “Efficient crawling through url ordering”(Junghoo Cho, Hector Garcia Molina, and Lawrence Page) 논문에서, 우리는 어떻게 웹을 효율적으로 크롤링할 수 있는지, 더 좋은 문서들을 먼저 크롤링할 수 있는지의 문제를 탐색했다. 우리는 스탠포드 웹에서 시행한 테스트를 통해서 페이지랭크가 단순히 인용 횟수를 세는 것보다 훨씬 더 좋은 미래 인용 횟수의 예측자라는 것을 알게 되었다.

    실험은, 다른 정보 없이 단일 URL에서 출발해서 가급적 최적의 순서에 가깝게 페이지를 크롤링하는 것을 목표로 하고 있다. 최적의 순서란 평가함수에 따른 랭크 순서와 정확히 일치하는 순서로 페이지를 크롤링하는 것이다. 이 실험에서의 평가함수는 완전한 정보가 주어졌을 때의 인용 횟수 순서로 했다. 문제는, 평가함수를 계산할 정보를 완전히 알게 되는 것은 모든 문서를 크롤링한 다음이라는 점이다. 이렇게 불완전한 데이타를 사용해서 크롤링 순서를 정할 때, 단순히 이미 알고 있는 인용 횟수를 활용하는 것보다 페이지랭크를 이용하는 쪽이 더 효과적인 것으로 드러났다. 바꿔 얘기하자면, 심지어 측정 기준이 인용횟수를 세는 것일지라도, 페이지랭크가 인용회수를 직접 세는 것보다 더 좋은 예측자라는 얘기다! 이것의 이유는 페이지랭크의 경우 인용 횟수를 세는 것이 국소적으로만 최대화되는 것을 피할 수 있기 때문인 것 같다. 예를 들어, 인용 횟수를 직접 세는 경우에는 스탠포드 CS 웹 페이지들의 컬렉션 속에만 빠져 드는 경향이 있어서 그곳을 벗어나 다른 곳에 있는 인용 회수가 높은 페이지를 찾아 나서는 데 오랜 시간이 걸린다. 하지만 페이지랭크는 스탠포드 홈 페이지가 중요하다는 것을 금방 알게 되고, 그 하부 페이지들에게 우호적인 점수를 주기 때문에 더 효율적이고 광범위한 검색이 가능한 것이다.

    이러한 인용 횟수의 예측자로써의 페이지랭크의 능력은 페이지랭크를 사용해야 하는 아주 설득력 있는 이유가 된다. 웹의 인용구조를 완전히 매핑하는 것은 아주 까다롭기 때문에, 인용 횟수를 직접 세는 것보다 페이지랭크가 훨씬 더 좋은 인용 횟수 근사치가 될 수 있는 것이다.

    7.3 사용자 네비게이션: 페이지랭크 프락시(User Navigation: The PageRank Proxy)

    우리는 사용자가 각 링크의 페이지랭크와 함께 부가적인 설명을 볼 수 있는 웹 프락시 애플리케이션을 개발했다. 그 애플리케이션은 아주 유용했는데, 사용자가 링크를 클릭하기 전에 관련 정보를 미리 알 수 있기 때문이다. 그림 7은 프록시 프로그램의 스크린샷이다.빨간 바의 길이는 URL의 페이지랭크 값에 로그를 취한 값이다. 그림을 보면 스탠포드 대학 같은 메이져 조직은 매우 높은 랭킹을 받게 되고, 뒤이어 리서치 그룹이, 그 다음으로 개인이 -개인의 경우 스케일의 최상단에는 교수가 위치한다 – 나타남을 알 수 있다. 또한 ACM이 스탠포드 대학보다는 높지 않지만 매우 높은 페이지랭크를 갖는 것도 볼 수 있다. 재미있는 것은, 아주 지명도가 높은 교수의 페이지가 심할 정도로 낮은 페이지랭크 값을 갖고 있는 것을 찾으면 URL이 잘못 되어 있는 것을 찾아낼 수 있다는 점이다. 결과적으로, 프락시 툴은 네비게이션 뿐만 아니라 페이지 제작에도 도움이 될 수 있는 것 같다. 이 프락시 애플리케이션은 다른 검색엔진의 결과를 살펴 보는 데에도 아주 유용하다. 그리고 야후의 리스팅 같이 링크가 매우 많은 페이지를 파악하는 데도 큰 도움이 된다. 프락시를 통해서 많은 링크 중 어떤 것이 더 흥미로운 것인지를 짐작할 수 있기 때문이다. 또는 자신이 찾고 있는 링크가 “중요도” 측면에서 어느 정도인지를 알 수도 있고, 훨씬 더 빠르게 페이지를 전체적으로 살펴볼 수 있다.

    사용자 삽입 이미지

    그림 7 페이지랭크 프락시

    7.4 페이지랭크의 다른 용도

    페이지랭크의 최초 목표는 백 링크를 정렬해서, 만약 어떤 문서가 많은 백 링크를 갖는다면 그 중 어떤 것이 “최상”의 것인지를 찾아서 그걸 가장 먼저 보여주려는 것이었다. 그리고 우리는 그런 시스템을 임플리멘테이션했다. 페이지랭크를 기준으로 정렬된 백 링크를 살펴 보는 것은 경쟁을 파악하는 측면에서도 아주 흥미롭다. 예를 들어, 뉴스 싸이트를 운영하는 사람이라면 경쟁자가 확보한 중요한 백 링크가 어떤 것인지 지속적으로 관찰하고자 할 것이다. 또한, 페이지랭크는 사용자가 어떤 싸이트가 신뢰할 수 있는 것인지 아닌지 판단하는 데 도움을 준다. 예를 들어, 스탠포드 홈 페이지에서 직접 인용된 정보라면 아무래도 사용자가 더 신뢰하려 할 것이다.

    8 결론

    이 논문에서, 우리는 웰드 와이드 웹 상의 모든 페이지를 페이지랭크라는 단일한 숫자로 압축하고자 하는 담대한 작업을 다루어 보았다. 페이지랭크는 페이지의 컨텐트와 상관없이, 오직 웹의 그래프 구조 상의 위치에만 의존하는 모든 웹 페이지의 글로벌 랭킹이다.

    페이지랭크를 사용함으로써 우리는 더 중요하고 중심적인 웹 페이지들을 더욱 선호하는 식으로 검색 결과를 정렬할 수 있다. 여러 실험을 통해서, 페이지랭크는 고품질의 검색 결과를 보여줌을 알 수 있었다. 페이지랭크의 기반이 되는 직관은 웹 페이지 외부에 있는 정보, 즉 일종의 피어 리뷰인, 백 링크를 사용한다는 것이다. 게다가, “중요한” 페이지들로부터의 백 링크는 평균적인 페이지들로부터의 백 링크보다 더 중요하며, 이것은 페이지랭크의 재귀적인 정의(섹션 2.4 참조)를 통해 확실히 구현되어 있다.

    페이지랭크는 대부분의 질의어에 대한 답변이 될 수 있는 소수의 자주 사용되는 문서들을 분리해 내는 데에도 사용될 수 있다. 풀 데이타베이스는 작은 데이타베이스가 질의어에 적절히 응답할 수 없을 때만 참조되면 된다. 마지막으로, 페이지랭크는 클러스터의 센터로 사용할 수 있는 대표 페이지를 찾아내는 좋은 방법이 될 수도 있을 것이다.

    페이지랭크는 검색 외에도 트래픽 추산이나 사용자 네비게이션 같은 다른 많은 곳에 적용될 수 있다. 또한, 웹을 특정 시점에서 바라볼 수 있는 사용자화된 페이지랭크 역시 만들어 낼 수 있다.

    종합하자면, 페이지랭크를 이용한 실험은 웹 그래프의 구조가 다양한 정보검색 작업에서 매우 유용하게 사용될 수 있음을 보여 준다고 할 수 있다.

  • 죄수의 딜레마 : 광고편

    난 광고를 싫어한다. 정확히는, 상업성 광고를 좋아하지 않는다. 그런 이유로 내 블로그에는 광고가 없다.

    하지만 나도 사람인지라, 애드센스나 애드클릭스 같은 광고를 이용하여 수익을 100불이니 10만원이니 벌었다는 소리를 들으면 귀가 솔깃한다. 뭐 그 자체도 이미 애드센스와 애드클릭스의 광고이므로 딱히 큰 유혹을 받지는 않지만 말이다. 애드센스같은 건 이제

    공략집

    도 있어서 어떻게 하면 유효 클릭 수를 늘리고 많은 돈을 벌 수 있는지 알 수 있다.

    언제나 그렇듯이 이것은 악성 사용자(Abuser)를 낳는다.

    블로그에 애드센스 등의 클릭 광고를 올리고, 인기검색어를 이용한 검색 게시물 자체를 블로그에 올리게 되면 양의 되먹임(Positive feedback) 고리로 편입되어 엄청나게 많은 방문자 수를 자랑하게 된다. 어떤 블로그를 보니까 하루에 10만명이 오더라. 내가 10개월간 블로그 운영하면서 기껏 온 사람들이 6만명인데.

    문제는 블로그에 광고를 올리는 사람들 모두는 죄수의 딜레마와 같은 유형의 딜레마에 빠져 있다는 것이다. 왜 그런지 볼까?

    가장 쉬운 문제로서, 2인 딜레마 게임을 생각해 보자. 전 세계에 블로거가 2명뿐이다! A와 B는 둘 다 블로그를 운영하고 있고, 광고를 게제하고 있다. 두 블로그의 수익률은 현재 똑같다. 이런 상황에서, 만약 A가 B의 좋은 글들을 퍼와서 수익률을 두배로 올렸다고 하자. 당연히 B는 이 상황을 좌시하고만 있지는 않을 것이고, B 역시 같은 전략을 사용하여 자신의 수익률을 두배로 올릴 것이다. 이것은 자신의 이익이 줄어들지는 않지만 상대편이 돈을 더 벌었다면 자신도 벌 수 있는

    바로 그 돈

    을 못 벌었으니 손해라고 생각하는 심리라고 생각하면 된다.

    A와 B가 둘 다 수익을 두배를 내게 되는 것 까지는 좋은데, 이제 더이상 새로운 글은 만들어지지 않고 무한 펌질의 악순환이 계속된다. 뭐, 결국 2인으로 이루어진 블로고스피어는 멸망해 버린다.

    • 협동하는 경우(둘 다 퍼오지 않음), 일정 수익률 보장이 된다.
    • 한쪽이 배신하는 경우(배신하는 쪽은 퍼오는 곳), 두배 수익률이 나오고 나머지는 수익률 그대로.
    • 둘 다 배신하는 경우 멸망.

    2인 게임이 아니라 다자 게임이라고 해도 좋다. 모든 블로거가 광고 수익률 극대라는 가장 합리적인 선택을 한다고 가정하면, 블로고스피어는 확실하게 멸망한다. 물론 나처럼 아예 광고를 올리지 않는 사람도 있고, 광고가 원래 내용을 침해하지 않는 블로그도 얼마든지 많다. 따라서 전원 배신이라는 결말은 나지 않으므로 블로고스피어가 망하지는 않을 것이라고 예상된다.

    여기까지는 단순한 분석인데, 그럼 현 상황은 합리적인가? 즉, 퍼온 글을 이용해서 많은 수익을 내는 블로거가 있고 스스로 컨텐츠를 만들어내서 수익을 내는 블로거가 있고, 둘이 공존하는 상황은 합리적인가?

    이에 대한 판단은 잠시 뒤로 미루고, 이러한 일로부터 퍼온 글에 의한 수익을 막기 위한 방법은 배신하는 경우 수익보다 더 큰 불이익을 주면 된다. 물론 그렇게 하자는 법이 저작권법이다. 다른 사람의 저작물을 정당한 허가 없이 무단으로 복제하여 사용한 경우에 불이익을 주자는 취지의 법이다. 즉, 이 법이 시행된다면 위와 같이 배신하는 블로거는 합리적 선택에 의해서 없어져야 할 것이다.

    그럼, 퍼온 글들을 모아서 많은 수익을 낸 블로거가 직접 컨텐츠를 만든 블로거들과 공존하는 상황이 합리적인지 어떤지에 대한 대답을 생각해 보자. A가 1을 만들었고 B가 2를 만들었는데, 어느날 C가 나타나서 1과 2를 복사해서 12라는 새로운(?) 컨텐츠(?)를 만들었다. A와 B는 C에게 그러지 말라고 하겠지만, 그럼 C는 A와 B에게 너네도 퍼다가 글 만들라고 한다. 그래서 A와 B가 서로 퍼다가 각각 12를 만들었다. 결국 A, B, C는 모두 12라는 컨텐츠를 가진 개성없는 블로거들이 되어 버렸다. 이것이 네이버 전설(?)이다. 뭐, 네이버는 수익과는 상관이 없어 보이지만. 요점은, 결국 허락을 받았는가에 대한 문제이다. 인터넷에 올린 글은 “읽으라고” 올린 것이지 그걸 가져다가 맘대로 사용하라고 올리지는 않는다. 책을 샀다고 해서 책 자체의 사용권은 인정되지만 책을 복사해서 복사본을 팔 권리는 인정되지 않는 것과 마찬가지다. 물론 저자와 출판사의 허락을 받았다면 얼마든지 복사해다 팔아도 된다. 내 입장은, 그러므로 퍼가는 것에 대해서 제제조치가 필요하다는 입장이다.

    현실적인 문제는 인터넷이 너무 넓다는 점이다. A가 B의 컨텐츠를 복사했다고 해도 A가 출처를 밝히지 않는 한 이용자들은 A가 직접 만든 컨텐츠로 알 것이고, 저작물에 대한 B의 업적은 인정되지 않는다. 그리고 사실상 이 문제는 법으로 해결될 문제가 아니라 문화를 바꿔야 할 문제인 것이다.

    그건 그렇고, 우리나라 저작권법에서 GPL을 인정하지 않는 이유를 모르겠다. GPL의 요점은 “이 소설을 읽든 복사해서 갖다 팔든 니 맘대로 하는데, 1. 아무튼 저작권자는 나고 2. 덧붙인 내용이 있으면 그것도 GPL이어야 한다”는 점이다. 물론 “난 이 소설이 재밌을지 없을지 결코 보증 못한다”는 단서도 붙어있긴 하지만.



    [각주:

    1

    ]



    1. GPL에 대한 이 해석은 틀릴 수도 있으므로 정확한 해석은 자유소프트웨어재단(http://www.fsf.org/)에 물어보시기를.

      [본문으로]

  • 문자 메세지는 언제 멈추지?

    요새는 휴대전화의 기본 기능인 통화기능보다 많이 쓰이는 통신 수단이 단문 메시지 전송(SMS)기능이다. 이른바 “문자” 보내기인데, 이거 생각보다 만만한 통신 수단이 아니다. 기본적으로 전화 통화는 실시간(Real-time) 쌍방향(Duplex) 통화를 기본으로 하기 때문에 어느 한쪽이 끊으면 끊긴다. 하지만 문자 메시지 보내기는 실시간이 아니고 심지어 단방향이다. 즉, 어느 한쪽이 문자를 무시하더라도 상대방은 계속 문자를 보낼 수 있다는 점이다.

    아무튼 문자 메시지를 보내다보면 계속 답장에 답장을 해줘야 하는 상황을 양쪽이 경험하게 되는 사태가 벌어진다. 왜냐하면 내가 보낸 문자를 상대방이 무시한다면 나는 기분이 나쁠 것이고, 그걸 아는 나 역시 내가 상대방의 문자를 무시한다면 상대방이 기분이 나빠질 것이라고 예측할 수 있기 때문이다. 문제는 여기서 발생하는데, 그렇다고 “이제 문자 그만 보내자”라는 내용의 문자를 보낼 수가 없다!

    즉 무한정 계속되는 것이다. 이것은 현대인들이 문자메시지 중독에 쉽게 빠지는 원인이기도 하고 결과이기도 하다.

    그럼 이제 나의 질문이다. 어떤 시점이 문자를 그만 보내기에 괜찮을까?

    …그런데 아쉽게도 정답은 나도 모른다.

  • 위대한 사람들

    내가 지금까지 살아오면서 내 가치관과 인생관과 세계관에 가장 큰 영향을 미친 것이 무엇이냐고 묻는다면, 가장 큰 영향은 부모님이고, 그 다음은 애니메이션 “슬레이어즈”이다. 작가인 칸자카 하지메가 뭔가 심각한 고민을 하고 스토리를 쓴 것은 아니겠지만, 아무튼 내가 거기서 발견한 의미는 아주 많이 있다. 시간만 있으면 다시 처음부터 끝까지 보고 싶은, 그런 애니매이션이다. 내가 블로그에 쓰는 많은 글들은 책을 읽고 생각한 것들도 있지만, 대부분은 슬레이어즈의 철학에서 나타난 것들이 많다.

    주인공 리나 인버스의 가치관은 참 흥미롭다. 악인에게는 인권이 없다거나, 사랑보다는 돈이 현실이라거나. 여기서 이야기 하고 싶은 것은, 자신에게 해를 미치는 존재에 대한 생각이다. 슬레이어즈 시리즈를 보면서, 느끼는 거지만 리나는 굉장히 이기적이다. 굳이 나쁜 짓을 하면서 살지는 않지만, 이기적인 쪽으로 선택을 많이 하는 편이다. 이것이 극명하게 드러난 것은 마왕을 퇴치하는 목적이다. 다른 여러가지 이유도 있지만, 리나가 마왕과 싸우고 끝내 승리할 수 있는 이유는 세계 평화라든가 하는 멋진 이유가 아니다. 단지 마왕이 자신을 죽이려고 하기 때문이다. 다른 그 어떤 이유도 아닌, 오직 생존하기 위해서 마왕과 싸우고 그만큼 강한 집념과 집착으로 승리하고야 만다. 그리고 그 결과는 마왕 퇴치+세계 평화라는 위대한 결말이다.

    사실 세계에서 일어났던 여러가지 커다란 사건들을 보면, 그 시작은 굉장히 사소한 것들이었던 일들이 많다. 위대한 목적이나 목표를 두고 시작된 것이 아니라, 그냥 사적이고 개인적인 일로부터 시작된 것도 있다. 가령, 구글은 원래 대학원생이 자기 학위 논문을 쓰기 위해서 만든 작은 서비스에서 시작되었다. 슬래시닷은 그냥 글 올리는 게시판에서 시작했다가 그렇게 성장했다. 리눅스는 한 개발자가 커널을 조금 만들어서 올렸다가 그렇게 커졌다. 이것들은 시작할 때는 그다지 커질거라고 기대하지도 않았고, 대단해질 것이라고 예측할 수도 없었던 것들이다. 하지만 지금은 세상을 움직이는 거대한 힘이 되어 있다.

    페르마의 마지막 정리는, 페르마가 여백에 적어놓은 “나는 답을 알지롱 ㅋㅋ” 대충 이런 요지의 낙서같은 것에서 시작된 문제고, 300년 동안이나 수학자들을 괴롭힌 문제가 되었다. 페니실린은 플레밍이 실수로 열어놓은 샬레에 곰팡이가 하나 떨어져서 발견되었다. 페니실린의 발견이 위대한 업적인 것은 맞지만 아무리 생각해도 위대한 시작은 아닌 것 같다. 아인슈타인의 상대성 이론도 어릴 때 “빛의 속도로 달리면 거울에 내 얼굴이 보일까?” 라는 단순한 궁금증에서 시작되었다고도 한다.



    [각주:

    1

    ]


    파인만은 핵무기 개발하는 공장에서, 공장 설계도를 보다가 뭔가 이상한 걸 발견했다. 그가 생각하기에 도면에 쓰여진 기호가 창문같기는 한데 그걸 물어보자니 유명 물리학자로서 부끄럽다는 것이다. 그래서 “저 파이프에 문제가 생기면 어떻게 됩니까?”라고 물어봤다가, 설계상의 헛점을 발견해 버렸다고 한다.



    [각주:

    2

    ]


    아마 이 예들 말고도 사소한 이유로 시작된 위대한 업적은 많이 있을 것이다. 물론 원대한 꿈을 갖고 시작되어 이루어진 위대한 업적도 많이 있을 것이다. 내가 강조하고 싶은건, 위대한 일을 하고 위대한 사람이 되기 위해서 그 목적이나 꿈이 꼭 그에 걸맞게 위대할 필요는 없다는 것이다. 사소해도 좋다. 가령, 6.25전쟁이나 임진왜란에 나가서 승리를 이끈 병사들은, 아마 불타는 애국심에 열심히 싸운 사람도 있겠지만 단지 당장 죽지 않기 위해, 단지 살고 싶기에 목숨을 걸고 싸운 사람들도 많을 것이다. 어떻든 그들이 열심히 싸웠기에 전쟁에서 승리했을 것이다.

    위대한 업적을 남긴 사람들의 전기나 자서전, 평전 같은 걸 읽다보면 그 사람들은 어릴때부터 뭔가 달랐다. 업적을 이루지 못한 사람과는 다른 것이다. 내가 고등학교인가 중학교 다닐때, 김영삼 전 대통령의 전기를 다룬 책이 학교에 돌아다녔었는데, 그것만 읽으면 김영삼 아저씨는 무슨 태어날 때부터 대통령을 하기 위해 타고난 사람인 것 같았다. 그런데 지금 생각해보면 별로 그런 것 같지는 않다. 정치에 뜻을 품은 것 외에는, 그냥 평범했다고나 할까. 물론 진짜로 평범했으면 대통령까지는 못했겠지만, 아무튼 처음부터 위대했다거나 하는 생각은 들지 않는다.

    지금 스스로를 돌이켜 생각해보면 결코 위대하지 않을 것이다. 아마 이 글을 읽는 사람중에 위대한 사람이 있을리가 없다고 생각한다. 하지만 그럼 어떤가. 사소한 자신의 욕심을 만족시키는 것으로 위대해지는 사람도 있는걸. 가장 중요한 것은, 자신이 간절히 바라는 것이라면 남들이 보기에 아무리 사소하고 비굴해 보일지라도 도전해야 한다는 것이다.

    글을 다 쓰고나서 느낀 점인데, 난 이런 글을 적고 나서 항상 나 자신은 내가 글에 적은 내용들을 그다지 실천하고 있지 못하다는 느낌이 든다. 뭐, 그렇다고 자괴감에 빠지지는 않는다. 나야 실천 못하더라도, 아무튼 “멋진” 얘기를 적어놓긴 했으니까 누군가 이 글에 공감하고 실천하여 꿈을 이룰 수 있다면 그것만으로도 충분하다. 맘에 안들면 따르지 않으면 되는 것이고. 무슨 상관이랴.
    1. 진짜로 그게 모티브가 되었는지는 잘 모르겠다. 아는 분 있으면 알려주기 바란다.

      [본문으로]
    2. 이것도 정확한 버전은 기억이 나지 않는다.

      [본문으로]

  • 선거에 영향을 주는 것

    시절이 시절이다보니 선거 글이 나오게 된다.

    유권자 100명이 있다.

    후보는 두명이다.

    신은 안다. 기호 1번 지지자가 40명이고 기호 2번 지지자가 60명이라고.

    선거날이 되어, 투표를 하는데 기호 1번 지지자가 30명 투표를 하고, 기호2번 지지자가 25명 투표해서, 55%의 투표율에 기호 1번 우세다.

    물론 위의 내용은 아직까지는 신만 아는 내용이고, 모든 사람이 아는 내용은 오직 투표율이 55%라는 점이다.

    나머지 45명은 딱히 투표하러 갈 생각이 없고 집에서 쉴 생각이었다.

    그때, 누군가 “투표하러 갑시다!”라고, 물론 특정 후보와 아무 관련 없는 사람이다, 해서 투표율이 급격히 상승했다. 100%투표율에 도달한 것이다.

    물론 결과는 아는바와 같이 기호2번 당선.

    질문들

    1. 투표하러 가자고 외친 사람은 선거 결과를 조작했는가?
    2. 투표하러 가자고 외친 사람이 기호 1번 지지자와 기호 2번 지지자들의 각각 투표율을 알고 투표하러 가자고 외쳤다면, 그 사람은 선거 결과를 조작했는가?
    3. 위의 2번 질문에서, 그 사람이 기호1번 지지자와 기호2번 지지자들의 각각 투표율을 알고 있다는 사실을 아무도 모른다면, 그 사람은 처벌 받아야 하는가?
    4. 반대로, 그 사실을 누군가 알고 선관위에 이야기 했다면, 그 사람은 결국 처벌 받는가?
    5. 투표하러 가자고 외친 사람은 정말로 아무것도 모르고 그냥 투표하러 가자고 했으나, 어떤 악의적 목적을 가진 사람이 그 사람은 기호1번 지지자와 기호2번 지지자들의 각각 투표율을 알고서 투표하러 가자고 외쳤다며 고발한다면, 그렇게 외친 사람은 처벌 받아야 하는가?
    6. 또한, 그렇게 고발한 사람은 처벌 받아야 하는가? 아니면 보상을 받아야 하는가?

    정답은 선관위에 물어보세요.

    대략, 지난번 대선때 일어났던 일들이 생각나서 적은 문제들인데, 어쩌면 모르고 한 헛소리일 수도 있겠다.