Editar

Share via


Análise de risco de conformidade usando a Azure Cognitive Search

Azure AI Search
Serviços de IA do Azure
Microsoft Graph

Este artigo fornece diretrizes técnicas para implementar uma solução de análise de risco de conformidade usando a Azure Cognitive Search. As diretrizes são baseadas em experiências de projetos do mundo real. Dado o escopo abrangente da solução e a necessidade de adaptá-la ao seu caso de uso específico, o artigo se concentra nos aspectos essenciais e específicos de arquitetura e implementação. Ele faz referência a tutoriais passo a passo, conforme apropriado.

Apache®, Apache Lucene® e o logotipo flame são marcas registradas ou marcas comerciais da Apache Software Foundation nos Estados Unidos e/ou em outros países. O uso desta marca não implica aprovação por parte da Apache Software Foundation.

Introdução

Todos os dias, consultores e traders de instituições financeiras discutem, analisam e decidem sobre transações no valor de milhões de dólares. Transações fraudulentas, conspirações, informações privilegiadas e outras condutas impróprias por parte dos funcionários são riscos significativos para essas instituições, tanto em termos de consequências legais quanto de imagem pública.

As equipes de conformidade trabalham para mitigar esses riscos. Parte de seu trabalho é monitorar as comunicações em vários canais, incluindo mensagens instantâneas, email e chamadas telefônicas de trabalho. Muitas vezes, o monitoramento é cruzado com dados de transações comerciais. O objetivo é encontrar sinais de não-conformidade, muitas vezes ocultos e sutis. Essa tarefa é trabalhosa e intensiva em atenção e envolve peneirar grandes volumes de dados. Embora os sistemas automatizados possam ajudar, o volume de riscos negligenciados pode ser bastante alto, o que resulta na necessidade de revisar as comunicações originais.

A Azure Cognitive Search pode ajudá-lo a automatizar e melhorar a qualidade da avaliação de risco. Ela tem IA integrada, IA extensível e recursos de pesquisa inteligente. A solução de análise de risco de conformidade apresentada neste artigo mostra como identificar riscos, como má conduta de traders financeiros, consolidando e analisando conteúdo de vários canais de comunicação. Os riscos potenciais que podem ser identificados neste conteúdo não estruturado incluem sinais de manipulação de mercado, informações privilegiadas, fraude de fundos mútuos e outros.

A arquitetura da solução usa os Serviços Cognitivos do Azure e a Azure Cognitive Search. O cenário mira riscos de comunicação no setor financeiro, mas o padrão de design se transfere para outras indústrias e setores, como governo e saúde. As organizações podem adaptar a arquitetura desenvolvendo e integrando modelos de avaliação de risco que se aplicam aos seus cenários de negócios. Por exemplo, o aplicativo de demonstração Wolters Kluwer fornece aos advogados a capacidade de encontrar rapidamente informações relevantes em registros e correspondências da Securities and Exchange Commission (SEC). Identifica riscos relacionados ao financiamento, incluindo riscos de segurança cibernética e propriedade intelectual.

A Azure Cognitive Search tem IA interna e habilidades personalizadas que melhoram o desempenho do processo de negócios e a produtividade das equipes de conformidade. É especialmente útil para as seguintes situações:

  • Quando existe uma necessidade de extrair insights de um grande número de documentos heterogêneos não estruturados, como relatórios financeiros, transcrições de discurso e emails.
  • Os procedimentos de gerenciamento de risco para conteúdo não estruturado não estão totalmente em vigor.
  • As abordagens existentes consomem muito tempo e trabalho e resultam em muitos alarmes falsos ou em riscos reais que são negligenciados.
  • Há uma necessidade de integrar diversos canais de comunicação e fontes de dados, incluindo dados estruturados, para uma análise de risco mais abrangente.
  • O conhecimento de dados e domínio está disponível para treinar modelos de machine learning para identificar sinais de risco em texto não estruturado. Alternativamente, os modelos existentes podem ser integrados.
  • É necessário que a arquitetura possa ingerir e processar continuamente dados não estruturados recém-disponíveis, como conversas e notícias, para melhorar a solução.
  • Os analistas de conformidade precisam de uma ferramenta eficiente para a identificação e análise detalhada dos riscos. A ferramenta deve ser human-in-the-loop para que os analistas controlem o processo e possam sinalizar possíveis previsões incorretas para melhorar os modelos.

A Azure Cognitive Search é um serviço de pesquisa na nuvem que tem recursos internos de IA que enriquecem todos os tipos de informações para ajudá-lo a identificar e explorar conteúdo relevante em escala. Você pode usar habilidades cognitivas para visão e linguagem ou usar modelos personalizados de machine learning para descobrir insights de todos os tipos de conteúdo. A Azure Cognitive Search também oferece recursos de pesquisa semântica que usam técnicas avançadas de machine learning para classificar a intenção do usuário e classificar contextualmente os resultados de pesquisa mais relevantes.

O diagrama a seguir mostra uma exibição de alto nível de como a Azure Cognitive Search funciona, desde a ingestão e indexação de dados até a disponibilização de resultados para o usuário.

Diagram of high-level view of how Azure Cognitive Search works.

Baixe um arquivo do PowerPoint dessa arquitetura.

Este artigo fornece detalhes sobre a solução para o caso de uso de análise de risco e outros cenários de serviços financeiros, como o exemplo Wolters Kluwer mencionado anteriormente. Ele fornece etapas de execução técnica com documentação de instruções referenciada e uma arquitetura de referência. Inclui as melhores práticas do ponto de vista organizacional e técnico. O padrão de design pressupõe que você traga seus próprios dados e desenvolva seus próprios modelos de análise de risco, adequados ao seu contexto e requisitos de negócios.

Dica

Verifique estes recursos para obter uma introdução à Azure Cognitive Search e experimente-a em ação:

Visão geral da solução

O diagrama a seguir fornece uma visão de alto nível da solução de análise de risco.

Diagram of a high-level view of the risk analysis solution.

Baixe um arquivo do PowerPoint dessa arquitetura.

Para identificar comunicações de risco verdadeiro, o conteúdo de canais de comunicação heterogêneos é extraído e enriquecido por vários modelos de machine learning dos Serviços Cognitivos. Em seguida, modelos específicos de domínio personalizado são aplicados para identificar sinais de manipulação de mercado e outros riscos que aparecem nas comunicações e interações entre as pessoas. Todos os dados são agregados em uma solução consolidada do Azure Cognitive Search. A solução consiste em um aplicativo amigável com recursos de identificação e análise de riscos. Os dados do aplicativo são armazenados em um índice de pesquisa e em um repositório de conhecimento se você precisar de armazenamento de longo prazo.

A ilustração a seguir fornece uma visão geral conceitual da arquitetura da solução:

Diagram of the conceptual overview of the solution architecture.

Baixe um arquivo do PowerPoint dessa arquitetura.

Embora cada canal de comunicação — por exemplo, email, chats e telefonia — possa ser usado isoladamente para detectar riscos potenciais, melhores insights são obtidos combinando canais e aumentando o conteúdo com informações complementares, como notícias do mercado.

A solução de análise de risco utiliza várias interfaces para integrar sistemas de comunicação empresarial para ingestão de dados:

  • O Armazenamento de Blobs é usado como uma fonte geral de dados em formato de documento, como conteúdo de email, incluindo anexos, transcrições de chamadas telefônicas ou bate-papos e documentos de notícias.
  • Os serviços de comunicação do Office 365, como o Microsoft Exchange Online e o Microsoft Teams, podem ser integrados usando o Conexão de Dados do Microsoft Graph para ingestão em massa de email, bate-papos e outros conteúdos. Uma interface do Azure Cognitive Search para SharePoint no Microsoft 365 também está disponível.
  • As comunicações de voz, como chamadas telefônicas, são transcritas usando o serviço de Conversão de Fala em Texto dos Serviços Cognitivos. As transcrições e metadados resultantes são ingeridos pela Azure Cognitive Search por meio do Armazenamento de Blobs.

Esses exemplos abrangem os canais de comunicação corporativos usados com frequência. No entanto, a integração de canais adicionais também é possível e pode usar padrões de ingestão semelhantes.

Após a consolidação, os dados brutos são enriquecidos por habilidades de IA para detectar a estrutura e criar conteúdo baseado em texto a partir de tipos de conteúdo anteriormente não pesquisáveis. Por exemplo:

  • Os relatórios financeiros em arquivos do PowerPoint ou PDFs geralmente contêm imagens incorporadas em vez de texto legível por máquina, a fim de evitar alterações. Para processar esse tipo de conteúdo, todas as imagens são analisadas por reconhecimento óptico de caracteres (OCR) usando a habilidade cognitiva OCR.
  • O conteúdo em vários idiomas é traduzido para o inglês ou outro idioma usando a habilidade cognitiva Tradução de Texto.
  • Informações significativas, como nomes de pessoas e organizações, são extraídas automaticamente e podem ser usadas para consultas de pesquisa avançadas usando a habilidade cognitiva Reconhecimento de Entidade. Por exemplo, uma pesquisa pode encontrar todas as comunicações entre João Silva e Maria Santos que discutem sobre uma determinada empresa durante um período de tempo especificado.
  • Modelos personalizados são usados para identificar evidências de risco, como informações privilegiadas, em comunicações. Esses modelos específicos de domínio podem ser baseados em palavras-chave, enunciados ou parágrafos inteiros. Eles usam tecnologias avançadas de processamento de linguagem natural (NLP). Os modelos personalizados são treinados usando dados específicos do domínio para o caso de uso atual.

Depois de aplicar os enriquecimentos e habilidades personalizadas da IA da Azure Cognitive Search, o conteúdo é consolidado em um índice de pesquisa para dar suporte a cenários avançados de pesquisa e mineração de conhecimento. Analistas de conformidade e outros usuários usam o aplicativo front-end para identificar possíveis comunicações de risco e realizar pesquisas detalhadas para análises adicionais. A gestão de riscos é um processo dinâmico. Modelos são constantemente aprimorados na produção e modelos para novos tipos de risco são adicionados. Portanto, a solução precisa ser modular. Novos tipos de risco são sinalizados automaticamente na interface do usuário à medida que o conjunto de modelos é estendido.

O aplicativo front-end usa consultas de pesquisa inteligentes e semânticas para examinar o conteúdo. O conteúdo também pode ser movido para um repositório de conhecimento para retenção de conformidade ou integração com outros sistemas.

Os blocos de construção da solução são descritos com mais detalhes nas seções a seguir.

A implementação de uma solução de análise de risco é um exercício multidisciplinar que requer o envolvimento das principais partes interessadas de vários domínios. Com base em nossas experiências, recomendamos incluir as seguintes funções para garantir um desenvolvimento bem-sucedido e a adoção organizacional da solução.

Diagram that shows the roles needed for a successful deployment of the solution.

Dica

  • Confira a documentação para obter mais informações sobre a Azure AI Search.

Ingestão de dados

Esta seção explica como consolidar conteúdo heterogêneo em uma única fonte de dados e, em seguida, configurar uma coleção inicial de ativos de pesquisa derivados dessa fonte.

O desenvolvimento e a implementação de uma solução da Azure Cognitive Search são frequentemente um processo incremental. A adição de fontes de dados, transformações e ampliações é feita em iterações sucessivas, além das configurações de linha de base.

A primeira etapa de uma solução da Azure Cognitive Search é criar uma instância de serviço no portal do Azure. Além do serviço de pesquisa em si, você precisa de vários ativos de pesquisa, incluindo um índice de pesquisa, indexador, fonte de dados e conjunto de habilidades. Você pode criar uma configuração de linha de base com pouco esforço usando o assistente Importar dados da Azure Cognitive Search, que está no portal do Azure. Esse assistente, ilustrado aqui, orienta o usuário pelas etapas básicas de criação e carregamento de um índice de pesquisa simples que usa dados de uma fonte de dados externa.

Screenshot of the import data wizard.

A criação do índice de pesquisa pelo assistente Importar dados tem quatro etapas:

  1. Conexão com dados: a conexão com o Armazenamento de Blobs existente, por exemplo, pode ser feita sem esforço com alguns cliques. Uma cadeia de conexão é usada para autenticação. Outras fontes de dados com suporte nativo incluem uma variedade de Serviços do Azure, como o Banco de Dados SQL do Azure, o Azure Cosmos DB e serviços como o SharePoint Online. Nesta solução, o Armazenamento de Blobs é usado para consolidar os tipos de conteúdo heterogêneos.
  2. Adição de habilidades cognitivas: nesta etapa opcional, habilidades de IA integradas são adicionadas ao processo de indexação. Eles são aplicados para enriquecer o conteúdo lido da fonte de dados. Por exemplo, esta etapa pode extrair os nomes e locais de pessoas e organizações.
  3. Personalização do índice de destino: nesta etapa, o desenvolvedor configura as entidades de campo para o índice. Um índice padrão é fornecido, mas os campos podem ser adicionados, excluídos ou renomeados. Os campos de exemplo são: título do documento, descrição, URL, autor, localização, empresa e cotação de ações, e os tipos de operações possíveis em cada um deles.
  4. Criação do indexador: a última etapa configura um indexador, o componente que é executado regularmente para atualizar o conteúdo do índice de pesquisa. Um parâmetro chave é a frequência com que o indexador deve ser executado.

Quando as configurações são confirmadas, uma fonte de dados, um conjunto de habilidades, um indexador e um índice são criados. Para cada um desses componentes, uma definição JSON é criada. As definições JSON fornecem personalização aprimorada e podem ser usadas para criar os serviços programaticamente por meio de uma API REST. O benefício é a criação consistente e programática de ativos em todas as iterações de desenvolvimento subsequentes. Por esse motivo, usamos definições JSON para demonstrar a configuração de todos os ativos. A seção Criação automática de ativos de pesquisa fornece explicações detalhadas de como usar essas definições para criar programaticamente todos os ativos.

Na configuração, o Armazenamento de Blobs é selecionado como a fonte de dados padrão. Embora as comunicações possam se originar de vários canais ou fontes, uma abordagem genérica para esse padrão de solução depende de todas as comunicações existentes no Armazenamento de Blobs e que contêm texto e/ou imagens. A etapa a seguir expandirá a configuração de uma definição JSON de fonte de dados para Armazenamento de Blobs.

Alguns padrões são referenciados nesta seção para exemplificar como ingerir comunicações do Office 365 no Armazenamento de Blobs e como transcrever chamadas de áudio usando o serviço de Conversão de Fala em Texto.

Armazenamento de Blobs

A definição JSON a seguir mostra a estrutura e as informações necessárias para configurar o Armazenamento de Blobs como uma fonte de dados para a Azure Cognitive Search:

{
  "name": "email-ds",
  "description": "Datasource for emails.",
  "type": "azureblob",
  "subtype": null,
  "credentials": {
    "connectionString": "DefaultEndpointsProtocol=https;AccountName=..."
  },
  "container": {
    "name": "communications",
    "query": "written_comms/emails"
  }
}

Os seguintes campos são obrigatórios

  • Name: o nome atribuído à fonte de dados.
  • Type: define a fonte de dados como Armazenamento de Blobs.
  • Credentials: a cadeia de conexão para o Armazenamento de Blobs.
  • Container: o nome do contêiner onde os blobs são armazenados. Um diretório dentro do contêiner pode ser especificado para que várias fontes de dados possam ser criadas dentro do mesmo contêiner.

Por padrão, a fonte de dados do Armazenamento de Blobs oferece suporte a uma ampla variedade de formatos de documento. Por exemplo, transcrições de áudio são frequentemente armazenadas em arquivos JSON, emails são normalmente arquivos MSG ou EML, notícias ou material de comunicação adicional são muitas vezes em PDF, formatos do Word como DOC/DOCX/DOCM ou formatos do PowerPoint como PPT/PPTX/PPTM, ou páginas HTML da Web.

Para configurar várias fontes de dados para comunicações no mesmo Armazenamento de Blobs, você pode usar uma das seguintes técnicas:

  • Dê a cada fonte de dados seu próprio contêiner.
  • Use o mesmo contêiner para todas as fontes de dados, mas dê a cada fonte de dados seu próprio diretório nesse contêiner.

Conexão de Dados do Microsoft Graph

Para clientes do Office 365, a Conexão de Dados do Microsoft Graph pode ser usado para extrair dados selecionados do Microsoft Graph para o Armazenamento do Azure, upstream da solução da Azure Cognitive Search. Os dados armazenados no Microsoft Graph incluem dados como emails, reuniões, bate-papos, documentos do SharePoint, pessoas e tarefas.

Observação

A utilização deste mecanismo está sujeita a um processo de consentimento de dados.

Diagram of Microsoft Graph Data Connect.

Baixe um arquivo do PowerPoint dessa arquitetura.

O diagrama mostra o fluxo de dados do Microsoft Graph. O processo depende dos recursos do Azure Data Factory para extrair dados do Microsoft Graph. Há um controle de segurança granular, incluindo consentimento e um modelo de governança. O pipeline do Data Factory é configurado com os tipos de dados a serem extraídos, como mensagens de email e bate-papos de equipe, e um escopo, como um grupo de usuários e um intervalo de datas. A pesquisa é executada em uma agenda definida em intervalos configuráveis e configurada para soltar os dados extraídos no Armazenamento do Azure. A partir daí, os dados são ingeridos na Azure Cognitive Search por um indexador.

Dica

Os artigos a seguir incluem instruções passo a passo sobre como configurar uma extração de dados do Conexão de Dados do Microsoft Graph no Armazenamento do Azure via Data Factory, para posterior ingestão na Azure Cognitive Search:

Arquitetura de referência do reconhecimento de fala

As conversas telefônicas são uma ferramenta de trabalho essencial em qualquer organização de serviços financeiros. Elas podem ser incluídos em uma solução de análise de risco se houver acesso aos respectivos arquivos de áudio. Esta seção aborda essa situação.

Quebra de documento na Azure Cognitive Search é um conjunto de etapas de processamento executadas pelo indexador para extrair texto e imagens da fonte de dados. Para arquivos de áudio, precisamos de uma maneira de extrair transcrições dessas comunicações de áudio para que estejam disponíveis para processamento baseado em texto.

O diagrama a seguir mostra uma ingestão de áudio e um pipeline de reconhecimento de fala. O pipeline processa lotes de arquivos de áudio e armazena os arquivos de transcrição no Armazenamento de Blobs, upstream da solução da Azure Cognitive Search.

Diagram of a speech-to-text pipeline.

Baixe um arquivo do PowerPoint dessa arquitetura.

Nessa arquitetura de referência, os arquivos de áudio são carregados no Armazenamento de Blobs por meio de um aplicativo cliente. Durante esse processo, o aplicativo se autentica usando o Azure AI Search e chama a API REST para obter um token para o Armazenamento de Blobs. O acesso seguro à API REST é fornecido pelo Gerenciamento de API do Azure, e um Azure Key Vault fornece armazenamento seguro dos segredos necessários para gerar os tokens, bem como credenciais de conta.

Depois que os arquivos são carregados, um gatilho de Grade de Eventos do Azure é emitido para invocar uma função do Azure. Em seguida, a função processa o arquivo de áudio usando a API de Conversão de Fala em Texto dos Serviços Cognitivos. O documento JSON transcrito é armazenado em um contêiner de blob separado, que pode ser ingerido como uma fonte de dados pela Azure Cognitive Search.

Dica

Consulte o seguinte artigo para obter detalhes sobre a integração da transcrição de fala:

Solução de busca

Conforme descrito, várias fontes de dados, como emails, transcrições e notícias, são criadas e armazenadas no Armazenamento de Blobs. Cada fonte de dados é então transformada e enriquecida à sua própria maneira. Toda a saída resultante é mapeada para o mesmo índice, consolidando dados de todos os tipos de documentos de origem.

O diagrama a seguir ilustra essa abordagem. Um indexador personalizado é configurado para cada uma das fontes de dados disponíveis e todos os resultados alimentam um único índice de pesquisa.

Diagram that shows how indexers transform data for consolidating.

As seções a seguir exploram os mecanismos de indexação e os índices pesquisáveis. Eles mostram como configurar um indexador e como indexar definições JSON para implementar uma solução pesquisável.

Indexadores

Um indexador orquestra a extração e o enriquecimento do conteúdo do documento. Uma definição de indexador inclui detalhes sobre a fonte de dados a ser ingerida, como mapear os campos e como transformar e enriquecer os dados.

Como o mapeamento, a transformação e o enriquecimento variam de acordo com o tipo de dados, deve haver um indexador para cada fonte de dados. Por exemplo, a indexação de emails pode exigir habilidades de OCR para processar imagens e anexos, mas as transcrições precisam apenas de habilidades baseadas em idiomas.

Essas são as etapas do processo de indexação:

  • Quebra de documentos: a Azure Cognitive Search abre e extrai o conteúdo relevante dos documentos. O conteúdo indexável extraído é uma função da fonte de dados e dos formatos de arquivo. Por exemplo, para um arquivo como um arquivo PDF ou Microsoft 365 no Armazenamento de Blobs, o indexador abre o arquivo e extrai texto, imagens e metadados.
  • Mapeamento de campos: os nomes dos campos que foram extraídos da origem são mapeados em campos de destino em um índice de pesquisa.
  • Execução do conjunto de habilidades: o processamento de IA integrado ou personalizado é feito nesta etapa, conforme descrito em uma seção posterior.
  • Mapeamento de campo de saída: os nomes dos campos transformados ou enriquecidos são mapeados para campos de destino em um índice.

O trecho a seguir mostra um segmento da definição JSON do indexador de email. Essa definição usa as informações detalhadas nas etapas e fornece um conjunto detalhado de instruções para o mecanismo de indexação.

{
  "name": "email-indexer",
  "description": "",
  "dataSourceName": "email-ds",
  "skillsetName": "email-skillset",
  "targetIndexName": "combined-index",
  "disabled": null,
  "schedule": {
    "interval": "P1D",
    "startTime": "2021-10-17T22:00:00Z"
  },
  "parameters": {
    "batchSize": null,
    "mixabilities": 50,
    "maxFailedItemsPerBatch": 0,
    "base64EncodeKeys": null,
    "configuration": {
      "imageAction": "generateNormalizedImages",
      "dataToExtract": "contentAndMetadata",
      "parsingMode": "default"
    }
  },
  "fieldMappings": [
    {
      "sourceFieldName": "metadata_storage_path",
      "targetFieldName": "metadata_storage_path",
      "mappingFunction": {
        "name": "base64Encode",
        "parameters": null
      }
    }
  ],
  "outputFieldMappings": [
    {
      "sourceFieldName": "/document/merged_content/people",
      "targetFieldName": "people"
    },
    {
      "sourceFieldName": "/document/merged_content/organizations",
      "targetFieldName": "organizations"
    },

Neste exemplo, o indexador é identificado pelo nome exclusivo email-indexer. Esse indexador refere-se a uma fonte de dados chamada email-ds, e os enriquecimentos de IA são definidos pelo conjunto de habilidades chamado email-skillset. As saídas do processo de indexação são armazenadas no índice denominado combined-index. Os detalhes adicionais incluem uma agenda definida como diária, um número máximo de 50 itens com falha e uma configuração para gerar imagens normalizadas e extrair conteúdo e metadados.

Na seção de mapeamento de campo, o campo metadata_storage_path é codificado usando um base64encoder, para servir como uma chave de documento exclusiva. Na configuração de mapeamento de campo de saída (exibida apenas parcialmente), as saídas do processo de enriquecimento são mapeadas para o esquema de índice.

Se um novo indexador for criado para uma nova fonte de dados (por exemplo, transcrições), a maior parte da definição JSON será configurada para se alinhar à fonte de dados e à seleção do conjunto de habilidades. No entanto, o índice de destino deve ser índice combinado (desde que todos os mapeamentos de campo sejam compatíveis). Essa é a técnica que permite que o índice consolide resultados de várias fontes de dados.

Índices e outras estruturas

Após o processo de indexação, os documentos extraídos e aumentados são mantidos em um índice pesquisável e, opcionalmente, em repositórios de conhecimento.

  • Índice pesquisável: um índice pesquisável corresponde à saída necessária que é sempre criada como parte de um processo de indexação e, ocasionalmente, também é chamada de catálogo de pesquisa. Para criar um índice, é necessária uma definição de índice. Ele contém configurações (como tipo, pesquisável, filtrante, classificável, facetável e recuperável) para todos os campos. Esses nomes de campo de índice precisam estar alinhados com o campo do indexador e os mapeamentos de campo de saída.

    Vários indexadores podem ser atribuídos ao mesmo índice, para que o índice consolide comunicações de diferentes conjuntos de dados, como emails ou transcrições. Um índice pode ser consultado usando a pesquisa de texto completo ou a pesquisa semântica.

    Semelhante aos indexadores, os índices podem ser configurados usando uma definição JSON de índice. O trecho a seguir corresponde a um segmento da definição JSON do índice combinado:

    {
    "name": "combined-index",
    "fields": [
      {
        "name": "metadata_storage_path",
        "type": "Edm.String",
        "facetable": false,
        "filterable": false,
        "key": true,
        "retrievable": true,
        "searchable": false,
        "sortable": false,
        "analyzer": null,
        "indexAnalyzer": null,
        "searchAnalyzer": null,
        "synonymMaps": [],
        "fields": []
      },
      {
        "name": "people",
        "type": "Collection(Edm.String)",
        "facetable": true,
        "filterable": true,
        "retrievable": true,
        "searchable": true,
        "analyzer": "standard.lucene",
        "indexAnalyzer": null,
        "searchAnalyzer": null,
        "synonymMaps": [],
        "fields": []
      },
    

    Nesse exemplo, o índice é identificado pelo nome exclusivo combined-index. A definição do índice é independente de quaisquer indexadores, fontes de dados ou conjuntos de habilidades. Os campos definem o esquema do índice e, no momento da configuração, um usuário pode configurar o nome e o tipo de cada campo, bem como um conjunto de propriedades, como facetável, filtrável.

    Neste trecho, dois campos são incluídos. Metadata_storage_path é uma cadeia de caracteres recuperável que é usada como chave de documento. Por outro lado, o campo pessoas é uma coleção de cadeias de caracteres que podem ser facetáveis, filtráveis, recuperáveis e pesquisáveis, e a consulta de texto completo é processada usando um analisador standard.lucene.

  • Repositório de conhecimento: um repositório de conhecimento pode ser uma saída opcional, a ser usada para análise independente e processamento downstream em cenários que não sejam de pesquisa, como mineração de conhecimento. A implementação de um repositório de conhecimento é definida dentro de um conjunto de habilidades, onde o documento enriquecido ou campos específicos podem ser configurados para serem projetados como tabelas ou arquivos.

    A ilustração a seguir mostra uma implementação de um repositório de conhecimento:

    Diagram that illustrates how to implement a knowledge store.

Baixe um arquivo do PowerPoint dessa arquitetura.

Com um repositório de conhecimento da Azure Cognitive Search, os dados podem ser persistentes usando as seguintes opções (chamadas projeções):

  • As projeções de arquivo permitem a extração de conteúdo (por exemplo, imagens incorporadas) como arquivos. Um exemplo são diagramas ou gráficos de relatórios financeiros que são exportados em formatos de arquivo de imagem.
  • As projeções de tabela oferecem suporte a estruturas de relatórios tabulares (por exemplo, para casos de uso de análise). Eles podem ser usados para armazenar informações agregadas, como pontuações de risco para cada documento.
  • As projeções de objeto extraem conteúdo como objetos JSON no Armazenamento de Blobs. Eles podem ser usados para a solução de análise de risco se os dados precisarem ser retidos em detalhes granulares por motivos de conformidade. As pontuações de risco podem ser arquivadas usando essa abordagem.

Como a estrutura dos dados de pesquisa é otimizada para consultas, ela geralmente não é otimizada para outros fins, como exportar para um repositório de conhecimento. Você pode usar a Habilidade Shaper para reestruturar os dados para atender aos seus requisitos de retenção antes de aplicar as projeções.

Em um repositório de conhecimento, o conteúdo persistente é armazenado no Armazenamento do Azure, no armazenamento de tabela ou blob.

Há várias opções para usar dados de um repositório de conhecimento. O Machine Learning do Azure pode acessar o conteúdo para criar modelos de Machine Learning. O Power BI pode analisar os dados e criar elementos visuais.

As organizações financeiras têm políticas e sistemas existentes para retenção de conformidade de longo prazo. Portanto, o Armazenamento do Azure pode não ser a solução de destino ideal para esse caso de uso. Depois que os dados são salvos no repositório de conhecimento, o Data Factory pode exportá-los para outros sistemas, como bancos de dados.

Mecanismo de consulta

Depois que um índice é criado, você pode usar a Azure Cognitive Search para consultá-lo usando pesquisas semânticas e de texto completo.

  • Pesquisa de texto completo é construída no mecanismo de consulta Apache Lucene e aceita termos ou frases que são passados em um parâmetro de pesquisa em todos os campos pesquisáveis do índice. Quando termos correspondentes são encontrados, o mecanismo de consulta classifica os documentos em ordem de relevância e retorna os principais resultados. A classificação de documentos pode ser personalizada por meio de perfis de pontuação, e os resultados podem ser classificados usando campos classificáveis por índice.
  • A pesquisa semântica fornece um conjunto de recursos poderosos que melhoram a qualidade dos resultados da pesquisa usando relevância semântica e compreensão da linguagem. Quando habilitada, a pesquisa semântica estende o recurso de pesquisa das seguintes maneiras:
    • Reclassificação semântica usa o contexto ou o significado semântico de uma consulta para calcular uma nova pontuação de relevância sobre os resultados existentes.
    • Realces semânticos extrai frases e frases de um documento que melhor resumem o conteúdo.

A seção Interface do usuário inclui um exemplo do poder da pesquisa semântica. A pesquisa semântica está em visualização pública. Mais informações sobre seus recursos podem ser encontradas na documentação.

Criação automática de ativos de pesquisa

Desenvolver uma solução de pesquisa é um processo iterativo. Depois de implantar a infraestrutura da Azure Cognitive Search e a versão inicial dos ativos de pesquisa, como fonte de dados, índice, indexador e conjunto de habilidades, você aprimora continuamente sua solução (por exemplo, adicionando e configurando habilidades de IA).

Para garantir consistência e iterações rápidas, recomendamos que você automatize o processo de criação dos ativos da Azure Cognitive Search.

Para nossa solução, usamos a API REST da Azure Cognitive Search para implantar dez ativos de forma automatizada, conforme mostrado nesta ilustração:

Diagram that shows the use of the REST API to automate the deployment of assets.

Como nossa solução requer processamento diferente e enriquecimento de IA para emails, transcrições e documentos de notícias, criamos fontes de dados, indexadores e conjuntos de habilidades distintos. No entanto, decidimos usar um único índice para todos os canais para simplificar o uso da solução de análise de risco.

Cada um dos dez itens tem um arquivo de definição JSON associado para especificar sua configuração. Consulte as caixas de código de exemplo neste guia para obter explicações sobre as configurações.

As especificações JSON são enviadas para a Azure Cognitive Search por meio de solicitações de API feitas pelo script build-search-config.py na ordem mostrada. O exemplo a seguir ilustra como criar o conjunto de habilidades de email especificado em email-skillset.json:

url = f"https://{search_service}.search.windows.net/skillsets?api-version=2020-06-30-Preview"
headers = {'Content-type': 'application/json', 'api-key': cog_search_admin_key}

r = requests.post(url, data=open('email-skillset.json', 'rb'), headers=headers)

print(r)
  • search_service é o nome do recurso de Azure Cognitive Search.
  • cog_search_admin_key é a chave de administração. O uso de uma chave de consulta não é suficiente para operações de gerenciamento.

Depois que todas as solicitações de configuração tiverem sido executadas e o índice for carregado, uma consulta REST determinará se a solução de pesquisa responde corretamente. Observe que há um atraso de tempo antes que todos os ativos sejam gerados e os indexadores tenham concluído suas execuções iniciais. Talvez seja necessário aguardar alguns minutos antes de consultar pela primeira vez.

Para obter informações sobre como usar a API REST da Azure Cognitive Search para criar programaticamente a configuração para indexar o conteúdo do Armazenamento de Blobs, consulte: Tutorial: usar REST e IA para gerar conteúdo pesquisável a partir de blobs do Azure.

Enriquecimentos de IA

Nas seções anteriores, construímos a base da solução de análise de risco. Agora é hora de se concentrar no processamento de informações de conteúdo bruto em insights de negócios tangíveis.

Para tornar o conteúdo pesquisável, o conteúdo de comunicação é passado por um pipeline de enriquecimentos de IA que usam habilidades internas e modelos personalizados para detecção de risco:

Diagram that shows an AI enrichment pipeline.

Primeiro, analisamos como usar habilidades internas com base nas habilidades de exemplo de 1 a 4 que usamos para a solução de análise de risco. Em seguida, vemos como adicionar uma habilidade personalizada para integrar modelos de risco (etapa 5). Finalmente, vemos como revisar e depurar o pipeline de habilidades.

As seções a seguir fornecem uma introdução conceitual. Para obter uma experiência prática, consulte o guia passo a passo do Microsoft Learn.

Habilidades integradas de enriquecimento de IA

O pipeline de enriquecimentos de IA aplicados é chamado de conjunto de habilidades de Azure Cognitive Search. As seguintes habilidades internas são usadas na solução de análise de risco:

  • Reconhecimento óptico de caracteres: os relatórios financeiros podem incluir uma quantidade significativa de conteúdo incorporado em imagens em vez de texto para evitar alterações no conteúdo. A apresentação a seguir mostra um exemplo de um relatório trimestral da Microsoft:

    Screenshot of an example of content embedded in an image.

    Todos os slides do deck contêm apenas conteúdo gráfico. Para fazer uso das informações, a habilidade cognitiva OCR é usada para emails (é especialmente relevante para anexos) e documentos de notícias de mercado. Isso garante que consultas de pesquisa, como "despesas de capital" no exemplo anterior, localizem o texto do slide mesmo que o conteúdo original não seja legível por máquina. A relevância da pesquisa é melhorada ainda mais pela pesquisa semântica nos casos em que os usuários utilizam termos desviantes para "despesas de capital" que não estão contidos no texto.

  • Detecção de idioma: em uma organização global, o suporte para tradução automática é um requisito comum. Supondo que a equipe de analistas de conformidade prefira ler e se comunicar consistentemente em inglês, por exemplo, a solução precisa ser capaz de traduzir o conteúdo com precisão. A habilidade cognitiva de detecção de linguagem é usada para identificar o idioma do documento original. Essas informações são usadas para identificar se uma tradução para o idioma de destino desejado é necessária e também são mostradas na interface do usuário para indicar o idioma original ao usuário.

  • Extrair pessoas e organizações: a habilidade cognitiva de Reconhecimento de Entidades pode identificar pessoas, locais, organizações e outras entidades em texto não estruturado. Essas informações podem ser usadas para melhorar a pesquisa ou a navegação (por exemplo, filtragem e facetamento) em um grande corpo de conteúdo heterogêneo. Para a solução de análise de risco, foi escolhida a extração de pessoas (por exemplo, nomes de comerciantes) e organizações (por exemplo, nomes de empresas).

    O exemplo a seguir da definição JSON do conjunto de habilidades para emails fornece detalhes sobre a configuração selecionada:

    "skills": [
      {
        "@odata.type": "#Microsoft.Skills.Text.V3.EntityRecognitionSkill",
        "name": "Detect Entities",
        "description": "Detect people and organizations in emails",
        "context": "/document/merged_content",
        "categories": [
          "Person",
          "Organization"
        ],
        "defaultLanguageCode": "en",
        "minimumPrecision": 0.85,
        "modelVersion": null,
        "inputs": [
          {
            "name": "text",
            "source": "/document/merged_content"
          },
          {
            "name": "languageCode",
            "source": "/document/original_language"
          }
        ],
        "outputs": [
          {
            "name": "persons",
            "targetName": "people"
          },
          {
            "name": "organizations",
            "targetName": "organizations"
          }
        ]
      },
    

    Primeiro, especificamos a extração de pessoas e organizações do conteúdo. Outras categorias existem (por exemplo, locais) e podem ser extraídas se necessário. No entanto, restringimos intencionalmente a extração a essas duas entidades para evitar sobrecarregar os usuários com muitas informações no início.

    Como nenhuma solução de IA fornece 100% de precisão, há sempre o risco de falsos positivos (por exemplo, nomes de organizações que não são realmente organizações) e falsos negativos (por exemplo, organizações reais são negligenciadas). O Azure Cognitive Search fornece controles para equilibrar a taxa de sinal para ruído na extração de entidades. No nosso caso, definimos a precisão mínima de detecção para 0,85 para aumentar a relevância do reconhecimento e reduzir o ruído.

    Na próxima etapa, especificamos as entradas e saídas para o conjunto de habilidades dentro do documento enriquecido. Nosso caminho de entrada aponta para merged_content, que inclui o email e os anexos. O conteúdo dos anexos inclui texto que foi extraído usando OCR.

    Finalmente, definimos os nomes de saída pessoas e organizações para as entidades especificadas. Posteriormente, eles são mapeados para o índice de pesquisa como parte da definição do indexador.

    As definições das outras habilidades seguem um padrão semelhante, complementado por configurações específicas de habilidades.

  • Tradução: a tradução real de documentos que contêm línguas estrangeiras para o inglês é realizada na próxima etapa. A habilidade cognitiva Tradução de Texto é usada para conversão. Observe que as taxas de tradução são avaliadas sempre que o texto é enviado para a API da Tradução de Texto, mesmo que o idioma de origem e de destino sejam os mesmos. Para evitar taxas de serviço nessas circunstâncias, habilidades cognitivas condicionais adicionais são usadas para contornar a tradução nesses casos.

Dica

Você pode usar o assistente Importar dados da Azure Cognitive Search para começar a ingerir e enriquecer conteúdo rapidamente. No futuro, você se beneficia da criação de conjuntos de habilidades e outros ativos da Azure Cognitive Search de forma automatizada. O artigo a seguir fornece mais informações:

Enriquecimento de IA personalizado para detecção de risco

Agora que você implementou as habilidades internas desejadas da Azure Cognitive Search, vamos ver como adicionar modelos personalizados para análise de risco.

Identificar má conduta intencional ou real no conteúdo de comunicação é sempre dependente do contexto e requer amplo conhecimento de domínio. Um dos principais objetivos da solução de análise de risco é fornecer uma maneira flexível de integrar e aplicar modelos de risco personalizados no pipeline de enriquecimento para descobrir riscos reais para cenários de negócios específicos.

Dependendo do caso de uso, o exemplo de conversa a seguir pode indicar uma possível má conduta pretendida:

Illustration that shows a conversation that suggests intended misconduct.

As opções a seguir podem analisar o conteúdo de comunicação não estruturado para identificar riscos:

  • Abordagem baseada em palavras-chave: essa técnica usa uma lista de palavras-chave relevantes (por exemplo, offline, insights especiais) para identificar riscos potenciais. Essa abordagem é fácil de implementar, mas pode ignorar os riscos se as formulações no conteúdo não corresponderem às palavras-chave.
  • Abordagens baseadas em reconhecimento de entidade: um modelo de machine learning é treinado em enunciados curtos (por exemplo, frases) para identificar riscos usando um modelo de linguagem. O conhecimento especializado é usado para criar um conjunto de treinamento de exemplos representativos com a classificação de risco correspondente (por exemplo, manipulação de mercado, informações privilegiadas). Uma das principais vantagens dessa técnica é que os riscos provavelmente serão identificados se os enunciados tiverem um significado semântico semelhante, mas formulações diferentes dos exemplos no conjunto de treinamento. O Serviço de compreensão de idioma de conversação do Azure ser usado para esses fins.
  • Abordagens avançadas baseadas em PNL: avanços recentes em redes neurais tornam possível analisar segmentos mais longos de texto não estruturado, incluindo classificação e outras tarefas de PNL. Essa abordagem pode identificar sinais que são mais sutis e que abrangem várias frases ou parágrafos. A desvantagem dessa abordagem é que, normalmente, são necessários muito mais dados de treinamento em comparação com outras técnicas. O Azure fornece várias opções para treinar modelos de NLP, incluindo Classificação de Textos Personalizada e Machine Learning Automatizado.

Qualquer modelo fornecido como um serviço Web REST pode ser integrado como uma habilidade personalizada à solução de análise de risco da Azure Cognitive Search. Em nosso exemplo, integramos um conjunto de modelos de Compreensão da Linguagem Coloquial com uma função do Azure que atua como a interface entre a Azure Cognitive Search e os modelos. O diagrama a seguir ilustra essa técnica:

Diagram that shows how to integrate a custom skill.

Baixe um arquivo do PowerPoint dessa arquitetura.

Emails e transcrições são verificados em busca de riscos após o processamento das habilidades internas. A habilidade personalizada fornece o tipo de documento e seu conteúdo para o aplicativo Azure Functions para pré-processamento. O aplicativo é baseado no exemplo publicado e executa as seguintes tarefas:

  1. Determina quais modelos usar: as organizações podem usar modelos distintos para identificar vários tipos de riscos (por exemplo, manipulação de mercado, informações privilegiadas, fraude de fundos mútuos). O aplicativo Functions ativa os modelos disponíveis dependendo das preferências configuradas.
  2. Pré-processa conteúdo: essa tarefa inclui descartar o conteúdo do anexo e dividir o texto em frases para corresponder à estrutura dos dados usados para treinar os modelos de risco.
  3. Envia o conteúdo tokenizado para os modelos de risco configurados: os modelos de risco atribuem pontuações de risco a cada frase.
  4. Agrega e pontua os resultados: isso é feito antes de devolvê-los ao conjunto de habilidades. A pontuação de risco do documento é o maior risco de todas as suas sentenças. A sentença de risco superior identificada também é retornada para exibição na interface do usuário. Além disso, os riscos documentais são classificados com base na pontuação em baixo, médio ou alto risco.
  5. Grava informações no índice de Azure Cognitive Search: as informações são usadas na interface do usuário do analista de conformidade e no repositório de conhecimento. Ele inclui todo o conteúdo de comunicações, os enriquecimentos internos e os resultados dos modelos de risco personalizados.

O exemplo JSON a seguir ilustra a definição de interface entre a Azure Cognitive Search e o aplicativo Functions (que chama os modelos de risco) como uma habilidade personalizada:

   {
      "@odata.type": "#Microsoft.Skills.Custom.WebApiSkill",
      "name": "apply-risk-models",
      "description": "Obtain risk model results",
      "context": "/document/content",
      "uri": "https://risk-models.azurewebsites.net/api/luis-risks?...",
      "httpMethod": "POST",
      "timeout": "PT3M",
      "batchSize": 100,
      "degreeOfParallelism": null,
      "inputs": [
        {
          "name": "text",
          "source": "/document/mergedenglishtext"
        },
        {
          "name": "doc_type",
          "source": "/document/type"
        }
      ],
      "outputs": [
        {
          "name": "risk_average",
          "targetName": "risk_average"
        },
        {
          "name": "risk_models",
          "targetName": "risk_models"
        }
      ],
    },

O URI especifica o endereço Web do aplicativo Functions que obtém as seguintes entradas da Azure Cognitive Search:

  • text contém o conteúdo em inglês.
  • doc_type é usado para distinguir entre transcrições, emails e notícias do mercado — eles exigem diferentes etapas de pré-processamento.

Depois que o aplicativo Functions recebe as pontuações de risco do recurso de compreensão da linguagem coloquial do Serviço Cognitivo do Azure para Linguagem, ele retorna os resultados consolidados para a Azure Cognitive Search.

As organizações de serviços financeiros precisam de uma abordagem modular para combinar de forma flexível os modelos de risco existentes e novos. Portanto, nenhuma codificação física de modelos específicos é executada. Em vez disso, risk_models é um tipo de dados complexo que retorna detalhes para cada tipo de risco (por exemplo, informações privilegiadas), incluindo a pontuação de risco e a frase identificada com a pontuação de risco mais alta. A conformidade e a rastreabilidade são as principais preocupações das organizações de serviços financeiros. No entanto, os modelos de risco são constantemente aprimorados (por exemplo, utilizando novos dados de treinamento), de modo que as previsões de um documento podem mudar ao longo do tempo. Para garantir a rastreabilidade, a versão específica do modelo de risco também é retornada a cada previsão.

A arquitetura pode ser reutilizada para integrar modelos de PNL mais avançados (por exemplo, para permitir a identificação de sinais de risco mais sutis que podem abranger várias declarações). O principal ajuste é combinar a etapa de pré-processamento no aplicativo Functions com o pré-processamento que foi feito para treinar o modelo de PNL.

Dica

Como implementar:

Depurando pipelines de enriquecimento de IA

Entender o fluxo de informações e os enriquecimentos de IA pode ser um desafio para grandes conjuntos de habilidades. A Azure Cognitive Search fornece recursos úteis para depuração e visualização do pipeline de enriquecimento, incluindo as entradas e saídas das habilidades.

Illustration of capabilities for debugging an enrichment pipeline.

O fluxograma foi extraído da guia Depurar sessões do recurso Azure Cognitive Search no portal do Azure. Ele resume o fluxo de enriquecimentos à medida que o conteúdo é sucessivamente processado pelas habilidades internas e modelos de risco personalizados em um conjunto de habilidades.

O fluxo de processamento no gráfico de habilidades é gerado automaticamente pela Azure Cognitive Search com base nas configurações de entrada e saída das habilidades. O gráfico também mostra o grau de paralelismo no processamento.

Uma habilidade condicional é usada para identificar o tipo de documento (email, transcrição ou notícia) porque eles são processados de forma diferente em etapas posteriores. As competências condicionais são utilizadas para evitar encargos de tradução para os casos em que as línguas original e de destino são as mesmas.

As habilidades internas incluem OCR, detecção de idioma, detecção de entidade, tradução e mesclagem de texto, que é usada para substituir uma imagem incorporada por saída OCR incorporada no documento original.

A última habilidade no pipeline é a integração da linguagem conversacional entendendo modelos de risco por meio do aplicativo Functions.

Por fim, os campos originais e enriquecidos são indexados e mapeados para o índice da Azure Cognitive Search.

O trecho a seguir de uma resposta de pesquisa mostra um exemplo dos insights que podem ser obtidos usando conteúdo enriquecido e pesquisa semântica. O termo de consulta é "como o capex se saiu" (abreviação de "como as despesas de capital se desenvolveram no período coberto pelo relatório?").

{
 "@search.captions" : [
  {
   "highlights" : "Cash flow from operations was $22.7 billion, up 2296 year-over-year,   driven by strong cloud billings and collections Free cash flow of $16.3 billion, up 1796 year-over-year, reflecting higher<em> capital expenditures</em> to support our cloud business 6 includes non-GAAP constant currency CCC\") growth and cash flow."
  }],
 "sender_or_caller" : "Jim Smith",
 "recipient" : "Mary Turner",
 "metadata_storage_name" : "Reevaluate MSFT.msg",
 "people" : ["Jim Smith", "Mary Turner", "Bill Ford", … ],
 "organizations" : ["Microsoft", "Yahoo Finance", "Federal Reserve", … ],
 "original_language" : "nl",
 "translated_text" : "Here is the latest update about …",
 "risk_average" : "high",
 "risk_models" : [
  {
   "risk" : "Insider Trade",
   "risk_score" : 0.7187,
   "risk_sentence" : "Happy to provide some special insights to you. Let’s take this conversation offline.",
   "risk_model_version" : "Inside Trade v1.3"
  },
 ]
}

Interface do usuário

Depois que uma solução de pesquisa é implementada, você pode consultar o índice diretamente usando o portal do Azure. Embora essa opção seja boa para aprender, experimentar e depurar, não é uma boa experiência para o usuário final.

Uma interface de usuário personalizada, com foco na experiência do usuário, é útil para mostrar o verdadeiro valor da solução de pesquisa e possibilitar que as organizações identifiquem e revisem as comunicações de risco em uma variedade de canais e fontes.

O Knowledge Mining Solution Accelerator fornece um modelo de interface do usuário da Azure Cognitive Search — um aplicativo Web MVC do .NET Core — que pode ser usado para criar rapidamente um protótipo para consultar e exibir os resultados da pesquisa.

Em algumas etapas, a interface do usuário do modelo pode ser configurada para conectar e consultar o índice de pesquisa, renderizando uma página da Web simples para pesquisar e visualizar os resultados. Este modelo pode ser ainda mais personalizado para melhorar a experiência de recuperação e análise de comunicações de risco.

A captura de tela a seguir mostra uma interface de usuário de exemplo para nosso cenário de risco, criada personalizando o modelo de interface do usuário da Azure Cognitive Search. Essa interface do usuário mostra uma maneira de mostrar a solução de pesquisa, fornecendo uma visão intuitiva das comunicações entre canais e das informações de risco.

Screenshot of a custom user interface created from the Azure Cognitive Search UI template.

A página inicial fornece interação com a solução de pesquisa. Ele permite que o usuário pesquise, refine, visualize e explore os resultados:

  1. Os resultados iniciais são recuperados de um índice de pesquisa e exibidos em uma forma tabular, proporcionando fácil acesso às comunicações e simplificando a comparação dos resultados.
    1. Os principais detalhes de comunicação estão disponíveis para o usuário, e documentos de vários canais (emails, transcrições, notícias) são consolidados em uma única visualização.
    2. Pontuações dos modelos de risco personalizados são mostradas para cada comunicação, onde os riscos mais altos podem ser destacados.
    3. Uma classificação de risco consolidada agrega as pontuações dos modelos de risco personalizados e é usada para classificar os resultados com base no nível de risco médio.
  2. Um controle deslizante de limite fornece a capacidade para o usuário alterar os limites de risco. As pontuações de risco personalizadas que excedem o limite são realçadas.
  3. Um seletor de intervalo de datas fornece a capacidade de ampliar o período de análise ou de procurar resultados históricos.
  4. Os resultados da pesquisa podem ser refinados usando um conjunto de filtros, como idioma ou tipo de documento. Essas opções são geradas dinamicamente na interface do usuário, como uma função dos campos facetáveis configurados no índice.
  5. Uma barra de pesquisa fornece a capacidade de pesquisar termos ou frases específicos no índice.
  6. A pesquisa semântica está disponível. O usuário pode alternar entre pesquisa padrão e semântica.
  7. Novas comunicações podem ser carregadas e indexadas diretamente através da interface do usuário. Uma página de detalhes também é fornecida para cada documento:

Screenshot of an example details page.

A página de detalhes fornece acesso ao conteúdo da comunicação e aos enriquecimentos e metadados:

  1. O conteúdo que foi extraído durante o processo de quebra de documentos é exibido. Alguns arquivos, como PDFs, podem ser visualizados diretamente na página de detalhes.
  2. Os resultados dos modelos de risco personalizados são resumidos.
  3. As principais pessoas e organizações mencionadas no documento são mostradas nesta página.
  4. Metadados adicionais que foram capturados durante o processo de indexação podem ser adicionados e mostrados em guias adicionais da página de detalhes.

Se for ingerido conteúdo que não esteja em inglês, o usuário poderá revisar o conteúdo no idioma original ou em inglês. A guia Transcrição da página de detalhes mostra o conteúdo original e o conteúdo traduzido lado a lado. Isso demonstra que, durante o processo de indexação, ambas as linguagens são persistentes, permitindo que ambas sejam consumidas pela interface do usuário.

Por fim, o usuário pode fazer buscas semânticas. O próximo exemplo mostra o resultado superior em que a expressão "como foi o capex se saiu" (abreviação de "como os gastos de capital se desenvolveram no trimestre de relatório?") foi pesquisada usando a pesquisa semântica.

Screenshot of a sample UI for a user to enable semantic search.

Uma pesquisa equivalente no modo de texto completo resulta na consulta de pesquisa procurando uma correspondência exata para "capex", que não aparece no documento. A capacidade semântica, no entanto, possibilita que o mecanismo de consulta identifique que "capex" se relaciona com "despesas de capital", de modo que essa comunicação seja identificada como a mais relevante. Além disso, a busca semântica gera destaques semânticos(12), resumindo o documento com as frases mais relevantes.

Práticas Recomendadas

Esta seção resume as práticas recomendadas organizacionais e técnicas para desenvolver sua solução de análise de risco de conformidade.

Envolva os stakeholders necessários: a implementação de uma solução de análise de risco é um exercício multidisciplinar que envolve as principais partes interessadas de vários domínios. Espere incluir as funções relacionadas ao projeto que foram introduzidas anteriormente e outras funções que são afetadas pela solução.

Garantir a adoção adequada e o gerenciamento de mudanças: a automatização das práticas de análise de risco provavelmente introduzirá mudanças significativas na forma como os funcionários trabalham. Embora a solução agregue valor, mudanças em qualquer fluxo de trabalho podem ser desafiadoras, levando a longos períodos de adoção e, possivelmente, resistência. As práticas recomendadas sugerem que você deve envolver os funcionários afetados precocemente. Considere o modelo de adoção Prosci ADKAR, que se concentra em cinco etapas principais de uma jornada de adoção de tecnologia: Conscientização, Desejo, Conhecimento, Habilidade e Reforço.

Use vários canais para descobrir riscos: cada canal de comunicação (por exemplo, email, chats, telefonia) pode ser estudado isoladamente para detectar potenciais riscos. No entanto, melhores insights são obtidos combinando canais heterogêneos de comunicações formais (por exemplo, email) e menos formais (por exemplo, bate-papos). Além disso, a integração de informações complementares (por exemplo, notícias de mercado, relatórios da empresa, registros da SEC) pode fornecer contexto adicional para o analista de conformidade (por exemplo, sobre uma iniciativa específica de uma empresa).

Iniciar simples e iterar: a Azure Cognitive Search fornece um conjunto abrangente de enriquecimentos internos de IA com base em vários Serviços Cognitivos. Pode ser tentador adicionar muitos desses recursos imediatamente. No entanto, o número de entidades ou frases-chave que podem ser extraídas, se não forem controladas corretamente, podem sobrecarregar o usuário final. Começar com um conjunto reduzido de habilidades ou entidades pode ajudar usuários e desenvolvedores a entender quais agregam mais valor.

Inovação responsável: o desenvolvimento de soluções de IA exige um alto nível de responsabilidade de todos os envolvidos. A Microsoft leva o uso responsável da inteligência artificial muito a sério e desenvolveu uma estrutura de princípios básicos de design:

  • Imparcialidade
  • Confiabilidade e segurança
  • Privacidade e segurança
  • Inclusão
  • Transparência e prestação de contas

A avaliação da comunicação dos funcionários requer atenção especial e suscita preocupações éticas. Em alguns países/regiões, o monitoramento automatizado de funcionários está sujeito a restrições legais rigorosas. Por todas essas razões, faça da inovação responsável uma base do seu plano de projeto. A Microsoft oferece várias estruturas e ferramentas para essa finalidade. Para obter mais informações, consulte a caixa Dica no final dessa seção.

Automatize suas iterações de desenvolvimento: o assistente Importar dados facilita a introdução, mas para soluções mais complexas e casos de uso produtivos, recomendamos que você crie ativos como fontes de dados, indexadores, índices e conjuntos de habilidades no código. A automação acelera drasticamente os ciclos de desenvolvimento e garante uma implantação consistente na produção. Os ativos são especificados no formato JSON. Você pode copiar definições JSON do portal, modificá-las conforme necessário e fornecê-las no corpo da solicitação de chamadas para as APIs REST da Azure Cognitive Search.

Selecione a abordagem de PNL apropriada para análise de risco: as maneiras de identificar riscos em texto não estruturado variam de pesquisa básica de palavras-chave e extração de entidade a poderosas arquiteturas modernas de PNL. A melhor escolha depende da quantidade e da qualidade dos dados de treinamento existentes para o caso de uso específico. Se os dados de treinamento forem limitados, você poderá treinar um modelo baseado em emissões usando o recurso de compreensão da linguagem coloquial do Serviço Cognitivo do Azure para Linguagem. As conversas existentes podem ser revisadas para identificar e rotular frases que indiquem tipos de risco relevantes. Às vezes, dezenas de amostras são suficientes para treinar um modelo com bons resultados.

Nos casos em que os sinais de risco são mais sutis e abrangem várias frases, treinar um modelo de PNL de última geração é provavelmente a melhor escolha. No entanto, essa abordagem normalmente requer significativamente mais dados de treinamento. Recomendamos usar, sempre que possível, os dados do mundo real quando a solução estiver em produção, para ajustar possíveis erros de previsão e retreinar continuamente o modelo para melhorar seu desempenho ao longo do tempo.

Adapte a interface do usuário com base em seus requisitos específicos: uma interface de usuário avançada pode disponibilizar todo o valor agregado da Azure Cognitive Search e os enriquecimentos de IA. Embora o Modelo de IU do Azure AI Search forneça uma maneira fácil e rápida de implementar um aplicativo Web inicial, ele provavelmente precisa ser adaptado para integrar recursos adicionais. Ele também precisa acomodar os tipos de comunicações que são processadas, os tipos de enriquecimento de IA que são usados e quaisquer requisitos de negócios adicionais. A colaboração e a iteração contínuas entre desenvolvedores front-end, partes interessadas de negócios e usuários finais ajudarão a aumentar o valor da solução, otimizando a experiência do usuário de encontrar e revisar comunicações relevantes.

Otimizar os custos dos serviços de tradução: por padrão, todos os documentos fluem pelo pipeline de enriquecimento de IA. Isso significa que os documentos em inglês são passados para o serviço de tradução, mesmo que nenhuma tradução real seja necessária. No entanto, como o conteúdo é processado pela API de Tradução, taxas se aplicam. Em nossa solução, usamos a detecção de idioma em conjunto com habilidades condicionais para evitar a tradução nesses casos. Se o idioma detectado do documento original não for o inglês, o conteúdo será copiado para um campo específico para conteúdo que não seja em inglês e, em seguida, passado para o serviço de tradução. Se o documento estiver em inglês, esse campo estará vazio e não serão geradas taxas de tradução. Finalmente, todo o conteúdo (originalmente em inglês ou traduzido) é mesclado em um campo comum para processamento posterior. Você também pode habilitar o cache para reutilizar os enriquecimentos existentes.

Garantir a disponibilidade e a escalabilidade do ambiente de produção: depois de passar da prova de conceito para o planejamento da produção, você precisa considerar a disponibilidade e a escalabilidade para garantir a confiabilidade e o desempenho da sua solução de pesquisa. As instâncias do serviço de pesquisa são chamadas de réplicas e são usadas para balancear a carga de operações de consulta. Adicione réplicas para alta disponibilidade e maior desempenho de consulta. Use partições para gerenciar a escalabilidade de sua solução. As partições representam o armazenamento físico e têm tamanho específico e características de E/S. Consulte a documentação para obter mais orientações sobre como gerenciar a capacidade e outras considerações de gerenciamento de serviços.

Conclusão

Este guia fornece orientações abrangentes para configurar uma solução que usa IA para procurar sinais de fraude. A abordagem é aplicável a outros setores regulamentados, como saúde ou governo.

Você pode estender a arquitetura para incluir outras fontes de dados e recursos de IA, como:

  • Ingestão de dados estruturados, como dados de mercado (por exemplo, cotações de ações) e informações de transações.
  • Anexar modelos de classificação projetados para extrair conteúdo de fontes baseadas em papel, usando recursos como o Reconhecimento de Formulários do Azure e a API de Leitura do Azure.
  • Ingerir informações de redes sociais usando os recursos do Estúdio de Idiomas do Azure para categorizar e filtrar tópicos relevantes ou a Análise de Sentimento do Azure para capturar tendências de opinião.
  • Usando o Microsoft Graph para reunir e consolidar informações do Microsoft 365, como interações interpessoais, empresas com as quais as pessoas trabalham ou informações que elas acessam. Ao salvar esses dados no Armazenamento do Azure, você pode pesquisá-los facilmente.

A tecnologia subjacente à solução, a Azure Cognitive Search, é a melhor escolha porque dá suporte à mineração de conhecimento, à pesquisa de catálogo e à pesquisa no aplicativo. É simples implantar e se conectar a várias fontes de dados e fornecer IA integrada e extensível para processamento de conteúdo. Ele tem recursos como pesquisa semântica que são alimentados por aprendizado profundo, recursos que podem inferir a intenção do usuário e exibir e classificar os resultados mais relevantes.

Colaboradores

Esse artigo é mantido pela Microsoft. Ele foi originalmente escrito pelos colaboradores a seguir.

Principais autores:

Para ver perfis não públicos do LinkedIn, entre no LinkedIn.

Próximas etapas