여기는 스포츠가 공용어입니다.


❝스포츠에서 유일한 것이 승리라면 이기는 그 순간 다시 경합을 벌여야겠다는 욕구는 사라질 것이다. 그렇다면 마이클 조던과 로저 클레멘스가 나이 마흔에 계속 경쟁을 벌였던 사실을 어떻게 이해할 것인가.❞

─ '소크라테스 야구장에 가다' 中에서


네, 이럴 줄 알았습니다. 한국야구위원회(KBO)가 퓨처스리그(2군) '로봇 기사' 생산 사업자를 구하지 못해 애를 먹고 있습니다. 먼저 KBO에서 16일 발표한 보도자료 일부를 보시죠.


KBO는 지난 4월 25일(수) 해당 사업에 대한 입찰을 실시한 바 있지만, 기술성과 전문성을 보다 면밀히 파악하고 진행하기 위해 5월 10일(목) 사업설명회를 개최한데 이어 입찰 기간을 늘려 다시 실시하기로 했다.


이번 입찰을 통해 선정되는 업체는 KBO 퓨처스리그 경기 결과 기사를 자동으로 생산하는 로봇 알고리즘을 개발하고, 퓨처스리그 기록을 그에 맞는 데이터로 입력해 기사를 작성하는 사업을 담당하게 된다.


이 보도자료 제목은 'KBO 퓨처스리그 로봇기사 생산 사업자 선정 입찰 기간 연장'. 한 마디로 자동으로 기사를 생산할 수 있는 업체를 구하지 못해 마감을 늘리고 했다는 이야기입니다. 


사실 로봇은 야구 기사를 정말 잘 씁니다. 아래 기사 두 개를 보고 사람이 쓴 기사를 알아 맞춰 보실래요?


ⓢ10일 마산구장에서 열린 한화와 NC와의 2016 타이어뱅크 KBO리그에서 한화가 NC와의 팽팽한 경기 끝에 2:1로 승리했다. 양 팀 투수들의 활약이 돋보이는 경기였다. 투수진이 NC를 1점으로 꽁꽁 묶으며 오늘 경기의 승자가 되었다. 오늘 경기에서 한화는 이번 시리즈 NC를 상대로 루징시리즈을 기록했고 시즌 순위는 현재 10위, 승률 0.25 리그 최하위이다. 한편 NC는 3연승에서 멈췄고 순위는 6위로 하락했으며 2안타 3볼넷 1타점 1득점으로 다소 아쉬운 플레이를 보여줬다.


②한화 이글스가 10일 마산구장에서 열린 2015 타이어뱅크 KBO리그 NC 다이노스와의 방문 경기에서 2-1로 이겼다. 한화 선발투수 마에스트리는 6이닝 2피안타 3볼넷 5탈삼진 1실점으로 팀의 승리를 이끌었다. 마에스트리는 한화 선발진 가운데 첫 선발승을 거뒀다. 마에스트리의 호투 속에 한화는 1회 초 선두 타자 정근우가 김태균의 적시타로 홈을 밟았고, 1-1로 맞선 5회 초 로사리오의 2루타로 득점했다. 4연패에서 탈출한 한화(2승 6패)는 시즌 두 번째 승리를 거뒀다.


정답은 ②입니다. 맞히셨나요? 이번에는 다음 기사를 사람이 썼는지 아니면 로봇이 썼는지 맞혀보세요.


◇프로야구 최하위 한화가 4연패에서 탈출했다. 한화는 10일 마산구장에서 안방 팀 NC에 2-1 신승을 거뒀다. 한화는 안타 6개, 볼넷 5개를 얻어내고도 2득점에 그쳤지만 상대 타선을 단 2안타(4볼넷)으로 막은 덕에 승리할 수 있었다.


1회초 한화는 선두타자 정근우(34)가 중전 안타를 치고 나가면서 득점 기회를 잡았다. 2번 타자 장민석(34)이 희생번트를 성공시키면서 1사 2루. 3번 타자 이성열(32)이 2루수 앞 땅볼로 물러나는 사이 정근우가 3루를 밟았다. 4번 타자 최진행(31)이 볼넷을 얻어내 2사 1, 3루가 된 상태에서 5번 김태균(34)이 타석에 들어서 좌중간 적시타를 때려내며 정근우를 불러 들였다. 


3회말 NC는 동점을 만들었다. 2아웃 상황에서 땅볼을 때린 2번 타자 이종욱(36)이 투수 실책을 틈타 2루에 안착했다. 이어 나성범(27)이 볼넷을 골라내 2사 1, 2루가 됐고 테임즈(30)가 중견수 앞 적시타로 이종욱을 불러 들였다. 다음 타자 박석민(31)이 삼진으로 물러나면서 NC는 경기를 뒤집는 데는 실패했다.


5회초 한화가 결승점을 뽑았다. 선두 타자 장민석이 우전 안타로 출루에 성공한 뒤 다음 타자 이성열 타석 때 상대 투수 폭투를 틈타 2루에 도달했다. 그 뒤 삼진과 볼넷, 2루수 앞 땅볼이 나오면서 2사 1, 3루가 됐다. 이때 타석에 들어선 외국인 타자 로사리오(27)가 2루타를 치면서 장민석을 불러들여 결승 타점을 올렸다.


7회말 NC는 2사 2, 3루 찬스를 잡았지만 박민우(23)가 1루수 앞 땅볼로 물러나며 경기를 원점으로 돌리는 데 실패했다.


8회와 9회에는 NC는 타선이 한화 필승조 권혁(33)과 정우람(31)에 막혀 삼자 범퇴로 물러나면서 끝내 경기를 내주고 말았다. 


이날 한화 선발로 나선 외국인 투수 마에스트리(31)는 올 시즌 한화 선수로는 처음으로 선발승을 기록했다. 마에스트리는 6이닝을 던지면서 안타 2개, 볼넷 3개를 묶어 1실점으로 NC 타선을 막아냈다. 자유계약선수(FA) 자격으로 한화 유니폼을 입은 정우람은 이적 후 첫번째 세이브를 기록했다.


이번에 정답은 '사람'입니다. 지금까지 소개한 기사는 2016년 4월 18일자 동아일보에 나간 '[문화 실험실]놀랍다, 로봇기자가 이런 표현까지 쓰다니…'에서 가져온 것. 이 기사를 쓴 조종엽 기자는 당시 273명을 대상으로 이 두 문제를 포함해 총 여섯 문제를 두고 퀴즈를 진행했는데 정답률은 45.9%로 절반이 되지 않았습니다. 


저는 이 여섯 문제 모두 정답을 맞혔습니다. 잘난 체는 하려는 건 물론 아닙니다. 제가 정답을 다 맞힐 수 있던 건 점수 표기법 때문입니다. 동아일보 '스타일북'(기사에 어떤 표현을 어떻게 써야 한다고 정의한 책)은 운동 경기 점수를 '#-#'로 표현하라고 규정하고 있는데 로봇은 '#:#'로 썼거든요. 게다가 사실 저 위에 있는 한화-NC 경기 기사는 입사 동기인 조 기자 부탁으로 제가 샘플을 만들어 준 겁니다. 이런 특징을 알지 못하면 정답을 알아채기 힘든 만큼 로봇 기자는 사람과 비슷하게 기사를 쓰는 겁니다.


지금까지 등장한 로봇을 만든 건 이준환 서울대 언론정보학과 교수 연구팀입니다. 이밖에 KAIST에도 야구 로봇 기사 생산을 연구하는 팀이 있습니다.  그런데도 KBO에서 로봇 기사를 생산할 업체를 찾지 못하는 이유는 뭘까요? 이들이 학교에 매여 있기 때문에 업체를 차리지 못해서?


물론 그럴 확률이 전혀 없다고 할 수는 없습니다. 그래도 아마 '대한민국에 2군 경기 기사를 쓸 수 있는 로봇이 없기 때문'이 정답에 좀 더 가까울 겁니다. (이 교수는 네오위즈 최고정보책임자·CIO 출신이기도 합니다.) 여기서 방점을 찍을 수 있는 건 '2군 경기'입니다.


로봇 기자를 만들고 싶어하는 이들이 야구 기사에 도전하는 이유는 간단합니다. 야구는 경기 중 어떤 장면이 중요한지 숫자로 확인할 수 있기 때문입니다. 세이버메트릭스(야구 통계학)에서 '레버리지 인덱스(Leverage Index)'라고 부르는 지표가 바로 이를 알려줍니다.


11년 전(헉!)에 쓴 포스트에서 레버리지 인덱스가 뭔지 설명한 부분을 인용하면:


평균 득점 4.5점인 구장에서 홈팀이 1:0으로 이기고 있는 상황에서 원정팀이 9회초 공격을 시작한다. 이 때 홈팀의 WP는 .838이다. 홈팀이 이 경기에서 승리를 거둘 확률이 83.8%라는 이야기다.


이때 원정팀 선두 타자가 아웃으로 물러난다면 홈팀의 WP는 .072가 늘어 .911이 된다. 현대 야구에서 타자는 평균적으로 플레이 한번에WP .027을 변화시킨다. 그럼 이 순간 아웃 카운트 하나는 평소에 비해 약 2.7배 중요하다고 말할 수 있다. (.072 ÷ .027 ≒2.7)


이때 LI는 (당연히) 2.7입니다. 이 블로그를 꾸준히 읽어오신 분은 아시겠지만 제가 곧잘 그렸던 WP(Win Probability·승리 기댓값) 그래프 아래에 들어 있는 막대 그래프가 바로 LI를 나타냅니다.



그러면 2군 경기는 이런 그래프를 그릴 수 없는 걸까요? 물론 아닙니다. 어떤 야구 경기든지 직접 두 눈으로 보지 못했다고 해도 '기록지'만 있으면 이 그래프를 그릴 수 있습니다. 그건 매 시점마다 WP 계산이 가능하다는 뜻이고, WP를 계산할 수 있으면 당연히 LI도 구할 수 있습니다. 그런데 왜 2군 경기는 못 그릴까요? 


로봇 기자 만들기 같은 걸 다루는 분야를 흔히 '기계학습(Machine Learning)'이라고 부릅니다. 기계학습 알고리듬에서는 기본적으로 컴퓨터에게 공부시킬 자료가 필요합니다. 로봇 야구 기자는 보통 문자 중계를 가지고 경기 내용을 학습합니다. 이를 토대로 경기 내용을 파악한 뒤 미리 공부한 기사 작성법에 따라 기사를 완성하는 것.


1군 경기는 기록원 두 명이 기록을 담당합니다. 한 명은 손으로 기록지를 쓰고 한 명은 컴퓨터에 입력하는 방식. 이때 컴퓨터로 입력한 자료가 변환 과정을 거쳐 문자 중계가 되는 구조입니다. 이 역시 완전 자동은 아니지만 '어차피 해야 하는 일'을 하는 과정에서 문자 중계가 부산물로 나오기에 저렇게 썼습니다.


2군 경기에는 기록원이 한 명만 있습니다. 이 기록원이 경기 중간 중간 여유가 있을 때 기록지를 사진으로 찍어서 KBO 공식 통계 업체 스포츠투아이㈜로 보내면 이 회사 직원이 이를 눈으로 확인해 문자 중계로 바꿉니다. 2군 경기 문자 중계가 실시간이 아닌 건 이런 이유 때문입니다.


실시간이 아니라고 해도 어차피 로봇 기자가 학습 소재로 쓸 수 있다는 건 물론 똑같습니다. 그런데 사람이 기록지를 확인해 가면서 문자 중계로 바꿀 시간에 차라리 기사를 쓰는 게 낫지 않을까요? 실제로 야구 기자가 스트레이트 기사(어떤 팀이 어떤 팀을 어떻게 이겼고 누가 어떤 활약을 펼쳤다고 쓰는 기사)를 쓰는 과정이 바로 이렇습니다.  


KBO가 원하는 게 기계학습 테스트 베드가 되는 건 아닐 테니, 아마 저렇게 중간에 사람이 들어가는 과정을 빼고 싶을 겁니다. 그러면 기사를 쓸 줄 아는 능력 뿐 아니라 이미지를 인식하는 기술도 필요합니다. 컴퓨터가 야구 기록지를 이해하게 만들어야 하니까요.


이미지 인식 분야도 관련 업계에서는 연구를 꽤 진행한 상태. 다만 아직 야구 기록지를 읽고 이해할 수 있는 로봇은 나오지 않은 모양입니다. (물론 KBO에서 더 이상 기록지를 제공하지 않는 것도 이런 로봇 발전을 가로막았을 겁니다.)



제가 이런 로봇을 기다리는 이유는 '야구 기록 전산화' 때문입니다. KBO에서 야구 기록 전산화를 끝내지 못한 건 읽어야 할 기록지가 너무 많기 때문. 물론 옛날에는 기록지를 손으로 썼기 때문에 당장은 이를 100% 읽고 쓸 로봇을 만들기가 쉽지 않을 겁니다. 그래도 '사람+로봇' 조합이면 사람만 할 때보다 속도를 단축할 수 있을 게 당연한 일. 메이저리그 올스타 출신인 앤디 반 슬라이크(58)는 "실업이 문제라면 실업자 5%를 골라 야구 기록지를 읽고 쓰게 만들면 된다"고 말하기도 했습니다. (실제로 메이저리그 기록을 정리한 레트로시트는 수작업 결과물입니다.)


4월 하순에 SBS 이성훈 선배와 답답한 이야기를 나눈 적이 있습니다. 당시 이대호(36·롯데) OPS(출루율+장타력) 2.377으로 한 주를 마감했습니다. 이 선배는 이 기록이 역대 최고 기록인지 궁금해 KBO에 문의했지만 '알 수 없다'는 답이 돌아왔다고 합니다. 반면 메이저리그는 '팀 이적 후 7경기에서 삼진을 가장 많이 잡아낸 투수는?' 같은 질문에도 답을 알려줍니다.


만약 기록지를 읽고 쓸 수 있는 로봇이 세상에 나온다면 어떨까요? 말하자면 이 2군 경기 기사 생성 로봇이 그냥 2군 경기 기사만 쓰지 않을 확률이 있는 겁니다. 게다가 손으로 기록지를 써서 남긴 기록원 숫자가 무한보다는 제로(0)에 가깝기 때문에 어쩌면 생각보다 개발이 어렵지 않을 수도 있습니다. 그러니 야구도 좋아하고, 인공지능도 좋아하는 능력자가 계시다면 얼른 도전해 보세요! 한국 야구사에 길이 이름을 남기실 겁니다!


이상 기계학습으로 석사 학위 논문 쓰고도 아무 것도 할 줄 모르는 1인 올림.




댓글, 2

  •  댓글  수정/삭제 홍승규
    2018.05.17 17:27 신고

    안녕하세요.

    "그런데 2군 경기는 문자 중계가 없습니다."라는 대목에서 궁금한 게 생겨 글 남깁니다. 현재 KBO 홈페이지에서는 KBO 퓨처스리그 경기에 대해 1군 수준의 '완벽한 실시간'은 아니나, 다소간의 텀을 둔 문자중계 서비스를 하고 있긴 합니다.

    문자중계를 통한 기계학습이 어렵다고 하신 이유가 '완벽한 실시간'이 아니기 때문인 건지 궁금합니다.

    •  수정/삭제 kini
      2018.05.18 07:40 신고

      '자동' 문자 중계 시스템 이야기를 하고 싶었던 건데 제가 잘못 전달했네요. 본문을 좀 수정했습니다.

더 보기