728x90

댓글에서 SmartReply의 쓰임새

 오늘 공부할 것은 유튜브 크리에이터를 위한 SmartReply 기법(SmartReply for YouTube Creators)에 대한 내용입니다.

SmartReply란 자동화된 답장 제안하는 기능으로 지메일에서부터 안드로이드 메세지, 구글 플레이까지 다양한 방면에서 쓰이고 있습니다. 각 태스크 요구사항들은 다르므로 SmartReply를 태스크에 맞게 모델링하고 서비스 제공해야 합니다. 이번에는 유튜브에 SmartReply를 도입하여 크리에이터들이 그들의 시청자와 쉽게 소통할 수 있도록 하였습니다. 크리에이터들은 동영상에 대해 대규모의 댓글을 받고, 크리에이터와 시청자의 커뮤니티는 컨텐츠에 따라 다양합니다. 또한 이메일과 달리 유튜브 댓글에 욕을 쓴다던가, 유행어를 쓴다던가, 줄임말을 쓰거나, 이모티콘을 같이 쓰는 등의 보다 복잡한 언어적 패턴을 보입니다.

 

SmartReply가 개선한 방면

 이메일에서는 단어 단위로 RNN을 이용하여 인코딩하고, 그리고 다른 단어레벨의 RNN을 이용하여 가능성 있는 응답을 디코딩했습니다. 하지만 이 방법은 계산 비용이 컸습니다. 가장 적절한 응답을 위해 사전 정의된 제안 목록을 검색하는 시스템을 설계하여 계산 비용은 적게 들며 이전 기법과 비슷한 성능이 나오도록 하는 것이 중요한 연구 목표였습니다.

 이 시스템은 댓글과 그것에 대한 제안 답글을 독립적으로 인코딩하였습니다.

1. 텍스트에서 단어와 짧은 구절을 추출하기 위해 언어 식별, 정규화 및 토큰화 등의 과정을 포함한 전처리했습니다.

2. 두 신경망들을 이용하여 댓글과 제안 답글을 동시에 독립적으로 인코딩했습니다.

3. 제안 답글을 사전 계산한 다음 효율적인 maximum inner product search 구조를 사용하여 제안들의 세트들을 검색합니다.

 이 방법은 지메일을 넘어선 다양한 태스크에 SmartRely를 적용하는 기반이 될 수 있습니다. 하지만, 이 시스템은 제한된 언어와 적은 분야에 맞춰진 단어 레벨의 전처리 기반으로 이모티콘이나 기호 등으의 여러 (이종) 표현들로 이루어진 유튜브 댓글에서는 문제가 생길 수 있었습니다. 

 

 문자 바이트를 기반의 SmartReply 모델

 이를 해결하기 위해, 계산적으로 효율적으로 확장된 Self-Attention 네트워크를 통해 댓글과 답글을 학습하고, 첫번째 언어 및 문자 바이트를 기반으로 SmartReply 모델 만들었습니다.

 전처리 없이 텍스트 인코딩하는 방법을 택하고 단어 기반의 모델과 경쟁력 있는 트랜스포머 구조 기반의 연구를 기반으로 하였습니다. 이는 입력되는 일련의 문자들이나 바이트들로 단어나 구절로 모델링할 수 있게 하였습니다. 이 방법은 이모티콘이나 오탈자가 있는 댓글에 대응을 할 수 있었지만, 문자 시퀀스가 너무 길어서 Self-attention 레이어 계산시에 비용이 많이 든다는 단점이 있었습니다. 이의 해결을 위해 WaveNet 과 같은 각 네트워크 레이어에 임시적인 축소 레이어를 적용하여 시퀀스의 길이를 줄였습니다. 이는 결과의 질과 계산 비용 사이에서 적절히 성능 조절할 수 있게 하였습니다.

 

구체적으로, 대조적인 목표로 네트워크를 훈련시켜 댓글과 답글의 잠재 표현들 사이의 상호 정보를 극대화하기 위해 두 개의 인코더 네트워크를 이용하여 댓글과 답글을 인코딩하였습니다.

1. 임베딩된 일련의 바이트를 구성하여 트랜스포머 레이어로 들어갑니다.

2. 각 후속 레이어는 동일한 비율로 문자들을 삭제하며 이는 문자 시퀀스의 길이가 크게 줄어들어 계산의 복잡성이 줄어듭니다.

3. 인코딩된 댓글과 답글은 상호 유사성을 극대화합니다.

 

 여러 언어로 쓰인 댓글이나 이모티콘이나 숫자와 같은 것들을 학습하고 지원하기 위해서 언어를 넘나드는 단일 모델을 만들었고 단일 모델을 만드므로서 유지 관리나 업데이트가 단순화되었다고 합니다.

영어와 스페인어 기반의  SmartReply을 제공함

 일단 영어와 스페인어를 기반으로 서비스 제공한다고 합니다. 모델에 의해 생성된 다국적 언어의 제안 세트를 보면 언어에 상관없이 모델이 적절한 응답끼리 잘 묶어주는 것을 알 수 있습니다.

 이렇게 생활에 밀접한 부분까지 딥러닝이 직접 적용되고 있는 것을 보면 신기하다는 생각이 듭니다. 결국 자주 쓰는 문장을 추천해주는 시스템인 것 같은데, 구독자 입장에서는 크리에이터가 다른 구독자와 비슷하게 자신의 댓글에 달면 좋아할까라는 생각이 듭니다. 유튜브의 핵심은 상호 작용이라는 생각이 드는데 구독자들이 기계적으로 답글이 달린다고 생각하면 어떻게 할 지도 고민해야 할 듯 합니다. 그렇다면 좀 더 나아가서 댓글을 남긴 사람의 특성에 따라 댓글을 추천해준다면 크리에이터들에게 더 도움이 되지 않을까라는 생각이 듭니다.

 챗봇시스템에 유용하게 쓰이겠다는 생각이 들었습니다. 물론 이 분야에서는 더 고도화된 알고리즘이 있을 수도 있지만 말 입니다. 또한, 어떤 것을 학습 데이터로 이용할지 의문이 들었습니다. 유튜브에 있는 모든 댓글과 답글을 이용해서 학습하면 유튜브나 구독자들의 성향에 맞지 않는 경우가 생길 것이고, 그렇다고 개개인별로 하자니 너무 학습 데이터가 적어서 제대로 된 결과가 안 나올 것 같았습니다.

728x90

+ Recent posts