"대표적인 인공지능 사례 살펴보기"의 두 판 사이의 차이
red
(→왓슨의 문장 해석 방법) |
(→DeepQA) |
||
141번째 줄: | 141번째 줄: | ||
하지만 4명으로 구성된 팀이 6년에 걸쳐 질의 응답 시스템을 개발했지만 이 질의 응답 시스템을 곧바로 <제퍼디!>에 적용할 수는 없었기 때문에 페루치의 팀은 <제터디!>에서 시합을 할 수 있도록 한 달 동안 질의 응답 시스템을 전환하는 작업을 했다. | 하지만 4명으로 구성된 팀이 6년에 걸쳐 질의 응답 시스템을 개발했지만 이 질의 응답 시스템을 곧바로 <제퍼디!>에 적용할 수는 없었기 때문에 페루치의 팀은 <제터디!>에서 시합을 할 수 있도록 한 달 동안 질의 응답 시스템을 전환하는 작업을 했다. | ||
− | + | ---- | |
*'''시스템을 평가할 기준 ''' | *'''시스템을 평가할 기준 ''' | ||
− | + | ---- | |
<제퍼디!>의 팬들은 그동안 방영된 <제퍼디1>의 문제와 답을 수집해 놓은 웹 사이트를 만들었고, 여기에서 문제에 대한 상세한 정보를 찾을 수 있다. | <제퍼디!>의 팬들은 그동안 방영된 <제퍼디1>의 문제와 답을 수집해 놓은 웹 사이트를 만들었고, 여기에서 문제에 대한 상세한 정보를 찾을 수 있다. | ||
156번째 줄: | 156번째 줄: | ||
---- | ---- | ||
* '''문제분석''' | * '''문제분석''' | ||
− | + | ---- | |
문제 분석 단계에서 왓슨의 목표는 문제를 정보의 조각으로 분해하는 것이다. 이를 나중에 파이프라인에서 답변을 찾아내거나 답변에 점수를 매길 때 활용하기 위해서이다. 다른 단계와 마찬가지로 문제 분석 단계는 NLP (natural language processing,자연어 처리) 분야에 크게 의존했다. NLP는 왓슨에게 단서를 구성하는 단어로부터 뭔가 의미 있는 정보를 이끌어 낼 수 있는 능력을 주었다. 왓슨은 NLP를 사용해서 단서를 구성하는 단어를 발견하고, 단서에서 이름과 장소를 찾아 내고, 단서에서 문장 구조도 (sentence diagram) 를 만들어 냈다 | 문제 분석 단계에서 왓슨의 목표는 문제를 정보의 조각으로 분해하는 것이다. 이를 나중에 파이프라인에서 답변을 찾아내거나 답변에 점수를 매길 때 활용하기 위해서이다. 다른 단계와 마찬가지로 문제 분석 단계는 NLP (natural language processing,자연어 처리) 분야에 크게 의존했다. NLP는 왓슨에게 단서를 구성하는 단어로부터 뭔가 의미 있는 정보를 이끌어 낼 수 있는 능력을 주었다. 왓슨은 NLP를 사용해서 단서를 구성하는 단어를 발견하고, 단서에서 이름과 장소를 찾아 내고, 단서에서 문장 구조도 (sentence diagram) 를 만들어 냈다 | ||
191번째 줄: | 191번째 줄: | ||
---- | ---- | ||
*'''왓슨의 문장 해석 방법''' | *'''왓슨의 문장 해석 방법''' | ||
− | + | ---- | |
왓슨은 단서를 펙스트 파일 형식으로 전달받았다. 왓슨이 텍스트 파일을 열어 인지할 수 있는 것은 정렬된 문자열뿐이었으며, 이 문자열을 이해하기 위해 자연어 처리 기법을 사용했다. | 왓슨은 단서를 펙스트 파일 형식으로 전달받았다. 왓슨이 텍스트 파일을 열어 인지할 수 있는 것은 정렬된 문자열뿐이었으며, 이 문자열을 이해하기 위해 자연어 처리 기법을 사용했다. | ||
218번째 줄: | 218번째 줄: | ||
왓슨이 정보에 이름을 붙이는 과정을 끝내고 나면 단서에 대한 옳은 답을 찾기 위한 매우 힘든 과정이 남아 있다. 이를 위해서 왓슨은 흔히 생각할 수 있는 데이터 소스를 일부 활용하기도 했다. 예를 들면, 사전, 지도, 영화 데이터베이스, 심지어 위키피디아까지도 사용했다. 다음 장에서 살펴보겠지만, 왓슨은 인간과는 아주 다른 방식으로 이러한 데이터 소스를 활용했다. | 왓슨이 정보에 이름을 붙이는 과정을 끝내고 나면 단서에 대한 옳은 답을 찾기 위한 매우 힘든 과정이 남아 있다. 이를 위해서 왓슨은 흔히 생각할 수 있는 데이터 소스를 일부 활용하기도 했다. 예를 들면, 사전, 지도, 영화 데이터베이스, 심지어 위키피디아까지도 사용했다. 다음 장에서 살펴보겠지만, 왓슨은 인간과는 아주 다른 방식으로 이러한 데이터 소스를 활용했다. | ||
+ | ---- | ||
======'''<제퍼디!>의 답 마이닝하기'''====== | ======'''<제퍼디!>의 답 마이닝하기'''====== |
2020년 4월 14일 (화) 13:10 판
Netflix의 Cinematch
요구사항
Netflix의 Cinematch에 대한 내용 및 그와 관련해 다루어진 인공지능 기술의 맥락이 무엇인지에 대해 서술할 것. 〔숀 게리시 지음/이수겸 옮김, 『기계는 어떻게 생각하는가』, 이지스퍼블리싱, 2019, 103-152쪽.〕을 기본 원고로 하여 기초 정보를 정리하되, 웹에서 추가적인 정보(텍스트, 이미지, 동영상 등)를 찾아서 보완할 것. |
과제원고 : 김웅기, 김태형, 장민주
"넷플릭스"란 무엇인가?
넷플릭스
- 1997년 설립, 비디오와 DVD 대여 사업으로 시작해 현재는 온라인 스트리밍 서비스를 제공하고 있다. 2019년 기준 전 세계 동영상 스트리밍 시장 점유율 30%의 대형 미디어 회사이다.
- 고객의 이용 패턴 등 빅데이터를 적극 활용한다. 영화 감상 패턴을 분석하여 영화를 추천하는 등의 서비스가 빅데이터 활용의 대표적인 예시이다.
넷플릭스의 서비스에 대해서 간단히 설명한 동영상[1]
"넷플릭스 프라이즈"는 무엇인가?
넷플릭스 프라이즈는 넷플릭스에서 2006년부터 3년간 주최한 시네매치의 성능 개선 대회이다. 시네매치는 넷플릭스에서 자체 개발한 영화 추천 알고리즘으로, 더이상 성능을 개선하기 힘들 것으로 판단되자 100만 달러를 걸고 넷플릭스 프라이즈를 개최했다. 해당 대회의 우승 조건은 시네매치의 성능을 10% 이상 향상시키는 것이었다.
100만 달러에 달하는 상금에 대해 우려의 목소리가 있었으나, 넷플릭스 CEO 리드 헤이스팅스는 영화 추천 알고리즘이 10% 이상 개선되었을 때 얻을 이익이 상금을 상회할 것이므로 문제가 되지 않을 것이라 답변했다.
넷플릭스 프라이즈는 "왜" 필요했는가?
2020년 현재 넷플릭스가 비디오 스트리밍 서비스를 주력으로 하는 것과는 달리, 2000년대 중반 당시 넷플릭스는 주로 우편을 통한 미국 내 DVD 대여 서비스를 제공했다. 우편 대여 서비스의 가장 큰 단점은 고객까지의 배송 기간이 길다는 것이었다. 더욱이 고객 변심으로 영화를 변경하거나, 도착한 후에 고객의 취향에 맞지 않을 경우 교환에 드는 시간만큼 기간이 연장되었다. 일반적인 비디오 대여점의 경우에는 신작이나 유명 영화를 추천 매대에 진열하는 식으로 영화 변경이나 취향에 맞지 않을 경우를 방지하였으나, 보유 영화의 70%가 독립 영화 내지 고전 영화로 이루어진 넷플릭스에서는 이러한 전략을 사용하기 어려웠다.
영화 추천 알고리즘인 시네매치는 수많은 비인기 타이틀, 긴 대기 시간이라는 악조건을 극복하기 위한 넷플릭스의 전략이었다. 추천한 영화를 본 고객이 만족하지 못한다면 그대로 서비스를 해지할 확률이 상승할 것이었다. 때문에 시네매치의 성능을 개선하는 것은 곧 넷플릭스의 향후 수익을 결정하는 주요한 과업이었다. 다행히 넷플릭스에게는 1998년 창업 이후부터 2005년 당시까지 고객 별점 데이터가 누적되어 있었다. 이는 시네매치의 개선을 위한 최고의 재료였다. 넷플릭스 프라이즈는 이 데이터를 "어떻게" 사용해야 할 지 알아내기 위한 시도였다.
넷플릭스 프라이즈가 제시한 과제
상술하였듯, 넷플릭스 프라이즈의 목표는 시네매치의 성능을 10% 이상 개선하는 것이었다. 이를 달성하는 팀에게는 100만 달러의 상금이 지급될 것이었으며, 이를 달성하지 못하더라도 매년 중간 목표치에 도달하는 팀 중 1위에게는 5만 달러의 '프로그레스 프라이즈' 상금이 약속되었다. 넷플릭스 프라이즈가 개최된 첫 해, 20,000여개의 팀이 등록되었으며 2,000여개의 팀이 알고리즘을 제출하였다.
대회에서 참가자들에게 제시된 과제는 명확했다. 참가자들은 1998년부터 2005년까지의 데이터를 바탕으로 특정 고객이 특정한 날, 특정 영화에 매긴 평점을 예측해야 했다. 넷플릭스는 예측 값과 실제 값의 평균 제곱 오차를 계산하여 각 팀이 개발한 알고리즘의 성능을 평가하고 그 순위를 발표했다.
넷플릭스 프라이즈의 진행(1년차)
넷플릭스 프라이즈에서 초기에 두각을 나타낸 팀들은 대부분 데이터 분석에 전문성을 지닌 참가자들로 구성되어 있었다. AT&T 연구소 소속 연구원들로 구성된 '벨코' 팀은 두 가지 원리를 결합해 기본적인 추천 엔진을 설계했다. 이들이 초기 엔진 설계에 활용한 원리는 다음과 같다.
- E.T. 효과 : 영화 자체가 얼마나 인기 있는지만 계산에 반영한다. 만일 천만 관객을 기록한 <해운대>와 천 명도 보지 않은 독립 영화를 비교한다면 <해운대>가 무조건 더 높은 점수를 받게 되는 것이다.
- 스크루지 효과 : 이용자들이 영화 평점을 매길 때 보이는 개인적 경향을 분석하여 반영한다. 만일 점수를 전체적으로 후하게 주는 사람이라면 다음에 평가할 때도 후하게 줄 확률이 높고, 박하게 주는 사람이라면 다시 박하게 줄 확률이 높다고 예상하는 것이다.
상술한 두 효과를 활용한 추천 엔진은 효과적이었으나 큰 문제를 가지고 있었다. 바로 고객의 개별성을 따지지 않고 무조건 유명하고 인기 있는 영화를 추천한다는 것이었다. 해당 엔진으로는 개인화된 추천 결과를 도출할 수 없었다. 만일 이용자가 B급 영화, 컬트 영화, 고전 영화, 어린이 영화 등을 좋아한다고 해도 무조건 유명하고 평점이 높은 영화를 추천했던 것이다. 즉, A 장르를 좋아하는 그룹, B 장르를 좋아하는 그룹, A와 B 모두를 좋아하는 그룹, 둘 다 좋아하지 않는 그룹 등 이용자들의 개인적 취향을 고려하는 터미네이터 효과를 만족시킬 필요가 있었다. - 행렬 인수 분해(matrix factorization) : 참가자들은 넷플릭스 측에서 제공한 데이터가 사실상 중복된 정보를 다수 가지고 있는 거대한 행렬임에 주목했다. 중복된 정보는 개인화된 추천 기능을 제공하기 위한 기반이었다. 단순히 생각하자면, 공포 장르를 선호하는 이용자에게는 공포 장르를 추천했을 때 선호도가 높을 것이고, 코미디를 즐겨 보는 이용자는 코미디 장르를 선호할 것이라는 판단에서 비롯한 것이라 할 수 있다. 그러나 이러한 분석이 완전할 수는 없다. 같은 장르도 여러 분야로 구분될 수 있다는 점, 선호하는 장르에도 우선순위가 있다는 점, 장르가 복합된 영화가 존재한다는 점 등이 해당 분석 방식의 신뢰도를 낮춘다.
- 이러한 문제점을 해결하며 행렬 인수 분해를 적용하기 위해 두 가지의 기반 데이터가 필요하다. 1)영화가 속하는 장르[2]와 2)넷플릭스 이용자의 장르 선호도가 바로 그것이다.
- 행렬 인수 분해는 두 가지의 데이터에 기반하여 작동한다. 우선 <쥬라기 공원>이 속한 장르(SF, 모험)에 1이라는 값을, 속하지 않은 장르에 0이라는 값을 부여한다.< 그리고 스필버그 감독의 대략적인 선호도를 분석해 장르마다 각각의 가중치를 준다. 장르별로 부여된 값과 선호도 가중치를 곱한 후, 그 결과를 합산하면 스필버그 감독이 <쥬라기 공원>에 가질 선호도를 계산할 수 있다.
그러나 위의 계산법에는 치명적인 단점이 있다. 영화의 장르 구분이 데이터에서 도출된 것이 아닌, IMDB이라는 외부 데이터 베이스를 통해 분류된 것이라는 사실이다. 참여자들은 이를 개선하기 위해 다음과 같은 방법을 선택했다.
- 행렬 인수 분해를 개선한 방법 : 외부에서 분류한 장르 구분은 넷플릭스 이용자들이 받아들이고 있는 장르와 어쩔 수 없는 차이를 가지고 있다. 이 때문에 참여자들은 제공된 데이터를 통해 가공의 장르를 만들고, 가공의 장르에 대한 이용자들의 선호도를 교차하여 검증하면 이전의 방식보다 더 확실한 예상치를 얻을 수 있다. 즉, 데이터로부터 장르와 장르에 대한 선호도를 번갈아 재학습하는 과정을 통해 정확도를 높인다는 것이다.
한편, 기능 향상률이 높은 팀들은 여러 개의 모델을 활용해 평균값을 내는 방식을 채용했다.
- 1년차 결산 : 상위 팀들은 약 8%의 성능 향상을 달성했다. 10%를 달성하지 못했기에 넷플릭스 프라이즈의 수준에는 도달하지 못하였으나, 1위 팀에겐 프로그레스 프라이즈가 주어지기 때문에 2위 그래비티 팀과 3위 공룡행성 팀은 1위 벨코 팀을 치열하게 추격했다. 두 팀은 끝내 서로 결합하였으나 0.05%의 근소한 차이로 프로그레스 프라이즈를 수상한 것은 벨코 팀이었다.
- 벨코 팀은 프로그레스 프라이즈 수상으로 5만 달러를 받았으나, 규칙상 자신들의 알고리즘을 타 팀에게 공개해야 했다. 다른 팀들은 1위 팀의 알고리즘을 참고해 자신들의 모델 성능을 향상시킬 수 있었다.
넷플릭스 프라이즈의 진행(2년차)
좋은 결과를 도출하는 구성 요소를 1년차에 거의 모두 발견한 탓에, 참여자들의 성능 향상은 지지부진해졌다. 프로그레스 프라이즈를 수상한 벨코 팀의 경우 첫해에는 매주 평균 0.16%씩 성능을 향상시켰으나 두 번째 해에는 매주 평균 0.02% 향상에 그쳤을 따름이다. 참여자들은 조금 더 세밀한 요소를 고민하기 시작했다.
- <나폴레옹 다이너마이트> : 연구자들은 컬트 영화 <나폴레옹 다이너마이트>에 주목했다. 200만 건 이상의 평점 데이터를 가졌으나 대부분 1점 혹은 5점으로 구성되어 당시까지의 추천 엔진으로는 제대로 된 추천이 불가능한 영화였다. 연구자들은 <나폴레옹 다이너마이트>와 같은 영화의 추천 여부를 결정하기 위해 세 가지의 방법을 떠올렸다.
- 1) 비슷한 영화 추천 - 예를 들어 <신데렐라>를 선호하는 이용자가 아직 <잠자는 숲 속의 미녀>의 평점을 매기지 않았다면 해당 영화를 추천하는 방식이다.
- 2) 비슷한 사용자 추천 - 만일 A 지역 사람들이 <백 투 더 퓨처>를 선호한다면, A 지역 사람들과 비슷한 선호도를 가진 사람에게도 <백 투 더 퓨처>를 추천하는 방식이다.
- 3) 사용자가 평점을 매긴 영화 분석 - 어떤 사용자가 <해리포터> 시리즈에 평점을 매긴 적이 있다면, <해리포터와 비밀의 방>을 보지 않았더라도 좋아할 확률이 높다고 추론하는 방식이다.
- 참여자들은 위와 같은 방식으로 암시정보[3]를 취합해 상대 오차를 10% 가까이 감소시켰다.
- 시간에 따른 평점 예측 : 참여자들은 시간에 따라 이용자들의 평점이 다르게 매겨진다는 사실을 발견했다. 영화의 인기 순위는 시간에 따라 변하며, 이용자들이 본 영화의 종류도 시간에 따라 변하기 때문이었다.
- 위의 표는 인기영화 <매트릭스> 1편의 인기도 변화를 10주 단위로 측정한 결과이다. 1999년 출시 이후 꾸준히 감소하던 인기도가 <매트릭스> 2편이 개봉한 2003년에 다시 급등한 것을 볼 수 있다.
- 기타 데이터 : 1년이 넘는 기간 동안 참여자들은 특이한 변수들을 다수 발견했다. 몰아서 매기는 별점은 그 범위가 줄어든다는 것, 제목에 숫자가 들어갔는지의 여부로 영화에 대한 호감도가 영향받는다는 것, 평점을 몰아서 매길 때 오히려 점수가 더 올라가는 영화나 더 내려가는 영화가 존재한다는 것 등이다. 이러한 요소들은 미미하지만 조금 더 정확한 선호도 예상에 도움이 되는 변수임이 밝혀졌다.
- 과적합 : 조금 더 정확한 결과 도출을 위해 모델 하나에 수많은 변수를 추가한 결과, 연구자들은 유연성이 증가되고 성능이 향상된 모델을 가지게 된 것으로 보였다. 그러나 많은 변수가 추가된 모델은 좋은 결과를 보이는 듯 싶지만 실제 성능은 좋지 않은 과적합 양상을 보였다.
- 모델 블렌딩 : 과적합 문제를 해결하기 위해 활용된 것이 단순한 모델 여러 개를 함께 사용하는 방식이다. 벨코 팀의 알고리즘과 논문으로 블렌딩한 모델이 잘 작동한다는 것은 모두 알고 있었고, 그래비티-공룡행성 팀이 서로의 모델을 블렌딩하여 벨코 팀의 프로그레스 프라이즈 수상을 위협한 것 역시 공공연히 알려진 사항이었다.
- 모델 블렌딩은 부스팅을 통해 더 향상되었다. 참여 팀들은 아주 간단한 모델로 평점을 예측하고, 잘못 예측한 평점 결과를 증폭시켜 다음 처리 과정에서는 해당 값을 더 신중하게 처리하도록 조정한다. 이렇게 학습시킨 수십, 수백, 수천 개의 모델들의 평균을 구하면 결과적으로 어떤 다른 모델보다도 더 좋은 결과를 보이게 된다.
- 2년차 결산 : 2년차의 프로그레스 프라이즈 수상을 위한 향상률은 9.43%였다. 하지만 1위를 다투던 벨코와 빅카오스 둘 다 9.43%를 달성하려면 한 달 이상이 더 필요했다. 결국 두 팀은 한 팀이 될 것을 선택했고, 그 결과 9.44%를 겨우 달성해 프로그레스 프라이즈를 수상했다.
넷플릭스 프라이즈의 진행(3년차)
3년차에 들어선 연구 커뮤니티는 모델 최적화, 블렌딩보다 팀을 합치는 것에 관심을 가졌다. 2년차 프로그레스 프라이즈 수상 팀인 ‘빅카오스 안의 벨코’ 팀은 ‘실용이론’ 팀과의 결합으로 ‘벨코의 실용 카오스’ 팀을 구성했고, 1년차 2위 팀인 ‘그래비티와 공룡 연합’ 팀은 ‘그랜드 프라이즈’로 이름을 바꾸었다가 30여 개가 넘는 팀의 집합인 ‘앙상블’ 팀을 꾸렸다. 소수 넷째자리까지 가는 치열한 대결 끝에 20분 먼저 모델을 제출한 벨코의 실용 카오스 팀이 10.06%의 성능 향상으로 넷플릭스 프라이즈를 수상했다.
넷플릭스가 얻은 것은 무엇인가?
여러 해프닝에도 불구하고, 넷플릭스는 「넷플릭스 프라이즈」에서 많은 결과를 얻었다. 첫째, 행렬 인수 분해와 신경망이 주목할 만한 성능 향상을 가져다준다는 것을 발견했다. 둘째, 110만 달러로 최신 연구 자료를 얻을 수 있었다. 기술 측면에서도 수만 개에 달하는 모델이 설계되었으며, 이들의 아이디어가 널리 알려지는 데 공헌한 것으로 판단된다.
참고문헌
숀 게리시 지음/이수겸 옮김, 『기계는 어떻게 생각하는가』, 이지스퍼블리싱, 2019, 103-152쪽.
주석
- ↑ https://www.youtube.com/watch?v=9eqIBoURn94
- ↑ 이 단계에서는 IMDB의 장르 구분에 기초한다.
- ↑ 눈에 보이지 않는 정보를 말한다.
IBM의 Watson
요구사항
IBM의 Watson에 대한 내용 및 그와 관련해 다루어진 인공지능 기술의 맥락이 무엇인지에 대해 서술할 것. 〔숀 게리시 지음/이수겸 옮김, 『기계는 어떻게 생각하는가』, 이지스퍼블리싱, 2019, 268-322쪽.〕을 기본 원고로 하여 기초 정보를 정리하되, 웹에서 추가적인 정보(텍스트, 이미지, 동영상 등)를 찾아서 보완할 것. |
과제원고 : 아슈토시, 이만호, 임연
(내용 작성)
동영상
IBM 왓슨
2011년 1월 <제퍼디!> 역사상 가장 뛰어난 성적을 올렸던 켄제닝스와 브래드 러터는 IBM 연구 팀이 개발한 컴퓨터 프로그램 왓슨을 상대로 시합을 했다.
<제퍼디!Jeopardy!>
알렉스 트레벡 (Alex Trebek) 은 미국의 유명한 TV 퀴즈 쇼 <제퍼디!>의 진행자 이며, 참가자들은 이 퀴즈 쇼에서 고고학, 생물학, 영화를 비롯한 다양한 잡학 상식을 겨룬다. 알렉스가 참가자에게 어떤 문제를 답 형식으로 문제의 단서를 제공하면 참가자는 질문 형식으로 문장을 꾸며 답을 해야 한다.
- 예시:
- 이 사건에는 목격자가 없으며 블랙홀의 경계에서는 어떤 물질도 탈출할 수 없다. (알렉스가 단서를 읽는다 )
- 사건의 지평선이란? (응답자)
컴퓨터가 어떻게 하면 이런 문제에 답을 할 수 있을까? 컴퓨터는 어떤 정보를 알고 있어야 할까? 그 정보를 어떻게 저장하고 있어야 할까? 그 정보를 검색하려면 문제를 어떻게 처리해야 할까? IBM의 연구자들은 연구자들은 단순히 문제를 읽고, 이해하고, 지금까지 알고 있는 내용에서 답을 떠올리는 프로그램을 만드는 것이 아니었다. 왓슨의 프로그래머는 각 단서에 답을 하기 위해 따라가야 할 작업 순서를 왓슨에게 명확히 가르쳐야 했다. <제퍼디!> 이 퀴즈 쇼에서는 사실에 대한 문제를 던진다. 왓슨은 이러한 사실을 데이터베이스에 저장한다. 이러한 사실은 관계 (relation) 라고 하는데 사람, 장소, 사물이 서로 어떻게 연결되어 있는지를 나타낸다. 왓슨은 관계 데이터를 검색하여 데이터베이스에서 단순한 답변을 찾아낼 수 있지만, 데이터베이스에 저장된 데이터와 관련이 있는 문제는 전체 문제의 4분의 1 정도밖에 안 되었다. 게다가 이런 단순한 답변을 검색할 수 있는 문제는 2%에 불과했다. 그렇다면 왓슨은 나머지 98%의 단서에 어떻게 답을 할 수 있었을까?
DeepQA
IBM은 <제퍼디!>에 프로텍트에 착수했고 프로젝트가 진행됨에 따라 여러 내부 문제에 직면해야 했지만 데이비드 페루치 (David Ferrucci) 가 이 프로그램을 진행할 것을 제안하였다.
하지만 4명으로 구성된 팀이 6년에 걸쳐 질의 응답 시스템을 개발했지만 이 질의 응답 시스템을 곧바로 <제퍼디!>에 적용할 수는 없었기 때문에 페루치의 팀은 <제터디!>에서 시합을 할 수 있도록 한 달 동안 질의 응답 시스템을 전환하는 작업을 했다.
- 시스템을 평가할 기준
<제퍼디!>의 팬들은 그동안 방영된 <제퍼디1>의 문제와 답을 수집해 놓은 웹 사이트를 만들었고, 여기에서 문제에 대한 상세한 정보를 찾을 수 있다.
IBM팀은 이 웹 사이트를 이용하여 과거 <제퍼디!> 우승자의 성적 통계를 냈다. <제퍼디!>의 우승자는 버저를 얼마나 많이 눌렀는지, 우승자가 버저를 눌렀을 때 정답률은 얼마나 되었는지, 페루치의 팀은이 두 가지 수치를 이용하여 과거 <제퍼디!> 우승자가 얼마나 정확히, 그리고 얼마나 많이 답변을 시도했는지 보여주는 분산 (scatter) 차트를 만들었다. 그들은 이 차트를 "승자의 구름" 이라고 불렀으며 왓슨의 평가를 위한 기준 자료로 활용했다. 왓슨의 성적이 이 구름 안으로 들어간다면, 이는 곧 왓슨의 성적이 인간 우승자의 성적과 견줄 만한 수준이 된다는 것을 의미했다. 왓슨의 성적이 이 구름을 넘어선다면 인간을 이길 수 있는 것이다.
(시스템을 평가해보니까 엉망이었다......)
그리하여 페루치의 팀은 학계 최신 방법론을 도입한 실험을 시작 했다. 몇 달 동안 실험을 마친 후 마침내 쓸 만한 시스템 구조를 찾아내 DeepQA라는 이름을 붙였다. DeepQA의 접근 방식은 단순했다. 다른 질의 응답 시스템과 마찬가지로 [오른쪽 그김]과 같은 명확한 단계를 거쳐 해답에 도달하는 방식이다. 문제를 분석하고 검색 엔진을 사용해 답변 후보를 물색한 후 답변을 조사하고 시스템이 찾아낸 근거를 바탕으로 이 답변에 점수를 매기는 식이다. 먼저 이 파이프라인[1]의 첫 번째 단계인 왓슨의 문제 분석 단계를 살펴보겠다.
- 문제분석
문제 분석 단계에서 왓슨의 목표는 문제를 정보의 조각으로 분해하는 것이다. 이를 나중에 파이프라인에서 답변을 찾아내거나 답변에 점수를 매길 때 활용하기 위해서이다. 다른 단계와 마찬가지로 문제 분석 단계는 NLP (natural language processing,자연어 처리) 분야에 크게 의존했다. NLP는 왓슨에게 단서를 구성하는 단어로부터 뭔가 의미 있는 정보를 이끌어 낼 수 있는 능력을 주었다. 왓슨은 NLP를 사용해서 단서를 구성하는 단어를 발견하고, 단서에서 이름과 장소를 찾아 내고, 단서에서 문장 구조도 (sentence diagram) 를 만들어 냈다
문제 분석 단계에서 왓슨의 가장 중요한 임무는 단서로 제시된 문장에서 실제 문제가 무엇인지를 구체적으로 요약하는 것이다.예를 들면:
간에서 염증을 일으키는 B형 이것은 사람끼리 접촉하여 전파 된다.
It’s the B form of this inflammation of the liver that’s spread by some kinds of personal contact.
단서가 시사하는 대상을 요약한 문구는 ‘간에서 염증을 일으키는 이것 (this inflammation of the liver) ’이다. 왓슨의 연구원들은 이 문구를 ‘초점 (focus) ’이라고 불렀다. 초점은 단서의 일부분이며 초점의 문구를 답으로 대체하면 단서는 사실을 구성하는 문장이 되었다.
단서에서 초점 ‘이것’을 ‘간염’으로 대체하면 이런 문장이 된다. 초점과 답변은 볼드체로 표시했다.
B형 간염은 사람끼리 접촉하여 전파된다.
It’s the B form of hepatitis that’s spread by some kinds of personal contact.
이제 이 단서는 사실을 나타내는 문장이 되었다.
왓슨이 문제에서 추출할 수 있는 정보의 유형이 한 가지 더 있는데 이는 답변 유형을 설명하는 단어나 문구였다. 이 단서는 무엇에 관해 묻고 있는가? 왓슨은 이러한 정보를 사용해서 답변 후보를 물색한 후 나중에 파이프라인에서 답변에 점수를 매겼다.
이 단계에서 왓슨이 답변 유형에 대한 정보를 저장해 두었다가 이후 단계에서 답변 후보를 선별하고 답변의 범위를 좁히는 데 사용한다. 예를 들어, 만약 문제가 질병에 대한 것이었다면, 왓슨은 이후의 단계에서 실제로 질병과 관련된 답변에 높은 가중치를 주고 질병의 증상과 관련된 답변에는 낮은 가중치를 주는 방식으로 답변의 범위를 좁힐 수 있을 것이다.
가끔 왓슨에게 제시된 단서가 몇 안 되는 명사나 동사로 구성된 문구일 경우가 있다. 이런 종류의 단서 중에는 단어 하나가 단서인 경우도 있다. 이렇게 답변 유형을 찾을 수 없는 경우 왓슨은 답변 유형을 찾기 위해 단서의 범주를 검색한다. 예를 들어, 단어 ‘콜슬로’ 하나가 단서 일 경우, ‘콜슬로’ 범주는 주 재료로 들어가는 채소였으므로 이 경우 왓슨은 답변 유형을 채소로 지정한 뒤 나중에 이 정보를 사용하여 옳은 답을 찾을 수 있었다. 그리고 이 단서의 답은 ‘양배추’였다.
그렇게 왓슨은 단서를 분석하여 유용한 정보라면 무엇이든지 뽑아냈다. 이런 정보 중 일부는 패턴 매칭 (pattern matching) 을 사용해 찾아 냈다.
- 왓슨의 문장 해석 방법
왓슨은 단서를 펙스트 파일 형식으로 전달받았다. 왓슨이 텍스트 파일을 열어 인지할 수 있는 것은 정렬된 문자열뿐이었으며, 이 문자열을 이해하기 위해 자연어 처리 기법을 사용했다.
이 문자열을 왓슨에게 이해시키는 첫 번째 방법은 단서를 문자열이 아닌 일련의 단어로 해석하는 것이다. 일단 왓슨이 단서를 여러 단어로 받아들이고 나면 이를 처리하기 위해 여러 흥미로운 기법을 동원했다. 이들 기법 중 가장 중요한 것은 단서의 구조에서 문장 구조 도를 만들어 내는 것이다. 컴퓨터는 파싱 (parsing)이라는 과정을 거쳐 문장 구조도를 생성한다. 이 과정의 결과물은 보통 파스 트리 (parse tree) 라고 한다.
(▲ 오른쪽 그림 문장 파스 트리의 예시 ‘Milorad cavic almost upset this man’s perfect 2008 Olympics, losing to him by one hundredth of a second.’라는 문장의 파스 트리.
왓슨이 문장을 파싱하는 방식은 이 그림과 일치하지는 않지만 기본 아이디어는 같다.)
문장 구조도가 만들어지고 나면 왓슨은 이 구조도를 사용해 좀 더 흥미로운 방식으로 문제 분석을 수행할 수 있었다. 우선 왓슨이 어떻게 파스 트리를 만드는지 간략히 살펴보겠다. 컴퓨터가 파스 트리를 만들 때 사용하는 탐색 알고리즘은 시내 주행에서 경로를 계획할 때 보스가 사용했던 방식과 닮은 점이 많다. 보스가 지도에서 최적의 경로를 탐색하기 위해 탐색 알고리즘을 사용한다면, 왓슨의 파서 (parser)는 문장의 단어들을 문법에 맞게 트리 형태로 구성하는 최적의 경로를 찾기 위해 탐색 알고리즘을 사용한다. 오늘날의 파서는 단어 간의 관계와 문장 요소에 대한 통계를 사용해서 가장 적절한 파스 트리를 찾아낸다.왓슨의 파서는 모든 단어가 기본 요고가 될 때까지 문장을 분석할 수 있다. 문장 파서는 이러한 규칙을 사용한다. 문장을 파싱하기 위해 파서는 문법을 사용해 문장을 분해할 최적의 방법을 탐색하고, 문장을 더 이상 작은 단위로 분해할 수 없을 때까지 이 작업을 계속한다.
왓슨은 이러한 문장 구조도를 생성할 수 있지만 문장의 의미는 이해할 수 없었다. 그렇다면 프로그래머는 문제를 보지도 않고 어떻게 해석할 수 있는 걸까? 왓슨 개발자가 왓슨이 스스로 문장 구조도를 탐색하여 단서에서 의미 있는 정보를 추출하도록 다양한 규칙을 직접 만들어 넣었다.
왓슨은 이러한 규칙을 사용하여 DeepQA 파이프라인을 통해 파스 트리를 조사하는 방식으로 문제 분석 단계를 시작할 수 있었다. 왓슨은 파스 트리를 사용하여 단서의 초점을 찾아냈다. 다시 말하면, 초점은 단서 안에 존재하는 문구로 문제가 정확히 무엇을 묻고 있는지를 나타낸다. 초점을 찾기 위해 왓슨은 ‘이것 (this) ’ 또는 ‘이것들 (these) ’로 표현된 명사구를 검색하는 등의 간단한 규칙을 사용했다.
(▲ 오른쪽 그림: 왓슨이 문제 분석 단계에서 단서로부터 찾아낸 가장 중요한 정보 중 일부)
왓슨이 정보에 이름을 붙이는 과정을 끝내고 나면 단서에 대한 옳은 답을 찾기 위한 매우 힘든 과정이 남아 있다. 이를 위해서 왓슨은 흔히 생각할 수 있는 데이터 소스를 일부 활용하기도 했다. 예를 들면, 사전, 지도, 영화 데이터베이스, 심지어 위키피디아까지도 사용했다. 다음 장에서 살펴보겠지만, 왓슨은 인간과는 아주 다른 방식으로 이러한 데이터 소스를 활용했다.
<제퍼디!>의 답 마이닝하기
나가기
주석
- ↑ 파이프라인(pipeline): 데이터 처리 단계의 출력이 다음 단계의 입력으로 이어지는 형태로 연결"
DeepMind의 AlphaGo
요구사항
DeepMind의 AlphaGo에 대한 내용 및 그와 관련해 다루어진 인공지능 기술의 맥락이 무엇인지에 대해 서술할 것. 〔숀 게리시 지음/이수겸 옮김, 『기계는 어떻게 생각하는가』, 이지스퍼블리싱, 2019, 323-384쪽.〕을 기본 원고로 하여 기초 정보를 정리하되, 웹에서 추가적인 정보(텍스트, 이미지, 동영상 등)를 찾아서 보완할 것. |
과제원고 : 길혜빈, 윤석만, 임예찬
(내용 작성)