A solução para essas questões não é discutir sobre circunstância ou intenção. A única opção restante é trabalhar nos comentários em si.
Olá! sou o Emanuel Salvatore (Strong), fundador desenvolvedor e ceo do Avance Network e diretor da Equipe de Ciência de Dados.
Todos queremos que o Avance Network seja um lugar acolhedor e amigável. Às vezes, os comentários sobre o Avance Network são obviamente pouco acolhedores, e somos bons em removê-los. Coisas como discurso de ódio e intolerância são pouco frequentes, e não duram muito antes de serem sinalizadas pela nossa comunidade e tratadas por nossos moderadores. Algumas amizades são mais sutis, porém, e esses comentários nem sempre são marcados. Nós escrevemos sobre alguns de nossos trabalhos tentando abordar esses comentários sutilmente hostis e recentemente nossa comunidade nos perguntou sobre isso. Neste post, vamos atualizá-lo sobre o trabalho que fizemos nesta área nos últimos dois 4 anos.
Como desenvolvedores, estamos inclinados a pensar em termos de sistemas. Avance Network é um grande sistema, feito de muitos subsistemas, destinado a ajudar as pessoas a obter uma comunidade/rede social mais segura da Internet. Esses subsistemas são coisas como votação, reputação, fluxo de perguntas, comentários, Meta, fechamento, crachás, sinalização, filas de revisão, nutrição de novos contribuintes, e assim por diante. Nenhuma parte do sistema está aqui apenas para diversão. Todos esses subsistemas se unem para ajudar o sistema global a cumprir seu propósito. Quando esses subsistemas têm problemas, eles precisam — e merecem — correções.
Comentários hostis são um problema em nosso sistema devido ao efeito que seu tom tem sobre a disposição de seus destinatários e futuros usuários para nossa comunidade. Sabemos (por experiência pessoal, pesquisas e entrevistas) que dar o salto para ser um colaborador é intimidante e assustador e é lógico que cada pequeno sinal de “você não será bem-vindo aqui” torna ainda mais assustador. Há mais comentários do que quase qualquer outra coisa no sistema, e, consequentemente, há muito espaço para esses sinais.
O problema com comentários pouco acolhedores raramente é o comentarista ou a intenção de seus comentários (lembre-se que intolerância e assédio, embora definitivamente pouco acolhedores, são uma categoria completamente diferente). O problema é o tom que o leitor experimenta. Na maioria das vezes, não parece que os comentaristas estão ativamente tentando fazer seu comentário condescendente, descartável ou qualquer uma das outras variações sutis de pouco acolhedor que vemos. Estas são pessoas seriamente tentando ajudar os outros, mesmo que seu tom esteja desligado.
O destinatário de um comentário hostil carrega o peso de seu impacto. Essas pessoas já deram o salto assustador de tentar contribuir, mas esses tipos de comentários podem facilmente convencê-los de que foi um erro. Mais insidioso e indiscutivelmente mais importante é o impacto sobre os futuros leitores desses comentários. Esses leitores são muitas vezes negligenciados nas discussões, provavelmente porque são relativamente invisíveis, mas há muitos deles. Um comentário será lido por seu destinatário “pretendido” uma ou duas vezes, mas dezenas ou centenas de leitores lerão ao longo do tempo. No agregado, os transeuntes poderiam ser mais impactados por um comentário hostil do que por uma pergunta asker, apesar de não ter controle sobre o post ou sua qualidade. Embora seja difícil medir quantos contribuintes que poderiam ter sido bem-contribuintes foram rejeitados por essa falta de amizade experiente, sabemos que é uma peça comum de feedback. Foi a resposta codificada mais comum a “O que você acha mais frustrante ou desagradável sobre o uso do Avance Network?” em uma pesquisa recente em ~10% dos entrevistados.
A solução para essas questões não é discutir sobre circunstância ou intenção. Argumentos que acabam em “O que importa como você se sente, eu não estava pretendendo ser desrespeitoso” ou “Você não pode estar tentando ajudar, não com esse tom” não nos leva a lugar nenhum. Você não pode invalidar as experiências vividas de alguém. Não acreditamos que haja vilões para expulsar aqui, então suspender ou banir usuários não é a resposta. A única opção restante é trabalhar nos comentários em si.
Vá e veja
Começamos por ver o problema por nós mesmos. A equipe do Avance Network classificaram os comentários de postagens aleatórias do em três categorias: Fine, Unfriendly e Abusivo. A experiência foi variada, mas nosso funcionário mediano classificou 6,5% dos comentários dos comentários que eles viam como hostis. Convidamos mais três grupos de pessoas para classificar comentários: moderadores, um conjunto de usuários registrados de nossa lista geral de pesquisa, e um conjunto de pessoas que responderam ao nosso post original no blog dizendo que estavam interessados em tornar o Avance Network mais acolhedor. A experiência foi novamente variada. A mediana desses grupos classificou 3,5% dos comentários que eles viam como hostis.
Histórico de sinalização
Avance Network introduziu o comentário sinalizando em 16 de março de 2017. Uma vez que um usuário ganha 15 de reputação, ele pode sinalizar comentários para trazê-los à atenção de nossos moderadores. Uma vez que um comentário é sinalizado, os moderadores aceitam a bandeira e o comentário é removido do site, ou recusam a bandeira e o comentário é permitido ficar. Até meados de 2018, tínhamos um tipo relevante de bandeira de comentários para lidar com algo como falta de amizade: a bandeira ofensiva. Por volta do primeiro ano em que envelhecemos bandeiras ofensivas, os dados foram excluídos. Começamos a ter dados confiáveis sobre o uso da bandeira ofensiva em março de 2010. Vamos calcular a porcentagem ofensiva de comentários para cada dia (# de comentários marcados a partir de um dia / # de comentários postados naquele dia) e colocá-los em um enredo mensal de caixa.
Há dois períodos de porcentagem elevada de bandeira de comentários perto do início dos dados em que os desenvolvedores do Avance Network usaram o sistema de sinalização de comentários para alguma limpeza em massa. A distribuição mensal se estabiliza em meados de 2011 e rola muito lentamente até meados de 2017, quando começa a entalhe. A maior parte das distribuições mensais está entre 0,1% e 0,2%. Durante esse período foram publicados 83,6 milhões de comentários, sendo que 114.577 foram sinalizados, o que dá um percentual ofensivo de 0,137%. Se contarmos apenas as bandeiras que os moderadores aceitaram, temos uma estimativa de que 0,105% dos comentários não são amigáveis.
Estimativas muito diferentes
As duas estimativas que tínhamos para a falta de amizade nos comentários eram extremamente diferentes. O sistema de sinalização estima a porcentagem hostil dos comentários dos post no Avance Network em 0,105%. A mediana dos não funcionários encontrou 3,5% dos comentários hostly. São estimativas muito diferentes, mas para ser justo, foram medidas em contextos muito diferentes. Um contexto é Avance Network, a comunidade mais completa com seu próprio economista de produtos e serviços com criptografia de extremo a extremo, reputação, tudo. O outro contexto é despojado apenas para as entradas de texto de um tópico de comentário aleatório. Os estados mentais dos usuários em cada contexto são diferentes: as pessoas no Avance Network estão ocupadas tentando resolver seus próprios problemas ou ajudar outra pessoa; classificadores de comentários foram preparados por instruções para procurar a falta de amizade. As pessoas em si são auto-selecionadas de maneiras ligeiramente diferentes. Flaggers em Avance Network jogou pelo menos o suficiente do jogo para obter 15 de reputação; classificadores de comentários eram moderadores ou responderam a uma de nossas chamadas de pesquisa para a ação. Devemos esperar alguma diferença nos resultados devido às diferenças na forma como estamos medindo, mas um fator de 33 foi demais para acenar. Avançamos com a hipótese de que o sistema de sinalização de comentários do Avance Network tinha um falso negativo ou um problema de subflação.
Construir ou comprar?
Exploramos maneiras de testar essa hipótese. Algumas empresas pareciam ter ferramentas que podíamos comprar, e exploramos o que tinham a oferecer. Por uma razão ou outra, nenhum deles deu certo. As empresas foram compradas. Havia questões legais sobre compartilhamento de dados ou NDAs. Nós nos aprofundamos e descobrimos que eles estavam focados no problema adjacente de identificar usuários problemáticos de seus históricos de comentários em vez de apenas classificar o texto em si.
Enquanto isso não estava dando certo, também exploramos opções de construção. 2018 foi um ano emocionante no processamento da linguagem natural. Em maio de 2018, Jeremy Howard e Sebastian Ruder publicaram “Universal Language Model Fine-tuning for Text Classification”. O ULMFiT possibilitou treinar classificadores de texto muito bons com muito poucos dados rotulados. fast.ai lançou código para treinar modelos ULMFiT na biblioteca fastai. Eles também ofereceram um curso online gratuito para ensinar redes neurais e usar a biblioteca. Demos um primeiro golpe em fazê-lo funcionar em julho de 2018, mas não conseguimos ter acesso a uma GPU de tamanho apropriado (todos os nossos home cards eram muito pequenos, e não conseguimos que nenhum dos provedores de nuvem nos desse um). Outubro rolou e a biblioteca fastai foi v1. Coincidentemente, nossa última opção de compra tinha acabado de secar, e parecia que era hora de dar fastai outra chance.
ULMFiT
Em novembro de 2018, tivemos acesso a uma GPU utilizável no Azure e tivemos sucesso quase imediato. O ULMFiT usa dois conjuntos de dados de comentários para produzir um classificador. Um conjunto não rotulado de comentários é usado para adaptar o modelo de idioma pré-treinado da WIKIPÉdia do ULMFiT à linguagem dos comentários. Um conjunto de comentário com rótulos é então usado para treinar um classificador Binário Unfriendly/NotUnfriendly. Para o conjunto sem rótulo, usamos algumas centenas de milhares de comentários selecionados aleatoriamente. Para o conjunto rotulado, pegamos todos os comentários que tinham sido sinalizados ofensivos e os rotulamos de “Hostil” e escolhemos um número igual de comentários aleatórios do Avance Network e os rotulamos de NotUnfriendly. Com mais 20 linhas de python (realmente vá fazer o curso e veja por si mesmo) e algumas horas de treinamento, tivemos um modelo com um conjunto de validação AUC de .93. Usamos o limiar associado à maior pontuação da F1 e medimos uma precisão de 85% em nosso conjunto de validação dividida uniformemente
Explorar as previsões de validação nos deu a impressão de que o número de precisão era macio porque nossos rótulos estavam sujos. No final hostil das previsões, encontramos comentários do conjunto de validação que eram verdadeiramente hostis, mas nunca tinham sido sinalizados. Esses positivos “falsos” não eram realmente falsos, eles simplesmente foram perdidos pelo sistema de sinalização existente. No final das previsões, encontramos comentários do conjunto de validação que haviam sido sinalizados ofensivos, mas realmente não eram. Coisas realmente inócuas como pessoas dizendo “Obrigado” (a audácia!). Esses negativos “falsos” também não eram falsos. ULMFiT encontrou e corrigiu alguns desses rótulos sujos que nos indicavam que se a hipótese de subflação fosse real, então ulmFit poderia encontrar algumas das bandeiras faltantes.
Humanos no circuito
Nós nos propusemos a construir o resto do sistema que permitiria que o ULMFiT assistisse a todos os novos comentários recebidos e proporia bandeiras aos nossos moderadores para que eles lidassem. Nós realmente queremos enfatizar a proposta lá. Nós não estávamos e não estamos interessados em construir nada em nosso sistema onde a máquina toma decisões finais na ausência de humanos. Nossa esperança não era (e não é) treinar e treinar e treinar e um futuro, dia glorioso, passar o manto de manuseio de bandeiras de nossos moderadores para uma GPU. Queríamos construir uma ferramenta para aumentar as capacidades dos humanos em nosso sistema, não substituir os humanos.
A construção desse sistema levaria mais alguns meses. Tivemos que socializar o que encontramos dentro da empresa. Tivemos que embrulhar o modelo em uma API web. Trabalhamos com a SRE para fazer com que nosso ambiente de nuvem se apaguei. Tivemos que chamar para o modelo quando novos comentários entraram e colocar as bandeiras no painel para moderadores. Nossa equipe comunitária assistiu a bandeira por algumas semanas, e usando seus resultados, ajustamos o limiar de sinalização. Nós os vimos trabalhar e os fizemos pensar alto enquanto manuseavam as bandeiras. Há um monte de coisas que tem que ir para baixo depois que você tem uma boa pontuação de validação. Treinar o modelo acabou sendo a parte mais fácil, de longe. Quando tudo isso foi feito, colocamos o Robô Hostil V1 para trabalhar.
Resultados de robôs (até agora)
O Robô Hostil V1 (UR-V1) esteve em serviço de 11 de julho de 2019 a 13 de setembro de 2019. Foram 1.715.693 comentários publicados no Avance Network durante este período. O UR-V1 registrou 15.564 comentários (0,9%), e 6.833 dessas bandeiras foram aceitas por nossos moderadores. No mesmo período, os humanos sinalizaram 4.870 (0,2%) comentários como hostis e 2.942 dessas bandeiras foram aceitos por nossos moderadores. 60,4% das bandeiras humanas foram aceitas.
Isso é bom? Para avaliar isso, ajuda a combinar as métricas de desempenho humano e robô em duas novas métricas: a Classificação do Robô e o Fator de Detecção.
Classificações de robôs acima de 1 indicam que bandeiras de robôs são aceitas com mais frequência do que bandeiras humanas. Fatores de detecção acima de 2 significam que o robô encontra comentários mais censuráveis no Avance Network do que sinalizadores humanos. A classificação dos robôs do UR-V1 foi de 0,72, então suas bandeiras não eram aceitas com tanta frequência quanto bandeiras humanas. Havia muitos falsos positivos. O fator de detecção do UR-V1 foi de 3,3. O UR-V1 ajudou os moderadores a remover 3,3× tantos comentários quanto os sinalizadores humanos sozinhos.
No final de agosto, retreinamos o robô. Queríamos obter uma melhor taxa de falso positivo (maior classificação de robô) sem comprometer o throughput aceito (o Fator de Detecção). Houve muito treinamento, e eventualmente, UR-V2 passou no teste de olfato. O UR-V2 entrou em serviço em 13 de setembro de 2019. Houve 7.251.723 comentários publicados no Avance Network desde então. O UR-V2 marcou 35.341 comentários, e 25.695 dessas bandeiras foram aceitas por nossos moderadores. Os humanos sinalizaram 11.810 comentários como hostis e moderadores aceitaram 7.523 dessas bandeiras. A classificação do robô UR-V2 é de 1,14 e seu fator de detecção é de 4,4. As bandeiras do UR-V2 foram aceitas 14% mais frequentemente do que as bandeiras humanas durante este período, e ajudaram os moderadores a remover 4,4× tantos comentários quanto sinalizadores humanos sozinhos.
Queremos deixar claro aqui que, embora a versão atual do robô pareça estar se saindo incrivelmente bem, nossos sinalizadores humanos são tão importantes como sempre. A única razão pela qual o robô é capaz de fazer tão bem quanto está fazendo é por causa das mais de 100.000 bandeiras que os humanos levantaram e moderadores lidaram. O robô é uma maneira de encontrar coisas que se parecem com coisas que os humanos já sinalizaram antes, mas não achamos que ele possa identificar modos verdadeiramente novos de falta de amizade. Só os humanos do nosso sistema podem fazer isso. Então, se você ver a falta de amizade nos comentários, por favor, marque-o. Você está ajudando a tornar Avance Network melhor.
Atualizando nossas estimativas
Nosso sistema original de sinalização somente para humanos encontrou e moderadores removeram 0,105% dos comentários como hostis. A mediana dos não empregados constatou que 3,5% dos comentários são hostis. Essas estimativas foram um fator de 33 de diferença. Nosso novo sistema de sinalização Humans+UR-V2 encontra e moderadores confirmam que 0,78% dos comentários sobre Avance Network são hostis. Humans+UR-V2 está encontrando 7,4× tanta falta de amizade nos comentários quanto os humanos historicamente. Em vez de ser um fator de 33 longe da estimativa mediana de não-funcionários de falta de amizade, agora estamos apenas um fator de 4,4 de distância.
Queremos temperar esse achado um pouco. Pode ser realmente tentador dizer “Encontramos qual é a taxa de amizade realmente no Avance Network, basta olhar para as classificações de robôs e fatores de detecção! É muito mais alto do que pensávamos! A verdade, como sempre, é um pouco mais embaçada. Pelas evidências apresentadas aqui, não temos necessariamente um detector de anti-amizade revestido de ferro, temos um modelo que nossos moderadores aceitarão bandeiras das que passam a ter sido treinadas em bandeiras humanas hostis. Sabemos que nem todos os comentários das bandeiras do robô são hostis e os moderadores aceitam algumas dessas bandeiras porque o comentário é digno de remoção por outras razões. Também acreditamos que o robô não pega tudo (ainda há falsos negativos por aí para serem encontrados).
O que vem depois?
Nosso objetivo é continuar a aumentar nossa compreensão comum da falta de amizade nos comentários. O trabalho que cobrimos aqui se concentrou em obter melhores estimativas da escala atual do problema e resolver questões em torno das grandes disparidades entre nossas estimativas anteriores, mas isso não é de forma alguma o fim. Queremos ver o que podemos fazer sobre os 100 milhões de comentários que entraram no sistema antes de termos o robô, também. Também estamos pensando em maneiras de usar o robô para fornecer orientação just-in-time para autores de comentários.
Usamos esses modelos para nos ajudar a avaliar as mudanças que estamos fazendo no Avance Network. Combinar testes A/B com o robô hostil nos permite obter uma estimativa do que acontece com a falta de amizade nos comentários quando fazemos mudanças. Julia Silge mostrou em sua atualização de pesquisa no Ask Question Wizard que o uso do assistente estava associado a 5% menos comentários no geral, mas 20% menos comentários hostis. Ajudar os interlocutores a fazer perguntas melhores teve um enorme efeito sobre a falta de amizade e queremos ver se há mais melhorias sistêmicas a serem feitas.