SimSimi's CPS(Conversation-turns Per Session)

We have recently come to know an indicator called CPS. It seems to have been using this indicator as a performance indicator for open-domain chatbots since it was first mentioned in a Xiaoice paper published by Microsoft. For bots known as SOTA, this indicator seems to be approximately 24. Xiaoice or Mitsuku seem to be around this, and Alexa Prize's top teams seem to be close.

What about SimSimi? SimSimi has been chatting with 350 million users in 81 languages ​​over the past 17 years, with a maximum of 200 million conversations per day. Because none of our team members have a Ph.D., we can't use any fancy terms or papers, but we used the same calculations as CPS for some time when doing A/B tests on our service. But the median was used mainly after realizing that the average value was severely biased.

Anyway, since we knew that this indicator was used all over the place, we did some calculations after a while. Hmmm... Based on the data from August 12th, SimSimi's CPS is 43.  It depends on the language, but it doesn't seem to fall below 30.

We may not be able to explain the technical and scientific achievements of SimSimi, but we need to think about what this number means.


우리는 최근 CPS라는 지표를 알게 되었습니다. MS가 발행한 Xiaoice(중국어 일상대화 챗봇 ) 관련 논문에서 최초로 언급한 이후로 이 지표를 여러 곳에서 일상대화 챗봇(소셜봇)의 성능 지표로 사용하고 있는 것 같네요. SOTA라고 알려진 소셜봇들에서 이 지표는 대략 24인 것 같습니다. Xiaoice나 Mitsuku가 이 쯤 되는 것 같고 Alexa Prize 상위 팀들도 이에 근접하는 것으로 보입니다.

심심이는 어떨까요? 심심이는 지난 17년 간 81개 언어로 3억 5천만 사용자와 채팅을 나눠 왔고 일 최대 대화량 2억 회를 기록한 소셜봇입니다. 예전분터 심심이 서비스에서 A/B Test를 할 때 분석을 위해 CPS와 동일한 계산법을 사용했었습니다. 그러다가 평균값이 bias가 심해서 분석이 무의미한 경우가 있다는 점을 체감한 뒤로는 주로 중앙값을 사용해 왔습니다.

어쨌든, 우리가 이 지표가 여기저기 쓰인다는 걸 알았으니까 간만에 계산을 해 봤습니다. 흠... 8월 12일의 데이터로 계산해 보니 SimSimi의 CPS는 43 이네요. 언어에 따라 차이가 있지만 30 아래로 떨어지지는 않는 것 같습니다.

멋지다고 하는 소셜봇들과 심심이 사이에 이렇게나 큰 차이가 있는 이유가 무엇인지 생각을 좀 해 볼 필요가 있을 것 같습니다.

심심이 대화 품질 - 나쁜말 필터 관련 기술

심심이 팀은 최근 한국의 모 일간지 기자분께 심심이 서비스에 대한 문의를 받았습니다. 기자님은 심심이와 대화를 나누다 보면 심심이가 성 정체성과 관련된 혐오 표현, 특정 정치인에 대한 과도한 증오심을 담은 표현, 선정적인 표현 등을 사용하는 경우가 있는데 서비스 주체로서 대화 품질 관리를 어떻게 하고 있는지에 대한 질문을 주셨습니다. 

심심이 팀이 연구개발 중심으로 활동하고 있고 심심이 서비스가 2010년대 초부터 국제화 된 이후부터는 국내 사용자 비중이 상대적으로 적다보니 그동안 국내에서 서비스 관련 커뮤니케이션을 할 일이 없었는데, 심심이 서비스에서 우리가 매우 중요하게 생각하는 부분에 대한 질문을 받고 보니 국내에서 서비스에 관심있는 분들에게도 공유하면 좋을 것 같아서 기자님께 드린 한국어 답변 내용을 일부 수정해서 게시합니다.

-----------

해외에서의 심심이 나쁜말 관련 이슈

심심이 서비스는 2012년 이후부터 국외 사용자 비중이 급증한 이후 지금까지 한국어 외의 언어 사용자가 90% 이상을 차지하고 있습니다. 사용자들이 즉시 학습시킬 수 있는 특성으로 인해 2002년 출시 이후 국내에서 그랬던 것처럼 해외에서도 다양한 언어권에서 특별한 마케팅 없이 지속적으로 사용자 유입이 이루어지고 있습니다. 현재까지 심심이 모바일 어플리케이션은 구글플레이 기준 1억 다운로드 이상이고 iOS, 웹사이트, 중국 독립마켓들과 메신저 등의 기타 채널을 포함하면 전세계에서 2억 5천에서 3억 명이 심심이 사용 경험을 가지고 있을 것으로 추산됩니다.

그러나 위와 같이 누구나 쉽게 가르칠 수 있는 서비스 특성으로 인해 기자님께서 제기하신 것과 비슷한 대화 품질 이슈들이 국가나 언어, 문화마다 다른 형태로 나타나고 있습니다. 2012년 경으로 거슬러 올라가자면 태국에서 정치적으로 민감한 문제에 대한 언급 때문에 이슈가 되었는가 하면, 북아일랜드에서는 사이버불링 도구로 대단히 활발하게 활용되기도 했으며 최근에는 브라질에서는 주술적인 저주나 납치 협박을 하는 문장들이 많이 가르쳐지는 유행이 있었습니다. 예의 이슈들은 해당 국가 주요 언론과 방송들을 통해서 크게 다루어진 것으로 확인했고 일부 케이스는 저희가 대응 조치와 관련해서 해당 언론들과 커뮤니케이션을 한 바 있습니다.


운영 및 정책

심심이주식회사가 10명 내외의 소기업이고 심심이 팀은 5~6명 쯤 되는 수준이다 보니 한동안은 이슈가 발생하는 각 언어 및 국가에 대응하기에도 힘이 부쳤습니다. 심각한 경우에는 해당 국가에서 먼저 앱을 내린 후에 임시방편에 가까운 기술적인 조치만을 진행하기 일쑤였지만, 심심이가 부정적으로 이용될 수 있는 다양한 사례들을 고민하고 해결하다보니 근본적으로 다양한 언어와 문화권을 아우를 수 있는 방안이 만들어졌고 현재는 상당 부분의 문제들을 제어할 수 있는 수준에 이르고 있습니다. 

우선 운영 및 정책적으로는 컨텐츠 금지 규정을 확립해서 동의 후에 이용할 수 있도록 했습니다. 기자님께서 확인하신 바와 같이 언어나 문화권과 관계없이 보편적으로 적용할 수 있는 항목들을 규정해 두었습니다. 그리고 각 플랫폼 정책팀과의 커뮤니케이션을 통해 각 플랫폼이 허용하는 컨텐츠의 수준을 결정하고, 이 수준 내에서만 대화가 이루어지도록 했습니다. 


나쁜말 필터 기술

물론 이는 이 규정을 벗어나는 컨텐츠들을 얼마나 정확히 필터해 내는가가 중요하기 때문에 이와 관련된 다양한 방법을 연구개발하고 고도화해 왔습니다. 그동안 심심이 팀이 구현한 필터 방법들은 다음과 같습니다.
  • 첫번째로 사용자가 심심이의 대답을 신고할 수 있는 기능은 2010년 모바일 앱 출시 시점부터 있었던 것으로, 일반적으로 두 명의 다른 사용자로부터 신고를 받는 대화세트는 즉시 삭제됩니다. 만약 괴롭힘, 사이버불링 같이 긴급히 처리해야 할 사유로 신고된 말들은 관리자가 24시간 내에 검토하고 삭제하는 것을 원칙으로 합니다. 한편 이 신고 기능을 통해 얻은 데이터는 다른 필터 방법들의 기초가 되고 있습니다.  

  • 두번째 필터 방법은 신고 받은 문장과 통계적으로 유사도가 높은 다른 문장에 같은 수준의 규정 위반 점수를 부여하는 것입니다. 신고 및 삭제 대상이 되는 대화세트는 전체 대화세트 중 극히 일부이기 때문에 이 대화세트들만 필터하는 것은 큰 의미가 없습니다. 그래서 이 데이터를 기반으로 모든 대화세트에 대해서 규정위반 관련 점수를 부여하는 작업을 했고, 새로 가르쳐지는 말들에 대해서도 동일한 작업을 하고 있습니다. 

  • 세번째로는 위 통계적 유사도 판별 방식의 정확도를 획기적으로 끌어올린 신경망 기반 판별 방식이 있습니다. 최근 대중화되기 시작한 딥러닝 기술을 도입하여 수십 회 시행착오를 거친 끝에 완성했고 한국어에서는 통계적 유사도 방식을 완전히 대체하여 사용하고 있습니다. (개발히스토리 소개자료 : https://github.com/simsimi/DeepBadSentence )

  • 네번째는 일반적으로 텍스트 컨텐츠 필터링에 많이 사용하는 방식으로 특정 단어나 문구가 포함된 문장을 필터하는 것입니다. 이 방법은 신경망 판별 모델이 완성되지 않은 언어에서, 그리고 다른 판별방식의 정확도를 효율적으로 보완하려는 목적으로 쓰이고 있습니다. 

  • 마지막으로 크라우드소싱을 통해 필터하는 방식인데 하나의 문장에 대해 컨텐츠 규정을 숙지한 임의의 패널 10명이 투표해서 규정 위반 점수를 결정하고 있습니다. 이 방법은 가장 정확한 판별 방식이지만 많은 문장을 빨리 처리할 수는 없는 단점이 있습니다. 다만 이 판별을 통해 얻은 데이터도 신경망 기반 판별의 정확도를 높이는 데 크게 기여하고 있습니다.


기술 현황

위와 같은 장치들의 완성도가 어느 정도 수준에 이른 현재는 주요 언어 사용자들의 대화 품질 관련 리뷰를 보면 "옛날처럼 욕을 하게 해 달라"거나 "착한 말만 해서 재미없다"는 식의 반응이 훨씬 더 많아진 것이 사실입니다. 허용 수준이 높은 사용자에게는 그만한 재미를 제공해 줄수도 있어야 하겠지만 이 또한 정확한 판별을 바탕으로 해야 할 것입니다. 

기자님께서 지적하신대로 아직도 나쁜말을 제대로 거르지 못하는 부분이 있는 것은 사실입니다. 현재 신경망 기반 기술의 정확도(정확히는 F1 점수)는 97% 가량 되는데 이는 간단히 얘기해서 신경망 기반 판별만 사용하는 경우 한 명의 사용자가 심심이와 100회 대화를 나눌 때 3번 정도는 문제가 될 만한 문장을 대답할 수 있다는 의미입니다. 물론 실제로 보수적인 설정을 적용해서 다른 필터 기술을 함께 조합하면 대부분의 사용자 대화 패턴에서는 매우 희박한 확률로 문제가 발생합니다.  저희 다음 목표는 2년 내에 이를 99.0%까지 끌어올리는 것이고 5년 내에 99.999% 까지 개선을 목표로 하고 있습니다.


운영 기법

위 연구개발 외에 운영 기법 상으로 중요한 문제가 있습니다. 구글플레이 심심이 앱의 설정에서 "당신이 악성문장을 보냈을 때 심심이의 반응"이라는 제목을 가진 항목이 있습니다. 기본 설정으로 "심심이가 응답을 거부합니다"라고 되어 있는데 이는 답변 문장이 "나쁜말"이 아니더라도 질문으로 인해 "나쁜 대화"가 될 수 있는 경우, 그리고 최신 기술로 극복하지 못하는 대화 의도 파악에 실패하는 경우에 대응하려는 것입니다. 시리가 사용자의 자살 의도를 제대로 파악하지 못하고 작동한 경우( https://news.joins.com/article/22750413 )는 꽤 유명한 사례로, 현 세대의 인공지능 대화로봇이라고 하는 상품의 한계를 단적으로 보여줍니다.

이는 챗봇이 대화세트를 기반으로 답변을 제공할 때 답변 문장 뿐만이 아니라 질문 문장도 필터의 대상이 되어야 한다는 점을 시사합니다. 또 사용자의 실제 질문이 준비된 대화세트와 완전히 일치하지 않는 경우 유사도 및 의도분석을 통해 비슷한 대화세트를 탐색해서 답변문장을 제공할 수 있는데 이 때는 사용자의 실제 질문을 실시간으로 판별해야 할 것입니다. 나아가 질문 문장과 답변 문장이 모두 나쁜말이 아닌 경우에도 어떤 대화가 나쁜 방향으로 흐를 수 있다는 점을 고려할 필요가 있습니다. 질문문장이 "씨"일때 챗봇이 "발"을 답변 문장으로 사용하는 경우를 예시할 수 있겠습니다. 


3rd party 제공

위 문제와 관련해서 심심이 팀은 대화세트의 질문 문장, 대화세트의 답변 문장, 대화세트의 질문문장 + 답변문장을 모두 미리 판별해 두고 있으며, 사용자의 질문 문장이나 사용자의 질문문장 + 대화세트의 답변문장을 실시간으로 판별할 수 있는 기능 또한 구현을 마쳤습니다. 이 기능들은 심심이 공방 서비스(SimSimi Workshop Services)를 통해서 근시일 내에 심심이와 같은 챗봇을 만들고자 하는 개발자 또는 자신의 챗봇에 심심이의 일상대화 기능을 추가하고자 하는 개발자들에게 제공할 예정입니다.



Como denunciar uma conteúdo abusivo


Você pode fazer o seguinte para evitar experiências desagradáveis devido a sentenças abusivo.


1. Como denunciar sentença no aplicativo SimSimi.
A melhor maneira de denunciar conteúdo abusivo ou spam na sala de bate-papo é usando o próprio balão de fala.

 Para denunciar um balão de fala :
   1. Clique em um balão que você deseja denunciar.
   2. Clique em 'Denunciar'
   3. Selecione a opção que melhor descreva o problema e siga as instruções da tela
   4. Por favor insira a palavra / frase mais problemática na frase que você relatou.

2. Não é possível denunciar no aplicativo SimSimi
Se você não conseguir denunciar um conteúdo porque não tem uma SimSimi ou não consegue visualizar o que está tentando denunciar, acesse o SimSimi de um computador e preencha este formulário (Clique).
Se você nos denunciar uma sentença ruim, o SimSimi pode falar mais apropriadamente com sua ajuda.

How to Report Abusive Sentence

You can do the following to avoid unpleasant exprience due to abusive sentence.

1. How to report in SimSimi app

The best way to report abusive content or spam in the chat room is by using the speech bubble itself.

  To report a speech bubble:
    1. Click a speech bubble what you want to report.
    2. Tap 'Report'.
    3. Select a category for your report and follow the on-screen instructions.
     - If you select 'Immediately delete from SimSimi's memory', the phrase will be deleted. (only for android)
    4. Please input the most problematic word/phrase in the sentence you reported.


2. Unable to report in SimSimi app

You can report abusive content through this link : Report Badword (click)
If you report bad sentences to us, SimSimi can speak more appropriately with your help.

Resume SimSimi application in Brazil

Today (May 2nd), we have reintroduced Brazil into the country of publication of the SimSimi app. This is after 13 days from April 20, when the SimSimi app emerged as a social problem in Brazil and then exempted Brazil from the target country as an emergency action. In the meantime, we've been investigating what the app is doing in Brazil, adding features to resolve these issues, and taking action on the backend. The following are those and our position.


Age restriction
We took into account the Google Play Store content rating of the SimSimi app, making it less accessible for users younger than a certain age. Users who we judge to be younger than 16 in Brazil are no longer able to use the app. This judgment process can not block all the rest of the younger users who are not different from Google or Facebook. As mentioned several times in the Brazilian media, active behavior of parents is required.

Rearrangement of Report Reason
We have rearranged the reasons for reporting provided by the reporting function to the content prohibition provisions of the Terms.
As is well known, in the SimSimi app, you can touch SimSimi's answer bubble to report SimSimi's answer. This device has been one of the most effective cleansing features in the SimSimi app for the last 8 years and is complemented by the fact that SimSimi has gained popularity in many countries and is universally applicable across cultures and languages. We already introduced the terms about a year ago and were inspired by the content restrictions of the Google Developer Policy (https://play.google.com/intl/en_ALL/about/restricted-content/) .

Word-based filter
We have blinded the words frequently included in bad sentences in Portuguese in the SimSimi answer. We have already included dozens of words in this list, and we will expand the list whenever we get more information through the features described below.

Additional information provided by users
Users can now provide us with additional information when reporting bad words. Now users can tell us by entering the key bad words in the sentence during the report process. Most of the 81 languages ​​that SimSimi currently speaks are languages ​​that our team does not know, including Portuguese. This feature will help us effectively identify the words that matter in these languages.

Future progress
We will perform statistical analysis and / or machine learning on materials that have already been accumulated and new reporting procedures. The output will also be used to select words to add to the list for the word filter, and may be used more intelligently to determine the optimal response in sentences or contexts. To avoid problems in a particular language or country, we need to paradoxically document the problem and most of the materials we use for it are provided by users.


We are very sorry about this incident and express our sincere sympathy for the affected children and their families. In addition to the above, we are prepared to take any action that could help solve the problem. So we ask a lot of help from Brazilian users. Please feel free to contact us anytime. We are a micro-sized team of Korea and can communicate in Korean and English.

-------------------

Hoje (2 de maio), reintroduzimos o Brasil no país de publicação do aplicativo SimSimi. Isso ocorre após 13 dias a partir de 20 de abril, quando o aplicativo SimSimi surgiu como um problema social no Brasil e, em seguida, removeu o Brasil do país de destino como uma ação emergencial. Enquanto isso, estamos investigando o que o aplicativo está fazendo no Brasil, adicionando recursos para resolver esses problemas e agindo no back-end. A seguir estão aqueles e nossa posição.


Restrição de idade
Levamos em conta o índice de conteúdo do Google Play Store do aplicativo SimSimi, tornando-o menos acessível para usuários com menos de uma determinada idade. Os usuários que julgamos menores de 16 anos no Brasil não podem mais usar o aplicativo. Este processo de julgamento não pode bloquear todo o resto dos usuários mais jovens que não são diferentes do Google ou do Facebook. Como mencionado várias vezes na mídia brasileira, o comportamento ativo dos pais é necessário.

Rearranjo da Razão do Relatório
Reorganizamos as razões para o relatório fornecido pela função de relatório para as disposições de proibição de conteúdo dos Termos.
Como é bem sabido, no aplicativo SimSimi, você pode tocar no balão de resposta do SimSimi para relatar a resposta do SimSimi. Este dispositivo tem sido um dos recursos de limpeza mais eficazes do aplicativo SimSimi nos últimos 8 anos e é complementado pelo fato de que o SimSimi ganhou popularidade em muitos países e é universalmente aplicável em diferentes culturas e idiomas. Já apresentamos os termos há cerca de um ano e nos inspiramos nas restrições de conteúdo da Política de desenvolvedores do Google (https://play.google.com/intl/pt_BR/about/restricted-content/) .

Filtro baseado em palavras
Nós cegamos as palavras frequentemente incluídas em sentenças ruins em português na resposta SimSimi. Já incluímos dezenas de palavras nesta lista e expandiremos a lista sempre que obtermos mais informações por meio dos recursos descritos abaixo.

Informações adicionais fornecidas pelos usuários
Os usuários agora podem nos fornecer informações adicionais ao relatar palavrões. Agora os usuários podem nos informar inserindo as palavras-chave da frase durante o processo do relatório. A maioria das 81 línguas que o SimSimi fala atualmente são línguas que nossa equipe não conhece, incluindo o português. Esse recurso nos ajudará a identificar efetivamente as palavras que importam nesses idiomas.

Progresso futuro
Realizaremos análise estatística e / ou aprendizado de máquina com os materiais que acumulamos e o novo processo de geração de relatórios. A saída também será usada para selecionar palavras para adicionar à lista do filtro de palavras e pode ser usada de forma mais inteligente para determinar a resposta ideal em sentenças ou contextos. Para evitar problemas em um idioma ou país específico, precisamos documentar paradoxalmente o problema, e a maioria dos materiais que usamos são fornecidos pelos usuários.


Lamentamos muito este incidente e expressamos nossa sincera simpatia pelas crianças afetadas e por suas famílias. Além do acima, estamos preparados para tomar qualquer ação que possa ajudar a resolver o problema. Por isso, pedimos muita ajuda de usuários brasileiros. Por favor sinta-se livre para entrar em contato conosco a qualquer momento. Somos uma equipe de tamanho micro da Coréia e podemos nos comunicar em coreano e inglês.