과학(Science)/컴퓨터 (Computer)

'AI'와 산업 - 대화편

SURPRISER - Tistory 2021. 9. 15. 05:00

0. 목차

  1. 말하는 AI
  2. 음성 인식
  3. 음성 어시스턴트
  4. 친구처럼 대화하는 AI
반응형

1. 말하는 AI

 '2018 구글 개발자 회의'에서는 음성 어시스턴트의 AI에 관한 새로운 기능이 발표되었다. 음성 어시스턴스가 사용자를 대신해 미용실이나 레스토랑에 전화를 걸어 예약을 해주는 기능이었다. 발표 당일, AI는 실제로 미용실에 전화를 걸어 점원과 통화를 하면서 예약을 하는 모습이 소개되었다. 대화 내용에 부자연스럼도 없는 것은 물론, 발음이나 대꾸하는 내용도 매우 자연스러워 점원은 상대방이 AI라고 생각하지 않는 것 같았다. 물론 당시 소개한 것은 미용실 예약이라는 한정된 상황에서의 대화였긴 하지만, AI가 인간과 충분히 대화할 수준에 이르렀다는 것을 보여주기에 충분한 발표였다.

반응형

2. 음성 인식

 AI가 사람과 대화하기 위해서는, AI가 사람의 목소리를 알아듣고 무엇을 말하는지 특정할 수 있어야 한다. 이것이 바로 '음석 인식'이라는 기술이다.

2-1. AI가 스스로 판단 기준을 획득

 '음성 인식(Voice Recognition)'에서는 먼저 마이크에서 인지한 소리가 무엇인지, 예컨대 '가'인지 '나'인지 등을 특정한다. 인간은 상대방의 목소리가 높고 낮음이나 크기에 관계없이, 상대방이 '가'라고 말하면 '가'라고 알아듣는다. 그 이유는 목소리의 질이 달라도 '가'에 공통적인 소리의 특징이 있고, 뇌는 그것을 인식할 수 있기 때문이다. AI의 '음성 인식'에서는 '딥러닝(심층학습)'이라는 방법으로 소리의 특징을 학습한다.

 '딥러닝(Deep Learning )'은 사람의 뇌에 있는 '신경망(Neural Network)'을 모방한 '인공 신경망(Artificial Neural Network)' 시스템을 사용한 학습 방법이다. '인공 신경망'에 다양한 사람들이 발음한 '가', '나' 등의 소리를 입력해 소리의 특징을 입력시키면, 각각의 소리를 구분하기 위한 판단 기준을 AI가 독자적으로 획득한다. 판단 기준은 사람이 가르치는 것이 아니라, AI가 스스로 판단 기준을 찾는다. 판단 기준을 스스로 획득한 AI는 처음 듣는 '가'라는 소리를 '가'라고 판단할 수 있게 된다.

반응형

2-2. AI가 스스로 보정한다.

 발음이 나쁘거나 주위의 잡음이 섞이면, 다른 소리로 판단되는 경우도 많다. 그래서 '음성 인식'에서는 최대한 올바르게 판단하기 위해, 일단 이렇게 들렸다 알아들은 결과의 후보를 몇 가지 출력한다. 그 후, 문법이나 사전 정보 등의 데이터를 참조해 각 후보에 점수를 매긴다. 예컨대,  '마짓는 밥'과 '맛있는 밥' 중 하나인 것 같은 경우, 후자가 '맛있다'라는 낱말을 포함해 의미가 통하기 때문에 더 높은 점수를 받는다. 이렇게 해서 후보 중에서, 옳은 것으로 판단되는 후보가 최종적으로 선택된다. AI도 인간과 마찬가지로, 중간에 알아듣지 못하는 소리가 있어도 문법이나 어휘 지식 등을 이용해 보정한다.

반응형

3. 음성 어시스턴트

 우리가 스마트폰의 '음성 어시스턴트(Voice Assistant)'에게 말하는 이유는 보통 잡담을 하고 싶어서라기보다는, 검색을 하거나 음악을 켜는 등의 스마트폰의 특정 기능을 사용하기 위해서다. 즉, '음성 어시스턴트'는 사용자가 사용하려는 기능을 대화를 통해 간파해야 한다.

 사실 '음성 어시스턴트'와의 대화는 최종적으로 특정 기능을 사용한다는 '도착점'이 정해져 있기 때문에, 일반적으로 대화의 시나리오가 어느 정도 정해져 있다. 예컨대, '알람 좀 맞춰줘' 라고 하면 음성 어시스턴트는 '네. 몇 시로 설정할까요?' 같은 식으로 정해진 대화 시나리오로 사용자의 요망을 좁혀 나간다.

3-1. 음성 어시스턴트가 간파해야 할 세 가지

 음성 어시스턴트가 사용자의 요망을 이해하기 위해서는 대화를 통해 다음 세 가지를 간파해야 한다.

  1. 어느 기능을 사용하는가?
  2. 그 기능으로 무엇을 하고 싶은가?
  3. 그 구체적인 내용은 무엇인가?

 예를 들어, '내일 아침 7시에 일어나서'라는 말을 들었다면, 음성 어시스턴트는 '시계 기능을 사용할 것', '알람을 설정할 것', '설정하는 시각은 오전 7시'임을 간파해야 한다. '내일 아침 7시에 일어나서'라는 말은 지시로써는 애매하지만, 스마트폰은 알람을 설정해 준다.

반응형

3-2. AI가 의도를 짐작하는 방법

 '음성 인식'에 의해 글자로 변화된 문장은 '내일', '아침', '7시'...처럼 낱말로 나눈다. 이렇게 나눠진 낱말은 숫자 세트인 '벡터(vector)'로 표현된다. 이 벡터는 낱말의 의미를 나타낸다. '인공 신경망'은 문장을 구성하는 낱말의 '벡터'를 계산하여, 구절이나 문장의 의미를 나타내는 '벡터'를 만들어 낸다. 문장을 나타내는 '벡터'를 통해 AI는 비로소 사용자의 의도를 파악할 수 있다. 이러한 방법으로, 다소 애매한 지시라도 사용자의 의도를 파악해 올바로 대응할 수 있게 된다.

 그러면 낱말을 숫자 세트로 표현한다는 건 도대체 무엇일까? 언어를 취급하는 대부분의 AI는 '복수의 숫자 세트' 즉, 공간상에서 한 점을 의미하는 '벡터'로 표현된다. 몇 개의 숫자로 표현하는지는 AI에 따라 다르다. 숫자 세트를 사용해 다차원의 좌표 공간 위에 낱말을 배치하면, 비슷한 의미를 가진 낱말이 가까이 모여 의미를 파악할 수 있게 된다.

'행렬(matrix)'은 벡터를 원소로 가지는 2차원 배열이다. 행렬의 특정 행(열)을 고정하면 행(열) 벡터라고 부른다.

4. 친구처럼 대화하는 AI

 음성 어시스턴트는 효율을 중시하지만, 친구와 얘기하는 것처럼 잡담을 할 수 있는 AI도 있다. 일본 '마이크로소프트(Microsoft)'의 '린나(Rinna)'는 여고생이라는 설정을 가진 '챗봇(chatbot: 자동으로 대화하는 프로그램)'이다. '린나'는 사람처럼 응답을 하고, 오래 대화를 지속할 수 있는 능력이 중시된다. 예컨대 린나에게 '나 피곤했어'라고 말하면, 린나가 '그래? 왜 피곤했는데?'라고 대꾸를 해준다. 또 날씨를 물었는데, '어디 가는 거야?'라고 반문하기도 한다.

여고생 AI '린나(Rinna)'

4-1. 대화하는 AI의 메커니즘

  1. 낱말 정보: '린나'도 언어를 다루는 다른 AI처럼 각 낱말을 '숫자 세트'인 '벡터'로 표현한다. 각 낱말에 대응하는 숫자 세트는 낱말의 의미를 나타낸다.
  2. 지식 그래프: 대화하는 AI는 '지식 그래프(knowledge graph)'라는, 각 낱말의 관련성에 대한 정보도 가지고 있다. '지식 그래프'를 이용함으로써, 예컨대 '공부'와 '시험'에 관련성이 있는 정보가 있으면, '지금 공부하고 있어'라는 말에 린나가 '시험 보는 거야?'라는 말로 반문하는 등 자연스러운 대화를 이끌어나갈 수 있다.
  3. 공감 모델: 또 낱말과 문장과 대화 흐름을 근거로 대화가 오래 지속되는 응답 방법을 AI가 추측한 뒤, 응답을 생성하는 메커니즘도 갖추고 있다. 이 메커니즘을 '공감 모델'이라고 한다.

 '낱말 정보', '지식 그래프', '공감 모델' 등은 각자 독자적인 '신경망'을 가지고 있으며, 대량의 대화 데이터를 사용해서 필요한 지식을 학습한다. 린나의 경우도 입력에서 출력까지 복수의 '신경망'의 조합으로 구성된다. 문장이 입력되면 '린나'는 낱말을 숫자 세트로 변환하고, 지식 그래프나 조금 전의 내용도 참조하면서, 대화가 지속적으로 이어지는 응답 방법을 찾아낸다. 그렇게 해서 끌어낸 응답 내용을 여고생다운 표현으로 생성해 출력하는 것이다.

반응형

4-2. 대화하는 AI의 진화

  1. 1세대 린나 (2015): 제1세대 린나는 '검색'의 메커니즘을 응용한 것이었다. 즉, 질문에 대해 가장 적절한 대답을 수많은 선택지 가운데서 찾아내 아무 생각 없이 반사적으로 응답한 것이었다.
  2. 2세대 린나 (2016): '자동 번역'은 '인공 신경망'을 사용해 대량의 영어와 일본어의 대역 데이터를 학습한다. 그 결과, 영어 문장을 입력하면 처음 입력한 영어 문장이라도 그에 대응한 일본어 문장을 그때그때 생성할 수 있게 되었다. 2016년, 린나는 '자동 번역'의 메커니즘이 응용된 제2세대로 진화했다. '자동 번역'과 마찬가지로 린나는 사전에 다양한 대화의 예를 '신경망'으로 학습하여, 사용자의 질문에 대해 그 자리에서 다양한 응답을 할 수 있게 되었다. 즉, '여고생 다운 대화'의 데이터를 많이 학습함으로써, 여고생 다운 응답을 그 자리에서 새로 만들어 낼 수 있게 되었다. 제2세대부터는 여고생 이외의 캐릭터로 설정된 AI도 적극적으로 만들고 있다. 학습시키는 데이터나 말 사용의 설정 등을 바꿔주면, 다른 캐릭터를 만들 수 있다. 예컨대, 초등학생 남자 설정의 '시부야 미라이'나 미남 설정의 '린오' 등의 캐릭터가 새로 만들어졌다.
  3. 3세대 린나 (2018): 위에서 소개한 '공감 모델'은 제3세대에서 추가되었다. '공감 모델'이 추가됨에 따라, 린나가 대화 상대에게 공감하고 이전의 대화 내용을 참조하면서 맞장구를 칠 수 있게 되어 더욱 자연스러운 대화가 가능해졌다.
반응형

4-3. 나쁜 말 기억하지 못하게 하기

 미국 '마이크로소프트(Microsoft)'가 개발한 대화하는 AI 'Tay'는 2016년 '트위터(Twitter)'에서 인종 차별적인 발언을 했다. 'Tay'는 말한 것을 기억하는 기능이 있는데, 일부 이용자가 이 기능을 악용해 인종 차별적인 말을 가르쳐준 것으로 보인다.

 그래서 '린나'는 이런 사건을 막기 위해, 부적절한 말이나 캐릭터에 어울리지 않는 말들을 기억하지 못하도록, 학습시키는 데이터를 관리할 수 있도록 했다. 또 학습한 것에 대해서도 부적절한 발언을 하는지를 확인해 운영 시스템에 반영하고 있다.

반응형

4-4. 대화하는 AI의 미래

 사람과 대화하는 AI는 급속도로 진화하고 있다. 그러면 앞으로 대화하는 AI는 어떻게 진화하게 될까?

  1. 어떤 환경에서도 말을 알아듣는 AI: AI가 자주 못 알아들으면 매끄러운 대화를 기대할 수 없기 때문에, 일단 '음성 인식'에 관해서는 정확도를 향상시키는 것이 과제이다. 인식의 정확도를 높이는 방법 중에 하나는 음성 인식을 이용하는 환경의 잡음을 섞어서 AI에게 학습하는 것이다. 예를 들어, 자동차 내비게이션에서 사용되는 '음성 인식'이라면 엔진 소리나 에어컨 소리 등 차 안에서 들리는 잡음까지 AI에게 학습시키면, 차 안에서 말하는 사람의 목소리를 인식하는 정확도가 향상될 것이다. 하지만 이 방법은 이용 환경이 바뀌면 효과가 없다는 한계가 있다.
  2. 여러가지 언어를 알아듣는 AI: 그러면 영어와 중국어, 한국어 등 복수의 언어를 하나의 AI가 알아듣게 만들 수는 없을까? 여러 가지 언어에 대응하려면 AI가 특정해야 하는 소리의 종류를 늘리고, 언어마다 사전이나 문법 등 언어 데이터를 늘리면 되므로, 원리적으로는 가능하다. 하지만 소리를 특정하기 위한 '신경망'이 복잡해지기 때문에 이를 구축하는 데에 시간과 노력이 많이 들어가고, 인식의 정확도가 내려갈 가능성이 있다. 따라서 현실적으로는 언어별로 인식 시스템을 구축하는 것이 여러모로 더 낫다.