안녕하세요. 저는 John입니다. 저는 구글에서 검색 및 머신 러닝팀을 이끌고 있습니다. 저는 전세계의 모든 사람들이 소소한 질문부터 매우 중요한 문제까지 답을 찾기 위해 검색 엔진을 켜는 것이 놀랍도록 고무적인 일이라 생각합니다. 그래서 우리는 큰 책임감을 갖고 가능한 한 최선의 답을 제공하고자 합니다. 안녕하세요. 제 이름은 Akshaya이고 Bing 검색팀에서 일하고 있습니다. 우리는 수 차례에 걸쳐 인공지능과 머신러닝 조사를 시작할 수 있었지만 결국 가장 중요한 것은 우리가 사회에 영향을 주길 원했기 때문에 사용자가 이를 어떻게 이용할지에 관해 답을 찾아야 합니다. 간단한 질문을 하나를 해보죠. 화성까지 가는 데 얼마나 걸릴까요? 검색결과가 어디에서 나왔으며, 다른 결과 보다 이것들이 먼저 나열된 이유가 무엇일까요? 좋아요, 검색 엔진이 요청을 결과로 어떻게 바꿔놓는지 한번 살펴볼까요. 먼저 알아야 할 것은 검색을 언제 하는가 입니다. 사실 검색엔진은 실시간 검색을 위해 월드와이드웹으로 나가지 않습니다. 인터넷에는 수 십억개 이상의 웹사이트가 있고 매 일분마다 수 백개 이상이 새로 만들어지기 때문입니다. 그래서 검색엔진이 사용자가 원하는 것을 찾고자 각 사이트 하나 하나를 조사하는 일이 어려우면, 그냥 한없이 시간을 끌게 될 것입니다. 그래서 더 빠르게 검색하기 위해, 검색엔진은 미리 웹을 계속해서 스캐닝하여 나중의 검색에 도움이 될만한 정보를 기록합니다. 이런 식으로, 화성까지의 여행에 관한 검색을 할 때, 검색엔진은 이미 실시간 으로 답을 주기위해 필요한 내용을 갖게 됩니다. 어떤식으로 이루어지는지 볼까요. 인터넷은 하이퍼링크에 의해 서로 연결된 페이지들의 웹(거미줄)입니다. 검색엔진은 이러한 웹 페이지를 서로 이어주는 스파이더라고 불리는 프로그램을 계속해서 실행하여 그것들에 관한 정보를 수집합니다. 하이퍼링크를 찾을 때마다 전체 인터넷 상에서 그것이 찾을 수 있는 모든 페이지를 방문할 때까지 그것을 따라갑니다. 스파이더가 방문하는 각 페이지마다 검색 인덱스라고 부르는 특수 데이터베이스를 추가함으로써 검색에 필요한 정보를 기록합니다. 이제, 더 이전의 검색으로 되돌아 가서 검색엔진이 검색결과를 어떻게 생성하는지 살펴보도록 할까요. 화성까지 가는데 어느 정도 걸리는지 물어볼 때, 검색엔진은 검색인덱스에 타이핑된 단어 하나 하나를 보고 그 단어가 들어 있는 인터넷 상의 모든 페이지 목록을 즉시 가져옵니다. 하지만 검색 용어만을 기준으로 하면 수 백만개의 페이지가 나열될 수 있습니다. 그래서, 검색엔진은 맨 처음 표시할 요청에 가장 잘 일치하는 결과를 결정할 수 있어야 합니다. 이러한 결정은 검색엔진이 사용자가 무엇을 찾고 있는지 추축해야 하기 때문에 힘들 수 있습니다. 각 검색엔진은 각자 자체 알고리즘을 사용하여 사용자가 원한다고 생각하는 바에 기초하여 페이지 순위를 정합니다. 검색엔진의 순위 알고리즘은 사용자의 검색용어가 페이지 타이틀에 들어 있는지 확인할 것입니다. 검색엔진은 단어 모두가 옆에 나란히 표시되어 있는지 확인하거나 또는 사용자가 보길 원하는 페이지와 그렇지 않을 페이지를 결정하는데 더 도움이 될 다른 계산을 확인할 것입니다. 구글은 어느 한 주어진 페이지에 몇 개의 다른 웹 페이지가 연결되었는지를 고려함으로써 검색과의 관련성이 가장 큰 결과를 선택하기 위한 가장 유명한 알고리즘을 발명했습니다. 이 알고리즘은 많은 웹사이트가 어느 한 웹페이지가 흥미롭다고 생각하면, 그 웹페이지가 사용자가 찾고 있는 것이라는 생각에 바탕을 둡니다. 이 알고리즘을 페이지 랭크라고 부르는데 이것은 웹 페이지를 평가한다는 의미가 아니라 이 알고리즘의 발명자이자 구글 창립자 중 한명인 래리 페이지의 이름을 따서 페이지 랭크라 부르는 것입니다. 웹사이트는 사용자가 그 사이트를 방문할 때 수익을 창출하기 때문에 스패머는 검색 알고리즘을 교란하여 그들 페이지가 결과 목록에서 상위에 표시되게 하는 방법을 계속해서 찾고 있습니다. 검색엔진은 정기적으로 알고리즘을 업데이트하여 가짜 또는 신뢰할 수 없는 사이트가 상위에 표시되는 걸 방지합니다. 궁극적으로, 웹 주소를 잘 살피고 신뢰할 수 있는 출처인지 확인함으로써 신뢰할 수 없는 페이지를 계속해서 분별해 내는 일은 사용자의 능력에 의해 좌우됩니다. 검색 프로그램은 항상 진화하여 경쟁자보다 더 나은 결과를 더 빠르게 보여주도록 알고리즘을 개선합니다. 오늘날의 검색엔진은 심지어 명쾌하게 제공되지 않은 정보를 사용하여 검색 범위를 좁혀나갈 수 있게 합니다. 그래서, 예를 들어, 강아지 공원을 검색한다면, 현재 위치를 입력하지 않아도 많은 검색 엔진이 근처에 있는 모든 강아지 공원에 관한 검색 결과를 제공할 것입니다. 현대 검색엔진 역시 사용자가 찾고 있는 것과 가장 잘 일치하는 결과를 찾기 위해 페이지 상의 단어만이 아닌 그것이 실제로 의미하는 바를 이해합니다. 예를 들어, 사용자가 빠른 투수를 검색하면 검색엔진은 사용자가 운동선수를 찾고 있음을 알것입니다. 하지만, 큰 피처를 검색하면 검색엔진은 주방용품을 찾을 것입니다. 단어를 더 잘 이해하기 위해, 우리는 인공지능의 한 유형인 머신 러닝이라 부르는 것을 사용합니다. 이것은 검색 알고리즘에게 단순히 페이지 상의 개별 문자 또는 단어만이 아닌 그러한 단어에 숨겨진 의미를 찾아내게 합니다. 인터넷은 기하급수적으로 성장하고 있습니다. 하지만 검색엔진을 설계하는 팀이 우리의 일을 제대로 잘하면, 사용자는 항상 원하는 정보를 단지 몇 번의 키보드 입력으로 얻을 수 있어야 합니다.