BR112021014089A2 - Detecção de evento em tempo real em transmissões de dados sociais - Google Patents

Detecção de evento em tempo real em transmissões de dados sociais Download PDF

Info

Publication number
BR112021014089A2
BR112021014089A2 BR112021014089-1A BR112021014089A BR112021014089A2 BR 112021014089 A2 BR112021014089 A2 BR 112021014089A2 BR 112021014089 A BR112021014089 A BR 112021014089A BR 112021014089 A2 BR112021014089 A2 BR 112021014089A2
Authority
BR
Brazil
Prior art keywords
cluster
entities
trend
event
similarity
Prior art date
Application number
BR112021014089-1A
Other languages
English (en)
Inventor
Mateusz Fedoryszak
Brent Frederick
Vijay Rajaram
Changtao Zhong
Original Assignee
Twitter, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Twitter, Inc. filed Critical Twitter, Inc.
Publication of BR112021014089A2 publication Critical patent/BR112021014089A2/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9536Search customisation based on social or collaborative filtering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/906Clustering; Classification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/52User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail for supporting social networking services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9537Spatial or temporal dependent retrieval, e.g. spatiotemporal queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9538Presentation of query results
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/216Handling conversation history, e.g. grouping of messages in sessions or threads

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

detecção de evento em tempo real em transmissões de dados sociais. a presente invenção refere-se a sistema, método e meio de armazenamento inteligível e não volátil em computador para a detecção de evento em transmissões ("streams" -fluxos) de dados sociais que inclui receber uma transmissão de mensagens trocadas em uma plataforma de mensagens, e detectar um evento a partir da transmissão de mensagens, que pode incluir detectar um primeiro grupo de cluster de entidades de tendência por um primeiro período de tempo, detectar um segundo grupo de entidades de tendência por um segundo período de tempo, e gerar uma cadeia de cluster ao ligar o segundo grupo de cluster com o primeiro grupo de cluster, em que a cadeia de cluster representa o evento detectado pelos primeiro e segundo períodos de tempo. o método inclui armazenar o evento como a cadeia de cluster em um dispositivo de memória na plataforma de mensagens.

Description

Relatório Descritivo da Patente de Invenção para "DETECÇÃO DE EVENTO EM TEMPO REAL EM TRANSMISSÕES DE DADOS SOCIAIS". Pedido Relacionado
[001] Este pedido reivindica a prioridade ao Pedido Provisório U.S. U.S. N° 62/798.388, depositado no dia 29 de janeiro de 2019, intitulado "Real-Time Event Detection on Social Data Streams", a descrição do qual é incorporada aqui em sua totalidade. Antecedentes
[002] As redes sociais estão rapidamente se tornando o meio principal para falar sobre o que está acontecendo em relação aos eventos do mundo real. Algumas abordagens convencionais podem envolver a determinação de quais eventos são discutidos na plataforma de mídia social em um determinado momento, por exemplo, uma análise de um ponto no tempo. No entanto, essas abordagens convencionais podem deixar de considerar a evolução do evento e podem ser suscetíveis a problemas de memória com conjuntos de dados de alto volume ou contagens de tópicos, que muitas vezes são produzidos em uma rede de mídia social de grande escala. Sumário
[003] As técnicas, os métodos e os sistemas são divulgados aqui para a detecção de evento, que rastreiam os eventos ao longo do tempo, que incluem a modelagem de um evento como uma cadeia de cluster, por exemplo, uma lista de grupos de cluster ligados ao longo do tempo. Por exemplo, o sistema de mensagens pode identificar periodicamente as entidades de tendência a partir de uma transmissão ("stream" - fluxo) de mensagem de mensagens trocadas em uma plataforma de mensagens. A identificação de entidades de tendência a partir da transmissão de mensagem pode ser referida como uma detecção de disparo. Em alguns exemplos, a transmissão de mensagem é relativamente grande (por exemplo, mensagens acima de 5 mil por segundo). A entidade de tendência pode ser uma entidade que aparece na transmissão de mensagem a uma taxa excepcionalmente alta ou acima de uma condição limite. Em alguns exemplos, uma entidade de tendência pode ser uma palavra (ou palavras), uma frase, uma hashtag, um identificador (por exemplo, identificador de usuário, identificador de mensagem, etc.), um recurso da web (por exemplo, URL) e/ou qualquer conteúdo que faz referência a um objeto específico. O sistema de mensagens pode realizar, periodicamente, as operações de agrupamento com base em similaridade nas entidades de tendência para detectar um ou mais grupos de cluster, em que cada grupo de cluster inclui duas ou mais entidades de tendência que são determinadas como sendo similares umas às outras (por exemplo, associados a um valor de similaridade maior que um nível limite).
[004] Em particular, o sistema de mensagens pode receber as entidades de tendência detectadas a partir de um primeiro período de tempo e realizar as operações de agrupamento com base em similaridade nas entidades de tendência a partir do primeiro período de tempo para detectar um ou mais grupos de cluster. Em seguida, o sistema de mensagens pode receber as entidades de tendência detectadas a partir de um segundo período de tempo e realizar as operações de agrupamento com base em similaridade nas entidades de tendência a partir do segundo período de tempo para detectar um ou mais grupos de cluster subsequentes. Se o assunto de um grupo de cluster a partir do segundo período de tempo for determinado como similar ao assunto de um grupo de cluster a partir do primeiro período de tempo, esses grupos de cluster (por diferentes períodos de tempo) são ligados, formando assim a cadeia de cluster. Ao detectar a ligar de maneira contínua (por exemplo, periodicamente) os grupos de cluster ao longo do tempo (e em tempo real ou substancialmente em tempo real), os termos que são usados para descrever o evento no sistema de mensagens são pontos diferentes durante a vida do evento podem ser capturados pela cadeia de cluster. Como tal, em contraste a algumas abordagens convencionais que utilizam a detecção de evento estática (por exemplo, detectar eventos de uma imagem instantânea de dados), a detecção de evento fornecida pelo sistema de mensagens é dinâmica, a fim de dar conta da natureza dinâmica do que é discutido no sistema de mensagens.
[005] Em alguns exemplos, as operações de detecção de disparo são executadas de forma independente das operações de agrupamento (por exemplo, executáveis por CPUs e dispositivos de memória separados). Ao separar as operações de detecção de disparo das operações de agrupamento, algumas das operações de agrupamento (ou todas elas) podem ser executadas em paralelo com as operações de detecção de disparo, que podem aumentar a velocidade de detecção de evento (especialmente para as plataformas de mídia social que lidam com uma grande quantidade de dados). Além disso, esses componentes são escalonáveis de forma independente, o que pode aumentar a velocidade de detecção de evento e aumentar a flexibilidade do sistema de mensagens para se ajustar às cargas de processamento variáveis de detecção de detecção e agrupamento de entidade, e para permitir o rastreamento de eventos em tempo real.
[006] A plataforma de mensagens pode transmitir os dados digitais a um aplicativo cliente para resultar nas informações sobre o(s) evento(s) na interface de usuário do aplicativo cliente. As informações sobre o(s) evento(s) podem incluir as informações da cadeias de cluster. As informações de cadeia de cluster podem identificar um ou mais eventos e identificar uma ou mais entidades de tendência da cadeia de cluster. Em alguns exemplos, as informações da cadeia de cluster são incluídas em uma seção de tendências do aplicativo cliente. Por exemplo, a seção de tendências pode identificar uma lista de entidades de tendência (ou tópicos). Em um exemplo específico, uma hashtag "#bucks" pode ser um assunto do momento e incluída como parte de um evento representado por uma cadeia de cluster. A cadeia de cluster também pode identificar uma entidade "Giannis" dentro de outro grupo de cluster ligado ao grupo de cluster que inclui a hashtag "#bucks". A seção de tendências pode identificar o termo "Giannis" relacionado (e outros termos relacionados a partir da cadeia de cluster) juntamente com a entidade de tendência "#bucks".
[007] A plataforma de mensagens pode transmitir os dados digitais ao aplicativo cliente para renderizar uma linha do tempo de mensagens. A linha do tempo pode incluir uma transmissão de mensagens de contas que têm relacionamentos com a conta do usuário em um gráfico de conexão. Em alguns exemplos, a linha do tempo é classificada, e uma classificação das mensagens pode ter como base (em parte) no evento detectado. Por exemplo, o evento pode incluir os metadados de evento que identificam o tempo de início detectado do evento e o tempo final detectado do evento. A gerenciador de linha do tempo pode receber o evento, que identifica as entidades de tendência por diferentes grupos de cluster que pertencem àquele evento (ou cadeia de cluster). Um gerenciador de linha do tempo pode determinar se uma mensagem a ser renderizada como parte da linha do tempo do usuário inclui uma entidade de tendência da cadeia de cluster durante a duração do evento (por exemplo, entre o tempo de início detectado e o tempo final detectado). Se aquela mensagem incluir uma entidade de tendência que faz parte da cadeia de cluster durante a duração do evento, o gerenciador de linha do tempo pode impulsionar (ou elevar a classificação) aquela mensagem dentro da classificação da linha do tempo do usuário.
[008] Em alguns exemplos, a linha do tempo inclui o conteúdo promovido, que pode incluir mensagens publicitárias. Similar às mensagens a serem liberadas de acordo com o gráfico de conexão, uma mensagem promovida pode ser impulsionada na classificação da linha do tempo se aquela mensagem promovida incluir uma entidade de tendência da cadeia de cluster durante a duração do evento. Em alguns exemplos, a plataforma de mensagens inclui um mecanismo de pilha de anúncios configurada para determinar o preço para mensagens promovidas. Em alguns exemplos, o mecanismo de pilha de anúncios pode aumentar o seu preço para o conteúdo promovido se o conteúdo promovido incluir um ou mais entidades de tendência durante a duração do evento. Em alguns exemplos, as informações da cadeia de cluster são incluídas como parte dos resultados de busca retornados ao usuário. Por exemplo, um usuário pode enviar uma busca de consulta, e um gerenciador de busca pode utilizar a cadeias de cluster para expandir os resultados da busca para incluir outras entidades relacionadas.
[009] De acordo com um aspecto, um método para a detecção de evento em transmissões de dados sociais inclui receber, por uma plataforma de mensagens, uma transmissão de mensagens trocadas em uma plataforma de mensagens, e detectar, pela plataforma de mensagens, um evento a partir da transmissão de mensagens. A etapa de detecção inclui detectar um primeiro grupo de cluster de entidades de tendência por um primeiro período de tempo, detectar um segundo grupo de cluster de entidades de tendência por um segundo período de tempo, e gerar uma cadeia de cluster ao ligar o segundo grupo de cluster ao primeiro grupo de cluster, em que a cadeia de cluster representa o evento detectado pelos primeiro e segundo períodos de tempo. O primeiro grupo de cluster inclui pelo menos duas entidades de tendência identificadas como similares umas às outras. O segundo grupo de cluster inclui pelo menos duas entidades de tendência identificadas como similares umas às outras. O método inclui armazenar, pela plataforma de mensagens, o evento como a cadeia de cluster em um dispositivo de memória na plataforma de mensagens. Em alguns exemplos, um sistema ou meio não transitório legível por computador pode ser fornecido com essas operações.
[0010] De acordo com alguns aspectos, um método, sistema, ou meio não transitório legível por computador podem incluir um ou mais dos recursos a seguir (ou qualquer uma das suas combinações). O método pode incluir transmitir, pela plataforma de mensagens, os dados digitais a um aplicativo cliente para resultar nas informações sobre o evento em uma interface de usuário do aplicativo cliente, em que as informações sobre o evento incluem as informações da cadeia de cluster. As informações sobre o evento identificam uma primeira entidade de tendência a partir do primeiro grupo de cluster e uma segunda entidade de tendência a partir do segundo grupo de cluster, a segunda entidade de tendência sendo diferente da primeira entidade de tendência. O método pode incluir classificar os grupos de cluster dentro da cadeia de cluster, que inclui classificar o primeiro grupo de cluster e o segundo grupo de cluster com base na popularidade de entidades associadas a cada respectivo grupo de cluster. O método pode incluir extrair as entidades a partir da transmissão de mensagens, obter uma lista de entidades de tendência derivada a partir de um serviço de detector de tendência, e identificar as entidades de tendência a partir das entidades extraídas com base na lista de entidades de tendência derivada a partir do serviço de detector de tendência. O método pode incluir atribuir um identificador de cluster ao primeiro grupo de cluster e atribuir o identificador de cluster do primeiro grupo de cluster ao segundo grupo de cluster em resposta ao segundo grupo de cluster sendo ligado ao primeiro grupo de cluster. A detecção do primeiro grupo de cluster pode incluir gerar um gráfico de similaridade com base nos valores de similaridade associados às entidades de tendência do primeiro período de tempo, em que o gráfico de similaridade inclui os nós que representam as entidades de tendência pelo primeiro período de tempo e bordas que representam os valores de similaridade, e particionar o gráfico de similaridade de acordo com um algoritmo de agrupamento para detectar o primeiro grupo de cluster. O método pode incluir calcular os valores de similaridade com base na contagem de frequência e co-ocorrências entre as entidades de tendência por uma janela de tempo, e filtrar o gráfico de similaridade com base em um limite de similaridade de modo que as bordas que têm os valores de similaridade menores que o limite de similaridade são removidas do gráfico de similaridade, em que o gráfico de similaridade filtrado é particionado de acordo com o algoritmo de agrupamento para detectar o primeiro grupo de cluster. O segundo grupo de cluster pode ser ligado ao primeiro grupo de cluster com base nos a correspondência bipartida máxima ponderada.
[0011] De acordo com um aspecto, um sistema de mensagens para detectar o evento em tempo real inclui uma plataforma de mensagens configurada para trocar, por uma rede, as mensagens aos dispositivos de computação, e um aplicativo cliente configurada para se comunicar com a plataforma de mensagens para enviar e receber as mensagens. A plataforma de mensagens é configurada para detectar um primeiro grupo de cluster de entidades de tendência por um primeiro período de tempo, detectar um segundo grupo de cluster de entidades de tendência por um segundo período de tempo, gerar a cadeia de cluster ao ligar o segundo grupo de cluster ao primeiro grupo de cluster com base em um número de entidades de tendência sendo compartilhado entre o primeiro grupo de cluster e o segundo grupo de cluster, em que a cadeia de cluster representa o evento detectado pelos primeiro e segundo períodos de tempo, e armazenar um evento como a cadeia de cluster in a dispositivo de memória na plataforma de mensagens, em que a cadeia de cluster é recuperável para a futura ligação de cluster. Em alguns exemplos, um método ou meio não transitório legível por computador pode ser fornecido com essas operações.
[0012] De acordo com alguns aspectos, um método, sistema, ou meio não transitório legível por computador podem incluir um ou mais dos recursos acima/abaixo (ou qualquer uma das suas combinações). A plataforma de mensagens é configurada para transmitir os dados digitais ao aplicativo cliente para resultar nas informações sobre o evento em uma interface de usuário do aplicativo cliente, em que as informações sobre o evento incluem as informações da cadeia de cluster, e as informações da cadeia de cluster são renderizadas em uma seção de tendências, a linha do tempo, ou parte dos resultados de busca retornados ao aplicativo cliente. A plataforma de mensagens é configurada para classificar o primeiro grupo de cluster e o segundo grupo de cluster com base em uma métrica de popularidade agregada associados a cada grupo de cluster. A pluralidade de entidades inclui as entidades de tendência, e a plataforma de mensagens é configurada para extrair as entidades a partir da transmissão de mensagens, obter uma lista de entidades de tendência derivada a partir de um serviço de detector de tendência, e identificar as entidades de tendência a partir das entidades extraídas com base na lista de entidades de tendência. A plataforma de mensagens é configurada para atribuir um mesmo identificador de cluster aos grupos de cluster de uma única cadeia de cluster. A plataforma de mensagens é configurada para calcular os valores de similaridade com base na contagem de frequência e co- ocorrências entre a pluralidade de entidades por uma janela de tempo e gerar a gráfico de similaridade com base nos the valores de similaridade, em que o gráfico de similaridade inclui os nós que representam a pluralidade de entidades e bordas que representam ou sendo anotadas com o valores de similaridade.
[0013] De acordo com um aspecto, a meio não transitório legível por computador armazenar instruções executáveis que quando executadas por pelo menos um processador são configuradas para fazer com que pelo menos um processador receba, por uma plataforma de mensagens, uma transmissão de mensagens trocadas em uma plataforma de mensagens, detecte, pela plataforma de mensagens, um evento a partir da transmissão de mensagens, que inclui identificar uma pluralidade de entidades a partir da transmissão de mensagens, detectar um primeiro grupo de cluster a partir da pluralidade de entidades por um primeiro período de tempo, detectar um segundo grupo de cluster a partir da pluralidade de entidades por um segundo período de tempo, e gerar a cadeia de cluster ao ligar o segundo grupo de cluster ao primeiro grupo de cluster com base no número de entidades sendo compartilhado entre o primeiro grupo de cluster e o segundo grupo de cluster, em que a cadeia de cluster representa o evento detectado pelos primeiro e segundo períodos de tempo, armazenar, pela plataforma de mensagens, o evento como a cadeia de cluster em um dispositivo de memória na plataforma de mensagens, e transmitir, pela plataforma de mensagens, dados digitais ao aplicativo cliente para resultar nas informações sobre o evento em uma interface de usuário do aplicativo cliente, em que as informações sobre o evento inclui informações da cadeia de cluster, e as informações da cadeia de cluster identificam uma primeira entidade a partir do primeiro grupo de cluster e uma segunda entidade a partir do segundo grupo de cluster. Em alguns exemplos, um método ou sistema podem ser fornecidos com essas operações.
[0014] De acordo com alguns aspectos, um método, sistema, ou meio não transitório legível por computador podem incluir um ou mais dos recursos acima/abaixo (ou qualquer uma das suas combinações).
As operações podem incluir classificar o primeiro grupo de cluster e o segundo grupo de cluster com base na métrica de popularidade associadas a cada respectivo grupo de cluster. A pluralidade de entidades inclui entidades de tendência, e as operações podem incluir extrair as entidades a partir da transmissão de mensagens, as entidades que incluem pelo menos uma das entidades ou hashtags citadas, obter uma lista de entidades de tendência derivada a partir de um serviço de detector de tendência via a interface de comunicação de servidor, e identificar as entidades de tendência a partir das entidades extraídas com base na lista de entidades de tendência de modo que as entidades de não tendência são filtradas fora das entidades extraídas. As operações podem incluir atribuir um identificador de cluster ao primeiro grupo de cluster e atribuir o identificador de cluster do primeiro grupo de cluster ao segundo grupo de cluster em resposta ao segundo grupo de cluster sendo ligado ao primeiro grupo de cluster. As operações podem incluir calcular os valores de similaridade com base na contagem de frequência e co-ocorrências entre a pluralidade de entidades por uma janela de tempo, em que cada valor de similaridade indica um nível de similaridade entre duas entidades, gerar um gráfico de similaridade com base nos valores de similaridade, em que o gráfico de similaridade inclui os nós que representam a pluralidade de entidades e bordas que representam os valores de similaridade, filtrar o gráfico de similaridade com base em um valor de limite de similaridade de modo que as bordas que têm os valores de similaridade menores que o limite de similaridade são removidas do gráfico de similaridade, e particionar o gráfico de similaridade filtrado de acordo com um algoritmo de agrupamento para detectar o primeiro grupo de cluster, em que o algoritmo de agrupamento inclui um algoritmo de Louvain.
[0015] De acordo com um aspecto, um sistema de mensagens para detectar o evento em tempo real em uma transmissão de mídia social inclui uma plataforma de mensagens configurada para trocar, por uma rede, as mensagens aos dispositivos de computação. A plataforma de mensagens inclui um detector de evento configurado para executar em um modo off-line e um modo online. O detector de evento, no modo off- line, é configurado para executar um algoritmo de detecção de evento em uma transmissão de conjunto de dados de avaliação para gerar uma ou mais da primeira cadeias de cluster para valores variados de um parâmetro de controle, e calcular a métrica de desempenho com relação à execução do algoritmo de detecção de evento para os valores variados do parâmetro de controle, em que um valor do parâmetro de controle é selecionado com base na métrica de desempenho. O detector de evento, no modo online, é configurado para receber a transmissão de mensagem para as mensagens trocadas na plataforma de mensagens em tempo real e executar o algoritmo de detecção de evento na transmissão de mensagem de acordo com o valor selecionado do parâmetro de controle para gerar uma ou mais da segunda cadeias de cluster. Em alguns exemplos, um método ou meio não transitório legível por computador pode ser fornecido com essas operações.
[0016] De acordo com alguns aspectos, um método, sistema, ou meio não transitório legível por computador podem incluir um ou mais dos recursos acima/abaixo (ou qualquer uma das suas combinações). Em alguns exemplos, a métrica de desempenho inclui pelo menos uma de discriminação ou consolidação, e o parâmetro de controle inclui a limite de similaridade. Em alguns exemplos, a métrica de desempenho inclui pelo menos uma de discriminação ou consolidação, e o parâmetro de controle inclui uma resolução de um algoritmo de agrupamento. Em alguns exemplos, a métrica de desempenho inclui uma pontuação de agrupamento. Em alguns exemplos, a métrica de desempenho inclui a fração de eventos detectados. Em alguns exemplos, a métrica de desempenho inclui fração do evento mesclado. Em alguns exemplos, a métrica de desempenho inclui fração do evento duplicado. Em alguns exemplos, o parâmetro de controle inclui uma janela de tempo. Breve Descrição dos Desenhos
[0017] A figura 1A ilustra um sistema de mensagens que tem um detector de evento configurado para detectar e rastrear um evento como uma cadeia de cluster ao longo do tempo, de acordo com um aspecto;
[0018] a figura 1B ilustra um evento representado por uma cadeia de cluster que tem uma pluralidade de grupos de cluster ao longo do tempo, de acordo com um aspecto;
[0019] a figura 1C ilustra vários exemplos de entidades que são extraídos pelo detector de evento de acordo com um aspecto;
[0020] a figura 1D ilustra a gráfico de similaridade que tem os nós que representam as entidades de tendência e as bordas que representam os valores de similaridade de acordo com um aspecto;
[0021] a figura 1E ilustra um gráfico de similaridade filtrado que foi particionado em uma pluralidade de grupos de cluster de acordo com um aspecto;
[0022] a figura 2 ilustra uma captura de tela de exemplo de um aplicativo cliente que renderiza as informações da cadeia de cluster de acordo com um aspecto;
[0023] a figura 3 ilustra a fluxo de processo que mostra a operação de exemplo de um detector de evento de acordo com um aspecto;
[0024] a figura 4 ilustra um detector de evento dentro de um modo de análise off-line, de acordo com um aspecto;
[0025] as figuras 5A a 5F ilustram vários gráficos que mostram as métricas e parâmetros de desempenho do detector de evento no modo de análise off-line, de acordo com um aspecto;
[0026] as figuras 6A a 6C ilustram vários gráficos que mostram o desempenho do detector de evento em um modo de análise on-line, de acordo com um aspecto;
[0027] a figura 7 ilustra um gráfico que mostra o desempenho do detector de evento no modo de análise on-line de acordo com um aspecto;
[0028] a figura 8 ilustra um exemplo de uma pluralidade de cadeias de cluster para um evento do mundo real de acordo com um aspecto;
[0029] a figura 9 ilustra os detalhes de uma cadeia de cluster ao longo do tempo, de acordo com um aspecto;
[0030] a figura 10 ilustra um fluxograma que ilustra as operações de exemplo de um sistema de mensagens de acordo com um aspecto. Descrição Detalhada
[0031] As figuras 1A a 1E ilustram um sistema de mensagens 100 para detectar e rastrear os eventos 112, ao longo do tempo, a partir de uma transmissão de mensagem 108 de acordo com um aspecto. Por exemplo, ao invés de determinar quais eventos 112 são discutidos no sistema de mensagens 100 em um tempo específico com o uso de análise pontual, o sistema de mensagens 100 representa os eventos 112 ao longo do tempo ao modelar um evento 112 como uma cadeia de cluster 114 que tem uma lista ligada de grupos de cluster 144.
[0032] O sistema de mensagens 100 pode identificar periodicamente as entidades de tendência 132b from the transmissão de mensagem 108. A entidade de tendência 132b pode ser uma entidade que aparece na transmissão de mensagem 108 a uma taxa excepcionalmente alta ou acima de uma condição limite, em que a entidade de tendência 132b é uma tag para conteúdo em uma mensagem da transmissão de mensagem 108 (por exemplo, entidades citadas, hashtags, URLs, identificadores de usuário, e/ou identificador de mensagems, etc.). O sistema de mensagens 100 pode realizar periodicamente as operações de agrupamento com base em similaridade nas entidades de tendência 132 para detectar um ou mais grupos de cluster 144. Por exemplo, o sistema de mensagens 100 pode receber as entidades de tendência detectadas 132b de um primeiro período de tempo (por exemplo, um determinado intervalo de tempo) e realizar as operações de agrupamento com base em similaridade nas entidades de tendência 132b a partir do primeiro período de tempo para detectar um ou mais grupos de cluster 144. Um grupo de cluster 144 específico pode incluir duas ou mais entidades de tendência 132b que são determinadas como sendo relacionadas umas às outras de forma similar (por exemplo, entidades de tendência 132b do mesmo grupo de cluster 144 podem ser consideradas como se referindo semanticamente ao mesmo assunto ou similar). Em seguida, o sistema de mensagens 100 pode receber as entidades de tendência detectadas 132b de um segundo período de tempo (por exemplo, o próximo intervalo de tempo) e realizar as operações de agrupamento com base em similaridade nas entidades de tendência 132b a partir do segundo período de tempo para detectar um ou mais grupos de cluster 144 subsequentes. Se o assunto de um grupo de cluster 144 a partir do segundo período de tempo for determinado como sendo similar ao assunto de um grupo de cluster 144 a partir do primeiro período de tempo, esses grupos de cluster 144 (por diferentes períodos de tempo) são ligados, formando assim a cadeia de cluster 114.
[0033] Por exemplo, com referência à figura 1B, a cadeia de cluster 114 podem incluir um primeiro grupo de cluster 144-1 de entidades de tendência 132b (por exemplo, detectado durante um primeiro período de tempo 196-1), um segundo grupo de cluster 144-2 de entidades de tendência 132b (por exemplo, detectado durante um segundo período de tempo 196-2), e um terceiro grupo de cluster 144-3 de entidades de tendência 132b (por exemplo, detectado durante um terceiro período de tempo 196-3). Como mostrado na figura 1B, o segundo grupo de cluster 144-2 é ligado ao primeiro grupo de cluster 144-1, e o terceiro grupo de cluster 144-3 é ligado ao segundo grupo de cluster 144-2, que indica que o primeiro grupo de cluster 144-1, o segundo grupo de cluster 144- 2, o terceiro grupo de cluster 144-3 se referem ao mesmo evento 112. By continuously (por exemplo, periodically) detectar e linking grupos de cluster 144 ao longo do tempo (and em tempo real ou substancialmente em tempo real), os termos que são usados para descrever o evento 112 on the sistema de mensagens 100 são pontos diferentes durante a vida do evento 112 podem ser capturados pela cadeia de cluster 114.
[0034] Por exemplo, com relação ao exemplo do tsunami no Japão que ocorreu em março de 2011, inicialmente, este evento foi denominado por palavras-chave, como terremoto e tsunami, mas, posteriormente, as palavras de evento, como nuclear e radiação, foram introduzidas. De acordo com as técnicas discutidas aqui, o sistema de mensagens 100 pode ser responsável pela natureza dinâmica das conversas baseadas em eventos que ocorrem no sistema de mensagens 100 ao rastrear as evoluções de eventos 112, que seria capaz de identificar não apenas os termos iniciais de terremoto e tsunami para o evento 112 (por exemplo, terremoto e tsunami podem fazer parte do primeiro grupo de cluster 144-1), mas também os termos introduzidos posteriormente de nuclear e radiação com relação ao mesmo evento 112 (por exemplo, nuclear e radiação podem fazer parte do terceiro grupo de cluster 144-3). Como tal, em contraste a algumas abordagens convencionais que utilizam a detecção de evento estática (por exemplo, detectar eventos de uma imagem instantânea de dados), a detecção de evento fornecida pelo sistema de mensagens 100 é dinâmica, a fim de dar conta da natureza dinâmica do que é discutido no sistema de mensagens 100.
[0035] O sistema de mensagens 100 inclui a plataforma de mensagens 104 executável por um computador servidor 102, e um aplicativo cliente 176 executável por um dispositivo de computação 174.
O aplicativo cliente 176 se comunica com a plataforma de mensagens 104 para enviar (e receber) mensagens, por uma rede 172, para (e de) outros usuários da plataforma de mensagens 104. O aplicativo cliente 176 pode ser um aplicativo de mensagens de mídia social, no qual os usuários publicam e interagem com as mensagens. Em alguns exemplos, o aplicativo cliente 176 é um aplicativo de origem que é executado em um sistema operacional do dispositivo de computação 174 ou pode ser um aplicativo com base na web que é executado no computador servidor 102 (ou outro servidor) em conjunto com um aplicativo com base em browser do dispositivo de computação 174. O dispositivo de computação 174 pode acessar a plataforma de mensagens 104 através da rede 172 com o uso de qualquer tipo de conexões de rede e/ou interfaces de programação de aplicativo (APIs) de uma maneira que permite que o aplicativo cliente 176 e a plataforma de mensagens 104 se comuniquem um com o outro.
[0036] O dispositivo de computação 174 pode ser um dispositivo de computação móvel (por exemplo, um smartphone, um PDA, um tablet, ou um computador laptop) ou um dispositivo de computação não móvel (por exemplo, um dispositivo de computação desktop). O dispositivo de computação 174 também inclui vários circuitos de interface de rede, como, por exemplo, uma interface de rede móvel através da qual o dispositivo de computação 174 pode se comunicar com uma rede celular, uma interface de rede Wi-Fi com a qual o dispositivo de computação 174 pode se comunicar com uma estação base Wi-Fi, uma interface de rede Bluetooth com a qual o dispositivo de computação 174 pode se comunicar com outros dispositivos Bluetooth, e/ou uma conexão Ethernet ou outra conexão com fio que permite o dispositivo de computação 174 acesse a rede 172.
[0037] O computador servidor 102 pode ser um único dispositivo de computação ou pode ser uma representação de dois ou mais dispositivos de computação distribuídos, conectados de forma comunicativa para compartilhar a carga de trabalho e recursos. O computador servidor 102 podem incluir pelo menos um processador e um meio não transitório legível por computador que armazena as instruções executáveis que quando executadas por pelo menos um processador fazem com que pelo menos um processador realize as operações discutidas aqui.
[0038] A plataforma de mensagens 104 é uma plataforma de computação para facilitar a comunicação (por exemplo, comunicação em tempo real) entre dispositivos de usuário (um dos quais é mostrado como dispositivo de computação 174). A plataforma de mensagens 104 pode armazenar milhões de contas 118 de indivíduos, empresas e/ou entidades (por exemplo, contas de pseudônimo, contas de novidades, etc.). Um ou mais usuários de cada conta 118 podem usar a plataforma de mensagens 104 para enviar mensagens para outras contas 118 dentro e/ou fora da plataforma de mensagens 104. Em alguns exemplos, a plataforma de mensagens 104 pode permitir que os usuários se comuniquem em "tempo real", por exemplo, para conversar com outros usuários com o mínimo de atraso e para conduzir uma conversa com um ou mais outros usuários durante sessões simultâneas. Em outras palavras, a plataforma de mensagens 104 pode permitir que um usuário transmita as mensagens e pode exibir as mensagens para um ou mais outros usuários dentro de um período de tempo razoável (por exemplo, menos de dois segundos) para facilitar uma conversa ao vivo entre os usuários. Em alguns exemplos, os destinatários de uma mensagem podem ter uma relação de gráfico predefinida em um gráfico de conexão 116 com uma conta do usuário que está transmitindo a mensagem.
[0039] O gráfico de conexão 116 inclui uma estrutura de dados que indica quais contas 118 na plataforma de mensagens 104 estão associadas (por exemplo, seguir, amigos, inscritos, etc.) a uma conta específica 118 e, portanto, estão inscritas para receber as mensagens da conta específica 118. Por exemplo, o gráfico de conexão 116 pode vincular uma primeira conta a uma segunda conta, o que indica que a primeira conta está em um relacionamento com a segunda conta. O usuário da segunda conta pode visualizar as mensagens postadas na plataforma de mensagens 104 pelo usuário da primeira conta (e/ou vice- versa). Os relacionamentos podem ser unidirecional (por exemplo, seguidor/seguido) e/ou bidirecional (por exemplo, amizade). Em alguns exemplos, o gráfico de conexão 116 pode representar um usuário que instalou um aplicativo cliente 176 e configurou uma conta de usuário por meio do aplicativo cliente 176. As mensagens podem ter uma variedade de comprimentos que podem ser limitados por um sistema de mensagens ou protocolo específico.
[0040] Em alguns exemplos, os usuários interessados em visualizar mensagens de autoria de um determinado usuário podem escolher seguir o usuário específico. Um primeiro usuário pode seguir um segundo usuário, identificando o segundo usuário como um usuário que o primeiro usuário gostaria de seguir. Depois que o primeiro usuário indicou que gostaria de seguir o segundo usuário, o gráfico de conexão 116 é atualizado para refletir o relacionamento e o primeiro usuário receberá as mensagens de autoria do segundo usuário. Os usuários podem escolher seguir vários usuários. Os usuários também podem responder a mensagens e, assim, conversar entre si. Além disso, os usuários podem se envolver com mensagens, como compartilhar (por exemplo, compartilhar novamente) uma mensagem com seus seguidores ou favoritar (ou "curtir") uma mensagem, na qual o engajamento é compartilhado com seus seguidores.
[0041] A plataforma de mensagens 104 inclui um gerenciador de linha do tempo 163 configurado para gerar e transmitir dados (através da rede 172) para renderizar uma linha do tempo 180 de conteúdo social em uma interface de usuário 178 do aplicativo cliente 176. Em alguns exemplos, a linha do tempo 180 inclui uma lista (por exemplo, lista classificada) de mensagens em ordem cronológica (ou ordem cronológica reversa). A lista de mensagens pode incluir mensagens postadas por usuários na plataforma de mensagens 104 que têm um relacionamento com o usuário do aplicativo cliente 176 no gráfico de conexão 116.
[0042] A plataforma de mensagens 104 inclui um gerenciador de tendências 106 configurado para gerar e transmitir dados (através da rede 172) para renderizar uma ou mais tendências 182 (por exemplo, também referido como uma seção de tendências) na interface de usuário 178 do cliente aplicação 176. Em alguns exemplos, o gerenciador de tendências 106 se comunica com um serviço de detector de tendência 128 para identificar entidades de tendência 132a. O serviço de detector de tendência 128 e as entidades de tendência 132a são descritos posteriormente na divulgação. No entanto, resumidamente, o serviço de detector de tendência 128 pode executar um algoritmo para identificar as entidades de tendência 132a na plataforma de mensagens 104 e o gerenciador de tendências 106 pode obter a lista de entidades de tendência 132 e fornecer a lista (ou uma parte dela) para o aplicativo cliente 176, que é processado como as tendências 182 na seção da interface do usuário 178. Em alguns exemplos, as tendências 182 são adaptadas para o usuário do aplicativo cliente 176, que pode ser com base nas contas 118 que o usuário está seguindo, os interesses do usuário e/ou a localização do usuário. Em alguns exemplos, o gerenciador de tendências 106 pode identificar os tópicos que são atualmente populares para ajudar o usuário a descobrir tópicos emergentes de discussão na plataforma de mensagens 104.
[0043] A plataforma de mensagens 104 inclui um gerenciador de busca 161 que pode executar uma consulta de busca e transmitir as informações (pela rede 172) para permitir que o aplicativo cliente 176 renderize os resultados de busca 186 na interface de usuário 178 do aplicativo cliente 176. Por exemplo, o gerenciador de busca 161 pode receber uma solicitação de consulta a partir do aplicativo cliente 176 para buscar a plataforma de mensagens para encontrar mensagens, pessoas, hashtags, tópicos, fotos, vídeos, etc. Em resposta à solicitação de consulta, o gerenciador de busca 161 pode fornecer os resultados de busca 186 (adaptado a um ou mais termos da solicitação de consulta) na interface de usuário 178 do aplicativo cliente 176.
[0044] A plataforma de mensagens 104 inclui um detector de evento 120 configurado para receber uma transmissão de mensagem 108 e detectar um ou mais eventos 112 com base nas mensagens na transmissão de mensagem 108. Em alguns exemplos, o evento 112 pode refletir uma coisa significativa sendo discutida na plataforma de mensagens 104, e uma coisa significativa está acontecendo quando um grupo de pessoas está falando sobre isso em uma magnitude diferente dos níveis normais de uma conversa sobre um assunto (por exemplo, é o assunto do momento). Em alguns exemplos, o evento 112 representa um evento do mundo real que é discutido na plataforma de mensagens
104. Em alguns exemplos, o detector de evento 120 executa um algoritmo de detecção de evento temporal com base em similaridade (por exemplo, ver algoritmo 1 forencido abaixo) para detectar um evento específico 112 como uma cadeia de cluster 114 de grupos de cluster ligados 144 ao longo do tempo. O detector de evento 120 pode rastrear o evento 112 ao longo do tempo ao atualizar a cadeia de cluster 114 com novos grupos de cluster 144. Como tal, o evento 112 pode ser representado de forma diferente ao longo do tempo, e a modelagem do evento 112 como a cadeia de cluster 114 reflete no fato de que uma conversa agitada pode mudar ao longo do tempo. Um evento detectado
112 corresponde a uma cadeia de cluster 114 e é caracterizado em um determinado momento por um grupo de cluster 144 de entidades de tendência 132b.
[0045] Em alguns exemplos, a transmissão de mensagem 108 é uma grande (por exemplo, muito grande) transmissão de todas as mensagens geradas na plataforma de mensagens 104. Em alguns exemplos, quando um usuário publica uma mensagem na plataforma de mensagens 104, essa mensagem é adicionada à transmissão de mensagem 108. Em alguns exemplos, a transmissão de mensagem 108 inclui a mensagem liberada a uma taxa de mais de 5 mil mensagens por segundo. Ao longo do dia, em alguns exemplos, a transmissão de mensagem 108 pode incluir mais de quinhentos milhões de mensagens. Em alguns exemplos, a transmissão de mensagem 108 inclui mensagens liberadas a uma taxa de mais de 10 mil mensagens por segundo. Em alguns exemplos, a transmissão de mensagem 108 inclui mensagens liberadas a uma taxa de mais de 25 mil mensagens por segundo. Em alguns exemplos, a transmissão de mensagem 108 inclui mensagens liberadas a uma taxa de mais de 50 mil mensagens por segundo. Em alguns exemplos, a transmissão de mensagem 108 inclui eventos de criação de mensagens para mensagens criadas e postadas na plataforma de mensagens 104, eventos de recompartilhamento de mensagens para mensagens existentes que são compartilhadas novamente na plataforma de mensagens 104 e/ou eventos de engajamento para mensagens existentes que são favorecidos ou apreciados na plataforma de mensagens 104. Em alguns exemplos, uma mensagem específica trocada na plataforma de mensagens 104 tem um limite de caracteres. Em alguns exemplos, o limite de caracteres é de duzentos e oitenta caracteres.
[0046] Vários fatores e características das plataformas de mensagens sociais podem tornar a detecção de eventos (conforme estão ocorrendo) relativamente difícil. Por exemplo, a escala da transmissão de mensagem 108 é relativamente grande (por exemplo, as mensagens na transmissão de mensagem 108 podem ser mais de 5 mil mensagens por segundo). Além disso, as mensagens podem ser relativamente curtas, o que pode fazer com que a compreensão semântica do texto subjacente seja relativamente difícil, visto que as mensagens às vezes são escritas em um estilo de conversação único, específico à brevidade da plataforma de mídia social. Além disso, a transmissão de mensagem 108 pode incluir um grau relativamente alto de ruído, por exemplo, pode haver muitas mensagens que não estão relacionadas a eventos e mesmo aquelas que estão relacionadas podem incluir termos irrelevantes. Além disso, conforme indicado acima, os eventos 112 discutidos na plataforma de mensagens 104 podem ser de natureza dinâmica e, portanto, podem mudar ao longo do tempo.
[0047] Para abordar os desafios identificados acima, o detector de eventos 120 pode aplicar periodicamente as operações de agrupamento nas mensagens de uma transmissão de mensagem 108 (por exemplo, em uma base de minuto por minuto ou outro período de tempo periódico) e gerar uma lista atualizada dinamicamente de eventos 112 (por exemplo, uma lista atualizada dinâmica de cadeias de cluster 114). Por exemplo, o detector de eventos 120 pode ser considerado um sistema de detecção de eventos em tempo real que recebe o fluxo completo de mensagens 108 e identifica grupos de cluster 144 de entidades de tendência 132b periodicamente (por exemplo, intervalo de tempo minuto a minuto ou outro periódico prazo). O detector de eventos 120 pode ligar estes grupos de cluster 144 em cadeias de cluster 114 à medida que o evento 112 progride ao longo do tempo, rastreando assim as cadeias de cluster 114 em tempo real. Por exemplo, o detector de eventos 120 pode modelar um evento 112 como uma cadeia de cluster 114, onde uma cadeia de cluster 114 inclui dois ou mais grupos de cluster 144 que estão ligados entre si e cada grupo de cluster 144 inclui duas ou mais entidades de tendência 132b.
[0048] Em geral, um evento 112 pode ser representado por um grupo de entidades que as pessoas usam para discutir o evento 112 no sistema de mensagens 100. Por exemplo, um evento 112 para um show de premiação de filmes pode ser representado por entidades como atores, atrizes nomeadas e filmes que estão sendo discutidos. No entanto, de acordo com as técnicas aqui discutidas, uma vez que a conversa com base em evento pode mudar ao longo do tempo, o evento 112 é modelado como a cadeia de cluster 114, por exemplo, uma lista de grupos de cluster 144 de entidades de tendência 132b (por exemplo, indexados em ordem de tempo). Um evento detectado 112 corresponde a uma cadeia de cluster 114 e é caracterizado em um determinado ponto no tempo por um grupo de cluster 144 de entidades de tendência 132b.
[0049] Por exemplo, com referência à figura 1B, o detector de eventos 120 pode receber a transmissão de mensagem 108 e detectar um primeiro grupo de cluster 144-1 de entidades de tendência 132b de um primeiro período de tempo 196-1 e pode detectar um segundo grupo de cluster 144-2 de entidades de tendência 132b de um segundo período de tempo 196-2. Então, se o detector de eventos 120 determinar que os primeiro e segundo grupos de cluster 144-1, 144-2 se relacionam ao mesmo evento 112, o sistema de mensagens 100 pode ligar estes dois grupos de cluster 144 para formar a cadeia de clusters 114. Em um determinado tempo dentro do primeiro período de tempo 196-1, o evento 112 pode ser caracterizado pelas entidades de tendência 132b do primeiro grupo de cluster 144-1, que (continuando com o exemplo acima) pode incluir terremoto e tsunami. Em um determinado momento dentro do segundo período de tempo 196-2, o evento 112 pode ser caracterizado pelas entidades de tendência 132b do segundo grupo de cluster 144-2, que (continuando com o exemplo acima) pode incluir nuclear e radiação. No entanto, uma vez que o primeiro grupo de cluster 144-1 e o segundo grupo de cluster 144-2 estão ligados dentro da cadeia de cluster 114, esses termos (por exemplo, entidades) se relacionam ao mesmo evento 112, apesar da natureza mutável da conversa baseada em evento.
[0050] O detector de eventos 120 inclui um detector de disparo 126 e um detector de cadeia de cluster 136. O detector de disparo 126 pode receber a transmissão de mensagem 108 e executar as operações de detecção de disparo nas mensagens da transmissão de mensagem 108 para identificar as entidades de tendência 132b a partir da mensagem fluxo 108. O detector de cadeia de cluster 136 pode executar as operações de agrupamento nas entidades de tendência 132b para detectar os grupos de cluster 144 e formar as cadeias de cluster 114, que são armazenadas em um dispositivo de memória 110.
[0051] Em alguns exemplos, o detector de disparo 126 é um componente (ou módulo) separado (ou distinto) do detector de cadeia de cluster 136, onde o detector de disparo 126 e o detector de cadeia de cluster 136 podem ser dimensionados de forma independente. Em alguns exemplos, o detector de disparo 126 inclui um serviço de detector de tendência 128 e um detector de entidade 130. Em alguns exemplos, o detector de disparo 126 inclui o serviço de detector de tendência 128 e o detector de entidade 130 está incluído como parte do detector de cadeia de cluster 136.
[0052] Em alguns exemplos, o detector de disparo 126 e o detector de cadeia de cluster 136 são executáveis por CPUs e dispositivos de memória separados. Além disso, ao separar a detecção de disparo (por exemplo, realizada pelo detector de disparo 126) das operações de agrupamento (por exemplo, realizada pelo detector de cadeia de cluster 136), o detector de disparo 126 pode executar uma ou mais de suas funções em paralelo com as funções do detector de cadeia de cluster 136, que pode aumentar a velocidade de detecção de eventos (por exemplo, especialmente para plataformas de mídia social que manipulam uma grande quantidade de dados). Por exemplo, em vez de executar sequencialmente as operações de agrupamento após a detecção de disparo, a configuração do detector de eventos 120 pode permitir que o detector de disparo 126 seja executado em paralelo (por exemplo, pelo menos parcialmente em paralelo) com a execução do detector de cadeia de cluster 136.
[0053] Em alguns exemplos, a plataforma de mensagens 104 inclui um monitor de recursos de computação 165 configurado para monitorar os recursos de computação atribuídos ao detector de disparo 126 e ao detector de cadeia de cluster 136 e para aumentar (ou diminuir) dinamicamente a quantidade de recursos de computação atribuídos a o detector de disparo 126 e o detector de cadeia de cluster 136 a fim de permitir a detecção de eventos relativamente rápida (por exemplo, em tempo real ou quase em tempo real) para uma transmissão de mensagens relativamente grande 108. Em alguns exemplos, o monitor de recursos de computação 165 pode monitorar a utilização de CPU e/ou uso de memória do detector de disparo 126. Se a utilização de CPU e/ou uso de memória do detector de disparo 126 estiver acima de um nível de limite (por exemplo, que pode ser causado por um aumento repentino no tamanho da mensagem fluxo 108), o monitor de recursos de computação 165 pode causar a alocação de recursos de computação adicionais para o detector de disparo 126. Além disso, o monitor de recursos de computação 165 pode monitorar separadamente a utilização de CPU e/ou uso de memória do detector de cadeia de cluster
136. Se a utilização de CPU e/ou uso de memória do detector de cadeia de cluster 136 estiver acima de um nível limite, o monitor de recursos de computação 165 pode causar a alocação de recursos de computação adicionais para o cluster detector de cadeia 136. Ao usar componentes independentemente escalonáveis para o detector de disparo 126 e o detector de cadeia de cluster 136, a plataforma de mensagens 104 pode aumentar a velocidade de detecção de eventos e aumentar a flexibilidade da plataforma de mensagens 104 para se ajustar às cargas de processamento variáveis de disparo detecção e agrupamento de entidades, e para permitir o rastreamento de eventos 112 em tempo real.
[0054] O serviço de detector de tendência 128 pode receber a transmissão de mensagem 108 e calcular as entidades de tendência 132a em tempo real. Uma entidade de tendência 132a pode ser uma entidade que aparece na transmissão de mensagem 108 em uma taxa incomumente alta ou a uma taxa acima de uma condição de limite, onde a entidade é uma etiqueta para o conteúdo em uma mensagem da transmissão de mensagem 108. Em alguns exemplos, a entidade de tendência 132a é o conteúdo dentro de uma mensagem que se refere a um objeto específico. Em alguns exemplos, a entidade de tendência 132a pode ser uma palavra (ou palavras), uma frase, uma hashtag, um identificador (por exemplo, identificador de usuário, identificador de mensagem, etc.), um recurso da web (por exemplo, URL) e/ou qualquer conteúdo que se refira a um objeto específico. Em alguns exemplos, as entidades de tendência 132a incluem entidades citadas, hashtags, identificadores (por exemplo, identificadores de usuário, identificadores de mensagem) e URLs. Em alguns exemplos, o serviço de detector de tendência 128 é um serviço separado que pode ser usado por vários componentes da plataforma de mensagens 104. Em alguns exemplos, o serviço de detector de tendência 128 identifica as entidades de tendência 132a em regiões geográficas em tempo real.
[0055] Em alguns exemplos, o serviço de detector de tendência 128 pode definir um ou mais domínios, onde cada domínio é um subconjunto da transmissão de mensagem 108 e o serviço de detector de tendência 128 pode definir um gráfico de velocidade para um respectivo domínio (por exemplo, o número de mensagens no eixo x e o tempo no eixo y). O serviço de detector de tendência 128 pode definir um número limite de mensagens ao longo de um período de tempo (por exemplo, um pico) para detectar as entidades de tendência 132a.
[0056] Em alguns exemplos, o serviço de detector de tendência 128 pode executar uma série de operações de processo para identificar as entidades de tendência 132a, que podem incluir preparação de dados, extração de entidade, extração de domínio, contagem, pontuação e classificação, onde as principais tendências de pontuação por domínio ficam na memória no serviço de detector de tendência 128 e disponíveis para serem consultadas por outros serviços da plataforma de mensagens 104, como o gerenciador de tendências 106, o detector de entidade 130 e/ou o detector de cadeia de cluster 136. A operação de preparação de dados pode incluir a remoção de mensagens com baixa qualidade de texto ou conteúdo confidencial e a remoção de mensagens semelhantes para garantir substancialmente que a contribuição de um único usuário para uma tendência seja limitada. As operações de entidade, extração de domínio e contagem podem incluir, para uma determinada mensagem, extração de entidades e domínios geográficos disponíveis, e para cada domínio e entidade, o serviço de detector de tendência 128 pode emitir uma contagem com uma tupla de <entidade, domínio, 1> e agregar essas informações ao longo do tempo. A operação de pontuação pode incluir a pontuação com base na detecção de anomalias, onde o serviço de detector de tendência 128 calcula as contagens esperadas de <entidade, domínio> e compara as contagens esperadas com as contagens observadas para gerar uma pontuação para cada par. Para calcular a contagem esperada para um par de domínio e entidade, o serviço de detector de tendência 128 pode usar a equação a seguir: 𝑁𝑠 (𝑑) Eq. (1): 𝐸 (𝑑, 𝑒) = ∙ 𝑁1 (𝑑, 𝑒). 𝑁𝑙 (𝑑)
[0057] Na Eq. (1), 𝐸 (𝑑, 𝑒) é a contagem esperada para o domínio d e entidade e, 𝑁𝑙 é a contagem ao longo de uma janela de tempo longa e 𝑁𝑠 é contagem ao longo de uma janela curta. A operação de classificação pode incluir determinar as tendências de pontuação superior por domínio, e as tendências de pontuação superior por domínio ficam na memória no serviço de detector de tendência 128 e disponíveis para serem consultadas.
[0058] O detector de entidade 130 pode consultar periodicamente o serviço de detector de tendência 128 para obter as entidades de tendência 132a e, em seguida, armazenar (por exemplo, armazenar em cache) as entidades de tendência 132a no detector de entidade 130. Em alguns exemplos, o detector de entidade 130 consulta periodicamente o serviço de detector de tendência 128 em uma base minuto a minuto ou outro intervalo de tempo de período. Em alguns exemplos, o detector de entidade 130 pode consultar o serviço de detector de tendência 128 periodicamente mais rápido do que minuto a minuto, como a cada 30 segundos ou a cada 15 segundos ou mais lento do que minuto a minuto, como a cada dois minutos ou a cada cinco minutos.
[0059] Em alguns exemplos, o detector de entidade 130 pode se comunicar com o serviço de detector de tendência 128 através de uma interface de comunicação de servidor. Em alguns exemplos, o detector de entidade 130 pode obter as entidades de tendência 132a do serviço de detector de tendência 128 por meio de uma ou mais interfaces de programação de aplicativo. Em alguns exemplos, o detector de entidade 130 pode transmitir uma chamada de procedimento remoto (RPC) (por exemplo, uma chamada de economia) para o serviço de detector de tendência 128 e, em seguida, receber as entidades de tendência 132a do serviço de detector de tendência 128. Em alguns exemplos, o detector de entidade 130 obtém as entidades de tendência 132a de um banco de dados e o banco de dados é gravado pelo serviço de detector de tendência 128. Em alguns exemplos, o detector de entidade 130 pode transmitir uma solicitação de transferência de estado representacional (REST) para o serviço de detector de tendência 128 e, em seguida, recebe as entidades de tendência 132a do serviço de detector de tendência 128. Em alguns exemplos, o detector de entidade 130 se comunica com o serviço de detector de tendência 128 por meio de uma solicitação GraphQL.
[0060] O detector de entidade 130 recebe a transmissão de mensagem 108 e extrai as entidades 132 da transmissão de mensagem
108. Por exemplo, o detector de entidade 130 pode extrair certos tipos de termos incluídos nas mensagens da transmissão de mensagem 108, e esses tipos de termos podem ser referidos como entidades 132. Em alguns exemplos, uma entidade 132 extraída pelo detector de entidade 130 é o conteúdo dentro de uma mensagem que se refere a um objeto específico. Em alguns exemplos, uma entidade 132 extraída pelo detector de entidade é uma palavra (ou palavras), uma frase, uma hashtag, um identificador (por exemplo, identificador de usuário, identificador de mensagem, etc.), um recurso da web (por exemplo, URL), e/ou qualquer conteúdo que se refira a um objeto específico.
[0061] Em alguns exemplos, com referência à figura 1C, as entidades 132 incluem as entidades citadas 111 (por exemplo, "Oprah Winfrey"), hashtags 113 (por exemplo, "#UsOpen"), entidades de gráfico 115 (por exemplo, "entidade 123"), URLs 117, e/ou identificadores de usuário 119. Na extração de informações, uma entidade citada 111 pode ser objetos do mundo real, como pessoas, locais, organizações, produtos, etc. A entidade citada 111 pode ser abstrata ou ter uma existência física. Os exemplos de entidades citadas 111 incluem Barack Obama ou Cidade de Nova York ou qualquer coisa que possa ser citado.
Por exemplo, considerando a frase a seguir, "Barack Obama foi o presidente dos Estados Unidos", tanto "Barack Obama" quanto "Estados Unidos" são entidades citadas 111, uma vez que eles se referem aos objetos específicos, mas "presidente" pode não ser considerado uma entidade citada 111 uma vez que pode ser usado para se referir a muitos objetos diferentes. Uma hashtag 113 é uma palavra ou frase sem espaçamento em uma mensagem introduzida por um símbolo de cerquilha (#). As entidades de gráfico 115 representam entidades de gráfico de conhecimento da plataforma de mensagens
104. Em alguns exemplos, as entidades de gráfico 115 incluem as representações internas de entidades capturadas através de um gráfico de conhecimento. Os identificadores de usuário 119 podem ser os identificadores de usuário ou de conta que identificam as contas 118.
[0062] O detector de entidade 130 pode usar as entidades de tendência 132a (recebidas a partir do serviço de detector de tendência 128) para filtrar as entidades de não tendência das entidades 132 a fim de obter as entidades de tendência 132b. Em alguns exemplos, as entidades de tendência 132b incluem um ou mais do tipo de entidades 132 identificados na figura 1C (ou todos os tipos), mas uma vez que as entidades de não tendência são filtradas, as entidades de tendência 132b incluem as entidades 132 que são o assunto do momento. Em alguns exemplos, as entidades de tendência 132a identificadas pelo serviço de detector de tendência 128 incluem uma coleção maior de tags do que aquela identificada pelo detector de entidade 130. Por exemplo, as entidades de tendência 132a podem incluir as entidades citadas 111, as hashtags 113, as entidades de gráfico 115, as URLs 117, e os identificadores de usuário 119, enquanto as entidades 132 identificadas pelo detector de entidade 130 incluem as entidades citadas 111, as hashtags 113, e as entidades de gráfico 115. Como tal, se um identificador de usuário 119 específico foi identificado pelo serviço de detector de tendência 128 como o assunto do momento, o detector de entidade 130 não iria extrair o identificador de usuário 119, pois o detector de entidade 130 extrai apenas as entidades citadas 111, as hashtags 113, e as entidades de gráfico 115. Em alguns exemplos, as entidades 132 (e, consequentemente, as entidades de tendência 132b) são estendidas para também incluir as URLs 117 e os identificadores de usuário 119.
[0063] A cadeia de cluster detector 136 pode receber as entidades de tendência 132b a partir do detector de disparo 126 e gerar a cadeia de cluster 114 de grupos de cluster ligados 144 ao longo do tempo, em que a cadeia de cluster 114 representa a único evento 112 ao longo do tempo. A cadeia de cluster 114 gerada pela cadeia de cluster detector 136 pode ser armazenada no dispositivo de memória 110. Por exemplo, a cadeia de cluster detector 136 pode detectar de maneira contínua (por exemplo, periodicamente) os grupos de cluster 144 de entidades de tendência 132b ao longo do tempo. Por exemplo, a cadeia de cluster detector 136 pode detectar um ou mais grupos de cluster 144 durante um primeiro período de tempo, detectar um ou mais grupos de cluster 144 durante um segundo período de tempo, detectar um ou mais grupos de cluster 144 durante um terceiro período de tempo, e assim em diante. Em alguns exemplos, a cadeia de cluster detector 136 detecta um ou mais grupos de cluster 144 periodicamente (por exemplo, a cada minuto). Um grupo de cluster específico 144 pode incluir duas ou mais entidades de tendência 132b que são determinadas como sendo relacionadas umas às outras de forma similar em um determinado intervalo de tempo (por exemplo, as entidades de tendência 132b do mesmo grupo de cluster 144 podem ser consideradas como se referindo semanticamente ao mesmo assunto). Em alguns exemplos, as entidades de tendência 132b de um grupo de cluster 144 específico podem compartilhar uma característica em comum.
[0064] O detector de cadeia de cluster 136 pode executar qualquer tipo de algoritmo de agrupamento com base em comunidade para detectar os grupos de cluster 144, que podem ou não incluir um algoritmo de Louvain e gráfico de similaridades. Em seguida, a cadeia de cluster detector 136 pode ligar um ou mais grupos de cluster 144 a partir de um período de tempo atual a um ou mais grupos de cluster 144 de um período de tempo anterior para gerar a cadeia de cluster 114.
[0065] Em detalhes adicionais, a cadeia de cluster detector 136 inclui um mecanismo de agrupamento de entidade 138, um gerador de gráfico de similaridade 148, uma calculadora de similaridade 152, um filtro de gráfico de similaridade 162, um vinculador de cluster 168, e um classificador de cluster 170. Em alguns exemplos, a cadeia de cluster detector 136 não inclui um gerador de gráfico similar 148 (por exemplo, um gráfico de similaridade 146 não é gerado). A calculadora de similaridade 152 pode receber as entidades de tendência 132b e calcular os valores de similaridade 150 para as entidades de tendência 132b com base na contagem de frequência 154 e co-ocorrências 156 por uma janela de tempo 158. Por exemplo, a calculadora de similaridade 152 pode rastrear a contagem de frequência 154 de entidades de tendência e as co-ocorrências 156 por uma janela de tempo 158. Uma janela de tempo 158 é usada para a agregação de co- ocorrências 156 e a contagem de frequência 154 como explicado ainda abaixo. Em alguns exemplos, a janela de tempo 158 é uma janela de tempo móvel. Em alguns exemplos, a janela de tempo 158 pode ser ajustada para a redução de memória.
[0066] A calculadora de similaridade 152 pode usar a contagem de frequência 154 e as co-ocorrências 156 pela janela de tempo 158 para calcular as similaridades entre s entidades de tendência 132b, em que um respectivo valor de similaridade 150 representa um nível de similaridade entre duas entidades de tendência 132b. Em alguns exemplos, um valor de similaridade 150 é representado por ou considerado um peso de borda. A tabela 1 ilustra um exemplo de três mensagens da transmissão de mensagem 108. Tabela 1 ID da mensagem Texto 1 iphone® lançado durante #appleevent 2 Tim Cook apresenta novo iphone® #appleevent 3 Tim Cook revela o iphone®
[0067] A calculadora de similaridade 152 pode representar as co- ocorrências 156, como mostrado na Tabela 2. Neste exemplo, as entidades de tendência 132b incluem iphone® (por exemplo, uma entidade citada 111) e #appleevent (por exemplo, uma hashtag 113). Tabela 2 Mensagem 1 Mensagem 2 Mensagem 3 iphone® 1 1 1 #appleevent 1 1 0
[0068] A calculadora de similaridade 152 pode calcular os vetores de entidade para as entidades de tendência 132b (por exemplo, iphone® e #appleevent), da seguinte forma: iphone® = [1,1,1], #appleevent = [1,1,0]. Em alguns exemplos, ao calcular um valor de similaridade 150 para um par de entidades de tendência 132b, a calculadora de similaridade 152 pode calcular o valor de similaridade com base nos similaridade do cosseno. A similaridade do cosseno para as duas entidades X e Y é mostrada na Eq. (2): X∙Y Eq. (2): cos(X, Y) = ‖X‖‖Y‖
[0069] No exemplo acima, para as entidades de tendência 132b de iphone® e #appleevent, a calculadora de similaridade 152 pode calcular o valor de similaridade 150 da seguinte forma: cos(iphone®, #applevent)
= 0,81649. Embora este exemplo utilize a similaridade do cosseno, a calculadora de similaridade 152 pode utilizar qualquer tipo de análise de similaridade que utiliza a contagem de frequência 154 e as co- ocorrências 156 por uma janela de tempo 158 ou qualquer análise de similaridade que possa calcular a distância de similaridade (ou o nível de similaridade) entre duas entidades.
[0070] O gerador de gráfico de similaridade 148 pode gerar um gráfico de similaridade 146 com base nas entidades de tendência 132b e seus valores de similaridade 150 correspondentes. A figura 1D ilustra um gráfico de similaridade 146 de acordo com um aspecto. O gráfico de similaridade 146 inclui os nós 101 (por exemplo, nós 1 a 12) que representam as entidades de tendência 132b e as bordas 103 que representam as ligações entre os nós 101. Cada borda 103 é associada a um peso de borda, que é o valor de similaridade 150 calculado pela calculadora de similaridade 152.
[0071] O filtro de gráfico de similaridade 162 pode filtrar o gráfico de similaridade 146 com base em um limite de similaridade 160 de modo que as bordas 103 que têm os valores de similaridade 150 menores que o limite de similaridade 160 são removidas do gráfico de similaridade
146. Em alguns exemplos, o limite de similaridade 160 é o limite inferior para a similaridade de dois registros de dados que pertencem ao mesmo cluster. Por exemplo, se o limite de similaridade 160 for definido para 0,25, registros de dados com valores de campo que são menos de 25% semelhantes provavelmente não serão atribuídos ao mesmo cluster. Em alguns exemplos, o limite de similaridade 160 tem um intervalo de 0 a
1. O limite de similaridade 160 pode ser um limite mínimo que é usado para aplicar os pesos de borda (por exemplo, valores de similaridade 150) do gráfico de similaridade 146 (por exemplo, as bordas 103 que têm os valores de similaridade 150 menores que o limite de similaridade 160 são removidas). Por exemplo, o filtro de gráfico de similaridade 162 pode filtrar o gráfico de similaridade 146 com o uso do limite de similaridade 160 (por exemplo, um limite de similaridade mínimo) a fim de remover as conexões de ruído entre as entidades de tendência 132b. Se o valor de similaridade 150 de uma borda 103 estiver abaixo do limite de similaridade 160, o filtro de gráfico de similaridade 162 pode remover aquela borda 103 do gráfico de similaridade 146.
[0072] O mecanismo de agrupamento de entidade 138 pode aplicar um algoritmo de agrupamento 140 no gráfico de similaridade 146 para detectar os grupos de cluster 144. O mecanismo de agrupamento de entidade 138 pode executar o algoritmo de agrupamento 140 para particionar o gráfico de similaridade 146 para detectar os grupos de cluster 144. Em alguns exemplos, o algoritmo de agrupamento 140 inclui qualquer tipo de algoritmo de agrupamento com base em comunidade. Em alguns exemplos, o algoritmo de agrupamento 140 inclui um algoritmo de agrupamento sim configurado para comparar e contrastar entidades para identificar os grupos de entidades de tópicos relacionados. Em alguns exemplos, o algoritmo de agrupamento 140 inclui um algoritmo de particionamento de gráfico com base em modularidade. Em alguns exemplos, o algoritmo de agrupamento 140 inclui um Algoritmo de Louvain de agrupamento. Em alguns exemplos, o algoritmo de agrupamento 140 é um algoritmo com base em aprendizado de máquina que define uma rede neutra. Em alguns exemplos, o algoritmo de agrupamento 140 inclui qualquer tipo de algoritmo de agrupamento com base em conectividade (por exemplo, algoritmo de agrupamento hierárquico), algoritmo de agrupamento com base em centroide, algoritmo de agrupamento com base em distribuição e/ou algoritmo de agrupamento com base em densidade. Para as redes relativamente grandes, em alguns exemplos, o algoritmo de Louvain de agrupamento pode ser eficiente para determinar grupos de cluster 144. Em alguns exemplos, o algoritmo de agrupamento 140 está associado a uma resolução 142. A resolução 142 pode ser um parâmetro do algoritmo de agrupamento 140, por exemplo, um algoritmo de Louvain de agrupamento. A resolução 142 pode ser um parâmetro que afeta o tamanho dos clusters recuperados. Um valor maior da resolução 142 pode resultar em muitas comunidades menores, e um valor menor da resolução 142 pode resultar em algumas comunidades maiores.
[0073] A figura 1E pode representar o gráfico de similaridade 146 após filtrar e agrupar por um determinado período de tempo de acordo com um aspecto. Por exemplo, o gráfico de similaridade 146 pode representar os grupos de cluster 144 para o primeiro grupo de cluster 144-1 da figura 1B. Com referência às figuras 1D e 1E, a borda 103 entre o nó 4 e o nó 6, a borda 103 entre o nó 5 e o nó 7, a borda 103 entre o nó 6 e o nó 7 e a borda 103 entre o nó 10 e o nó 11 foram removidas pela filtro de gráfico de similaridade 162. Então, em resposta à aplicação do algoritmo de agrupamento 140, o mecanismo de agrupamento de entidades 138 pode detectar os grupos de cluster 144, onde cada grupo de cluster 144 inclui duas ou mais entidades de tendência 132b (representadas pelos nós 101). Em alguns exemplos, os grupos de cluster 144 representados na figura 1E ilustram os grupos de cluster 144 para um determinado período de tempo, por exemplo, o primeiro período de tempo 196-1, o segundo período de tempo 196-2 ou o terceiro período de tempo 196-3. Então, durante um período de tempo subsequente (por exemplo, o próximo minuto), o mecanismo de agrupamento de entidades 138 pode receber as entidades de tendência 132b trocadas na plataforma de mensagens 104 durante esse período de tempo subsequente e detectar um ou mais grupos de cluster 144.
[0074] O vinculador de cluster 168 pode ligar um ou mais grupos de cluster 144 de um período de tempo com um ou mais grupos de cluster 144 de um período de tempo anterior para desenvolver a cadeia de cluster 114. Por exemplo, após o mecanismo de agrupamento de entidade 138 aplicar o algoritmo de agrupamento 140 para produzir grupos de cluster 144 para um determinado período de tempo (por exemplo, determinado minuto), o vinculador de cluster 168 pode se conectar aos grupos de cluster 144 do período de tempo anterior (por exemplo, minuto anterior). Em alguns exemplos, o vinculador de cluster 168 pode ligar os grupos de cluster 144 com base em uma série de entidades de tendência 132b compartilhadas entre um grupo de cluster 144 de um período de tempo e um grupo de cluster 144 do período de tempo anterior.
[0075] Novamente, com referência à figura 1B, um evento 112 pode ser representado como uma cadeia de cluster 114 que tem um primeiro grupo de cluster 144-1, um segundo grupo de cluster 144-1 e um terceiro grupo de cluster 144-3. O evento 112 (ou a cadeia de cluster 114) pode incluir ou estar associado a metadados de evento 192. Os metadados de evento 192 podem incluir o tempo de início e o tempo de término detectados do evento 112. Em alguns exemplos, cada grupo de cluster 144 pode incluir ou estar associado a metadados de cluster 141. Em alguns exemplos, os metadados de cluster 141 podem incluir a contagem de frequência de entidade das entidades de tendência 132b definidas por um respectivo grupo de cluster 144. Em alguns exemplos, os metadados de cluster 141 podem incluir a contagem de frequência 154 para cada uma das tendências entidades 132b de um respectivo grupo de cluster 144. Em alguns exemplos, os metadados de cluster 141 podem incluir o número total de contagem de frequência 154 em todas as entidades de tendência 143 de um respectivo grupo de cluster
144. Em alguns exemplos, os metadados de cluster 141 podem incluir o número de co-ocorrências 156 para cada entidade de tendência 132b ou em todas as entidades de tendência 132b de um respectivo grupo de cluster 144. Em alguns exemplos, os metadados de cluster 141 podem incluir o identificador de cluster 166 de um respectivo grupo de cluster
144.
[0076] O primeiro grupo de cluster 144-1 está associado a um primeiro período de tempo 196-1, o segundo grupo de cluster 144-2 está associado a um segundo período de tempo 196-2 e o terceiro grupo de cluster 144-3 é associado a um terceiro período de tempo 196-3. O segundo período de tempo 196-2 pode ocorrer após o primeiro período de tempo 196-1, e o terceiro período de tempo 196-3 pode ocorrer após o segundo período de tempo 196-2. Embora cada período de tempo represente um grupo de cluster 144, o primeiro período de tempo 196- 1, o segundo período de tempo 196-2 e o terceiro período de tempo 196- 3 podem incluir vários grupos de cluster 144 (por exemplo, como mostrado na figura 1E). Em alguns exemplos, cada um do primeiro período de tempo 196-1, do segundo período de tempo 196-2 e do terceiro período de tempo 196-3 tem a mesma duração temporal (por exemplo, cada um tem uma duração temporal de um minuto). No entanto, as modalidades podem abranger qualquer intervalo de tempo periódico para ligar os grupos de cluster 144. O primeiro grupo de cluster 144-1 inclui as entidades de tendência 132b do primeiro período de tempo 196-1 (por exemplo, entidade A, entidade B, entidade C), o segundo grupo de cluster 144-2 inclui as entidades de tendência 132b do segundo período de tempo 196-2 (por exemplo, entidade A, entidade D, entidade C), e o terceiro grupo de cluster 144-3 inclui as entidades de tendência 132b do terceiro período de tempo 196-3 (por exemplo, entidade A, entidade D, entidade E).
[0077] Se o vinculador de cluster 168 determinar que o segundo grupo de cluster 144-2 está relacionado ao primeiro grupo de cluster 144-2, o vinculador de cluster 168 gera um link 194 entre o primeiro grupo de cluster 144-2 e o segundo grupo de cluster 144 -2. Da mesma forma, se o vinculador de cluster 168 determinar que o terceiro grupo de cluster 144-3 está relacionado ao segundo grupo de cluster 144-2, o vinculador de cluster 168 gera um link 194 entre o segundo grupo de cluster 144-2 e o terceiro grupo de cluster 144- 3. Como mostrado na figura 1B, o evento 112 é representado ao longo do tempo (por exemplo, através do primeiro período de tempo 196-1, do segundo período de tempo 196-2 e do terceiro período de tempo 196-3) ligando os grupos de cluster 144 de diferentes períodos de tempo. Como mostrado na figura 1B, durante o segundo período de tempo 196-2, a entidade de tendência 132b da "entidade D" foi introduzida (e durante o terceiro período de tempo 196-3, a entidade de tendência 132 da "entidade E" foi introduzida), mas usando as técnicas aqui descritas, o detector de eventos 120 pode detectar aqueles termos introduzidos posteriormente como relacionados ao mesmo evento 112 que as entidades de tendência 132b do primeiro grupo de cluster 144-1, uma vez que o evento 112 é modelado como uma lista de grupos de cluster 144 ao longo do tempo.
[0078] O link 194 entre o segundo grupo de cluster 144-2 e o primeiro grupo de cluster 144-1 indica que o primeiro grupo de cluster 144-1 e o segundo grupo de cluster 144-2 se relacionam ao mesmo evento 112. Além disso, como mostrado na figura 1B, a cadeia de cluster 114 tem um link 194 entre o terceiro grupo de cluster 144-3 e o segundo grupo de cluster 144-2, o que indica que o primeiro grupo de cluster 144-1, o segundo grupo de cluster 144-2 e o terceiro agrupamento o grupo 144-3 estão relacionados ao mesmo evento 112.
[0079] Em alguns exemplos, o link 194 é um peso de borda que representa um nível de similaridade entre o primeiro grupo de cluster 144-1 e o segundo grupo de cluster 144-2. Em alguns exemplos, o peso da borda é uma medida do número de entidades de tendência 132b que são compartilhadas entre o primeiro grupo de cluster 144-1 e o segundo grupo de cluster 144-2. Em alguns exemplos, o peso da borda é semelhante ou igual ao peso da borda (por exemplo, o valor de similaridade 150) em relação ao gerador de gráfico de similaridade 148. Em alguns exemplos, se o peso da borda associado ao link 194 estiver abaixo de um limite valor, o link 194 é removido. Em alguns exemplos, o vinculador de cluster 168 determina o link 194 entre o primeiro grupo de cluster 144-1 e o segundo grupo de cluster 144-2 com base em uma correspondência bipartida ponderada máxima. Em alguns exemplos, a correspondência bipartida ponderada máxima inclui um problema de otimização para encontrar uma correspondência de peso máximo.
[0080] Em alguns exemplos, o vinculador de cluster 168 é configurado para gerar um gráfico bipartido, em que os grupos de cluster 144 de um determinado período de tempo são conectados aos grupos de cluster 144 do período de tempo anterior 𝐶𝑇 . Um gráfico bipartido (por exemplo, G = (U, V, E)) é um gráfico cujos vértices podem ser divididos em dois conjuntos disjuntos U e V de modo que cada borda (ui, vj) ∈ E conecta um vértice ui ∈ U e um vj ∈ V. Se cada borda no gráfico G tem um peso associado wij, o gráfico G é chamado de gráfico bipartido ponderado. Em um gráfico bipartido, um M correspondente do gráfico G é um subconjunto de E, tal que nenhuma borda em M compartilha um vértice comum. Se o gráfico G é um gráfico bipartido ponderado, a correspondência bipartida máxima ponderada é uma correspondência que soma os pesos das bordas é máximo. O peso da borda entre eles pode ser uma medida de quantas entidades esses grupos de cluster 144 compartilham, semelhante à similaridade de cosseno descrita anteriormente. O vinculador de cluster 168 pode filtrar quaisquer bordas cujo peso caia abaixo de um limite e realizar a correspondência bipartida ponderada máxima para encontrar links de cluster.
[0081] Em alguns exemplos, quando um grupo de cluster 144 é ligado com sucesso, o vinculador de cluster 168 pode copiar o identificador de cluster 166 do grupo de cluster 144 do período de tempo anterior para o grupo de cluster 144 no período de tempo determinado. Para quaisquer grupos de cluster 144 que não estão ligados, o vinculador de cluster 168 pode gerar um novo identificador de cluster exclusivo 166. Por exemplo, se o primeiro grupo de cluster 144-1 não estiver ligado a um grupo de cluster 144 de um período de tempo anterior, o vinculador de cluster 168 pode atribuir um identificador de cluster 166 (por exemplo, um novo identificador exclusivo) para o primeiro grupo de cluster 144-1. Uma vez que o segundo grupo de cluster 144-2 está vinculado ao primeiro grupo de cluster 144-1 (por meio do link 194), o vinculador de cluster 168 pode atribuir o mesmo identificador de cluster 166 que foi atribuído ao primeiro grupo de cluster 144-1 para o segundo grupo de cluster 144-2. Da mesma forma, uma vez que o terceiro grupo de cluster 144-3 está ligado ao segundo grupo de cluster 144-2, o vinculador de cluster 168 pode atribuir o mesmo identificador de cluster 166 que foi atribuído ao segundo grupo de cluster 144-2 ao terceiro grupo de cluster 144- 3. Como tal, em alguns exemplos, o identificador de cluster 166 pode ser o mesmo para cada um dos grupos de cluster 144 dentro de uma cadeia de cluster particular
114.
[0082] O classificador de cluster 170 pode classificar os grupos de cluster 144 dentro da cadeia de cluster 114. Por exemplo, em relação à cadeia de cluster 114 da figura 1B, o classificador de cluster 170 pode determinar uma lista classificada do primeiro grupo de cluster 144-1, do segundo grupo de cluster 144-2 e do terceiro grupo de cluster 144-3. Em alguns exemplos, o classificador de cluster 170 pode classificar os grupos de cluster 144 com base na métrica de popularidade agregada das entidades de tendência 132b contidas dentro de um respectivo grupo de cluster 144. Por exemplo, em relação ao primeiro grupo de cluster 144-1, o classificador de cluster 170 pode identificar uma métrica de popularidade associada a cada uma das entidades de tendência
132b associada ao primeiro grupo de cluster 144-1 e, em seguida, agregar as métricas de popularidade para obter uma (métrica de popularidade agregada) geral. O classificador de cluster 170 pode executar as mesmas operações com relação ao segundo grupo de cluster 144-2 e ao terceiro grupo de cluster 144-3. Então, o classificador de cluster 170 pode classificar o primeiro grupo de cluster 144-1, o segundo grupo de cluster 144-2 e o terceiro grupo de cluster 144-3 de acordo com sua pontuação de popularidade geral.
[0083] O detector de eventos 120 pode armazenar a cadeia de cluster 114 no dispositivo de memória 110. Por exemplo, o detector de evento 120 pode armazenar a lista classificada de grupos de cluster 144 no dispositivo de memória 110 de modo que a cadeia de cluster 114 (ou partes dela) pode ser recuperada pelo detector de cadeia de cluster 136 para futuras etapas de ligação ou pode ser recuperado por um ou mais outros serviços fornecidos pela plataforma de mensagens 104.
[0084] A plataforma de mensagens 104 pode transmitir os dados digitais 190 (através da rede 172) para o aplicativo cliente 176 para renderizar as informações sobre o(s) evento(s) 112 na interface de usuário 178 do aplicativo cliente 176. As informações sobre o(s) evento(s) 112 podem incluir as informações de cadeia de cluster 184. As informações de cadeia de cluster 184 podem identificar um ou mais eventos 112 e identificar uma ou mais entidades de tendência 132b de um ou mais grupos de cluster 144 ao longo do tempo. Em alguns exemplos, as informações da cadeia de cluster 184 são incorporadas às tendências 182. Por exemplo, as tendências 182 podem identificar uma lista de tópicos de tendência, incluindo hashtags de tendência. Em um exemplo específico, a hashtag "#bucks" pode ser uma tendência e ser incluída como parte de um evento 112. Em alguns exemplos, o gerenciador de tendências 106 pode receber as cadeias de cluster 114 e determinar se deve identificar um ou mais termos relacionados associados com o evento 112. A hashtag "#bucks" pode ser incluída como parte do primeiro grupo de cluster 144-1, e outro termo ("Giannis") pode ser incluído como parte do segundo grupo de cluster 144-2. O gerenciador de tendências 106 pode usar a cadeia de cluster 114 para esse evento 112 para identificar a entidade (Giannis) e indicar a entidade (Giannis) como um termo relacionado para a hashtag de tendência de "#bucks".
[0085] Em alguns exemplos, as informações da cadeia de cluster 184 são incorporadas como parte da linha do tempo do usuário 180. Por exemplo, o gerenciador da linha do tempo 163 pode receber as cadeias do cluster 114 e determinar se alguma das mensagens a ser processada na linha do tempo do usuário 180 inclui as entidades de tendência 132b dentro das cadeias de cluster 114. Se assim for, o gerenciador de linha do tempo 163 pode identificar outras entidades de tendência 132b do mesmo grupo de cluster 144 ou entidades de tendência 132b de outros grupos de cluster 144 que fazem parte da mesma cadeia de cluster 114.
[0086] A linha do tempo 180 pode incluir uma transmissão de mensagens que inclui uma lista de mensagens postadas por contas 118 que têm um relacionamento com a conta 118 do usuário do aplicativo cliente 176 no gráfico de conexão 116. Em alguns exemplos, a transmissão de mensagens incluídas como parte da linha do tempo 180 é classificada, e a classificação das mensagens pode ser baseada (em parte) no evento detectado 112. Por exemplo, como discutido com referência à figura 1B, o evento 112 pode incluir metadados de evento 192 que identificam o tempo de início detectado do evento 112 e o tempo de término detectado do evento 112. O tempo de início detectado pode ser baseado no tempo associado ao primeiro grupo de cluster 144 do cluster cadeia 114, e o tempo de término detectado pode ser baseado no tempo associado ao último grupo de cluster 144 da cadeia de cluster 114. O gerenciador de linha de tempo 163 pode receber o evento 112, que identifica as entidades de tendência 132b através dos diferentes grupos de cluster 144 que pertencem a esse evento 112 (ou cadeia de cluster 114). O gerenciador de linha de tempo 163 pode determinar se uma mensagem a ser processada como parte da linha de tempo do usuário 180 inclui uma entidade de tendência 132b da cadeia de cluster 114 durante a duração do evento 112 (por exemplo, entre o horário de início detectado e o horário de término detectado). Se essa mensagem incluir uma entidade de tendência 132b que faz parte da cadeia de cluster 114 durante a duração do evento 112, o gerenciador de linha do tempo 163 pode aumentar (ou melhorar) essa mensagem dentro da classificação da linha do tempo do usuário 180.
[0087] Em alguns exemplos, a linha do tempo 180 inclui o conteúdo promovido, que pode incluir as mensagens de anúncio. Semelhante às mensagens a serem liberadas de acordo com o gráfico de conexão 116, uma mensagem promovida pode ser aumentada na classificação da linha do tempo se essa mensagem promovida incluir uma entidade de tendência 132 da cadeia de cluster 114 durante a duração do evento. Em alguns exemplos, a plataforma de mensagens 104 inclui um mecanismo de pilha de anúncios configurado para determinar o preço das mensagens promovidas. Em alguns exemplos, o mecanismo de pilha de anúncios pode aumentar seu preço para o conteúdo promovido se o conteúdo promovido incluir uma ou mais entidades de tendência 132 durante a duração do evento 112.
[0088] Em alguns exemplos, as informações da cadeia de cluster 184 são incorporadas como parte dos resultados da busca 186. Por exemplo, um usuário pode enviar uma consulta de busca e o gerenciador de busca 161 pode usar as cadeias de cluster 114 para expandir os resultados da busca 186 para incluir outras entidades relacionadas. Por exemplo, em resposta a uma consulta de #bucks, o gerenciador de busca 161 pode obter a lista de eventos 112, e se o termo #bucks estiver associado a um evento 112, o gerenciador de busca 161 pode retornar mensagens que incluem o termo #bucks e pode identificar um termo sugerido (por exemplo, outra entidade de tendência 132b da mesma cadeia de cluster 114) ou retornar resultados de busca que incluem mensagens com outras entidades de tendência 132b associadas ao termo #bucks.
[0089] A figura 2 ilustra um exemplo de uma interface de usuário 278 de um aplicativo cliente 276 que representa as informações de cadeia de cluster 284 dentro de uma seção de tendências 282 do aplicativo cliente 276. A seção de tendências 282 exibe uma lista de entidades de tendência, por exemplo, #WorldRefugeeDay e #NBADraft. Com relação a uma ou mais entidades identificadas na seção de tendências 282, o aplicativo cliente 276 renderiza uma linha relacionada (por exemplo, a informação da cadeia de cluster 284) que identifica uma ou mais entidades relacionadas (por exemplo, determinada a partir das cadeias de cluster 114). Por exemplo, a informação da cadeia de cluster 284 identifica várias entidades de tendência (por exemplo, entidades de tendência 132b) (por exemplo, "#WithRefugees", "Today is World Refugee Day") que estão incluídas como parte da mesma cadeia de cluster 114.
[0090] A figura 3 ilustra um fluxo de processo 300 para a detecção de evento temporal com base em similaridade de acordo com um aspecto. O fluxo de processo 300 é descrito em relação ao sistema de mensagens 100 das figuras 1A a 1E e pode incluir qualquer um dos detalhes discutidos com referência a essas figuras. Embora o fluxograma 300 da figura 3 ilustre as operações em ordem sequencial, será observado que este é apenas um exemplo e que operações as adicionais ou alternativas podem ser incluídas. Além disso, as operações da figura 3 e as operações relacionadas podem ser executadas em uma ordem diferente daquela mostrada, ou de forma paralela ou sobreposta.
[0091] Na operação 301, a extração de entidade é realizada pelo detector de evento 120. Por exemplo, o detector de entidade 130 recebe a transmissão de mensagem 108 e extrai as entidades 132 das mensagens da transmissão de mensagem 108. Em alguns exemplos, as entidades 132 incluem as entidades citadas 111 e as hashtags 113. Em alguns exemplos, as entidades 132 incluem as entidades citadas 111, as hashtags 113, as entidades de gráfico 115, as URLs 117, e/ou os identificadores de usuário 119.
[0092] Na operação 303, a filtragem de entidade é realizad apelo detector de evento 120. Por exemplo, o detector de entidade 130 se comunica com um serviço de detector de tendência 128 para obter as entidades de tendência 132a. O detector de entidade 130 pode utilizar as entidades de tendência 132a recebidas a partir do serviço de detector de tendência 128 para filtrar quaisquer entidades de não tendência das entidades 132 para obter uma lista de entidades de tendência 132b.
[0093] Na operação 305, as similaridades são calculadas pelo detector de evento 120. Por exemplo, a calculadora de similaridade 152 é configurada para calcular um valor de similaridade 150 para os pares de entidades de tendência 132b. Por exemplo, a calculadora de similaridade 152 recebe as entidades de tendência 132b e rastreia a sua contagem de frequência 154 e as co-ocorrências entre elas por uma janela de tempo 158. A calculadora de similaridade 152 utiliza a contagem de frequências 154 e a co-ocorrências 156 para calcular os valores de similaridade 150 entre as entidades de tendência 132b. Em alguns exemplos, a calculadora de similaridade 152 calcula a similaridade do cosseno para duas entidades de tendência. Em alguns exemplos, o gerador de gráfico de similaridade 148 pode construir um gráfico de similaridade 146 que representa as entidades de tendência 132b como nós 101 e os valores de similaridade 150 como pesos de borda para as bordas 103 que conectam dois nós 101.
[0094] Na operação 307, a filtragem de similaridade é realizada pelo detector de evento 120. Por exemplo, o limite de similaridade 160 é usado para filtrar as conexões de ruíodo no gráfico de similaridade 146. O filtro de gráfico de similaridade 162 pode filtrar o gráfico de similaridade 146 com o uso do limite de similaridade 160, em que as bordas 103 que têm os valores de similaridade 150 abaixo do limite de similaridade 160 são removidas do gráfico de similaridade 146.
[0095] Na operação 309, o agrupamento de entidade é realizado pelo detector de evento 120. Em alguns exemplos, neste estágio, o mecanismo de agrupamento de entidade 138 pode executar um algoritmo de agrupamento 140 para particionar o gráfico de similaridade 146 a fim de detectar os grupos de cluster 144 de entidades de tendência 132b. Em alguns exemplos, o algoritmo de agrupamento 140 inclui um algoritmo de Louvain de agrupamento que tem uma resolução
142.
[0096] Na operação 311, a ligação do cluster é realizada pelo detector de eventos 120. Por exemplo, o vinculador de cluster 168 é configurado para ligar grupos de cluster 144 pertencentes ao mesmo evento 112. Uma vez que a detecção de comunidade (por exemplo, agrupamento de entidade) é aplicada para produzir os grupos de cluster 144 para um período de tempo, o vinculador de cluster 168 pode se conectar aos grupos de cluster 144 no período de tempo anterior. Em alguns exemplos, o vinculador de cluster 168 é configurado para construir um gráfico bipartido em que os grupos de cluster 144 no período de tempo atual são fornecidos e os grupos de cluster 144 no período de tempo anterior são fornecidos. O peso da borda entre eles é uma medida de quantas entidades esses grupos de cluster 144 compartilham, semelhante à similaridade de cosseno descrita anteriormente. O vinculador de cluster 168 pode filtrar quaisquer bordas cujo peso caia abaixo de um limite e realizar a correspondência bipartida ponderada para encontrar links de cluster. Quando um grupo de cluster 144 é vinculado com sucesso, o vinculador de cluster 168 copia sobre o identificador de agrupamento 166 do grupo de cluster 144 no período de tempo anterior para o grupo de cluster 144 no período de tempo atual. Para quaisquer clusters que não estão ligados, o vinculador de cluster 168 pode gerar um novo identificador de cluster exclusivo 166.
[0097] Na operação 313, a classificação do cluster é realizada pelo detector de eventos 120. Por exemplo, o classificador de cluster 170 pode classificar os grupos de cluster 144. Em alguns exemplos, o classificador de cluster 170 pode classificar os grupos de cluster 144 com base na popularidade agregada das entidades de tendência 132b incluídas dentro de um respectivo grupo de cluster 144.
[0098] Na operação 315, a cadeia de cluster 114 é armazenada no dispositivo de memória 110. Por exemplo, a lista classificada e ligada de grupos de cluster 144 fica no dispositivo de memória 110 de modo que possa ser recuperada dentro do detector de cadeia de cluster 136 para as etapas futuras de ligação de cluster ou recuperada por outros serviços (por exemplo, o gerenciador de linha de tempo 163, o gerenciador de tendências 106, o gerenciador de pesquisa 161, etc.).
[0099] Em alguns exemplos, o detector de evento 120 é configurado para executar um algoritmo de detecção de evento temporal com base em similaridade (por exemplo, algoritmo 1) para gerar a cadeia de cluster 114. Por exemplo, o algoritmo 1 pode ser um exemplo do fluxo de processo 300 da figura 3. A entrada ao algoritmo 1 pode ser a transmissão de mensagens 108, o limite de similaridade 160 (S), a resolução 142 (R) e a janela de tempo 158 (W). A saída do algoritmo 1 pode ser a lista de grupos de clusters 144 para um intervalo de tempo (por exemplo, para um minuto T). O pseudocódigo para o algoritmo 1 é fornecido, onde suas operações são mapeadas para as operações da figura 3. Conforme indicado abaixo, o algoritmo 1 utiliza um algoritmo de Louvain que, em alguns exemplos, fornece um ou mais benefícios de agrupamento (conforme explicado posteriormente na divulgação). No entanto, o algoritmo 1 pode usar qualquer tipo de algoritmo de detecção de comunidade.
Além disso, conforme indicado abaixo, o algoritmo 1 constrói gráficos de similaridade.
No entanto, em alguns exemplos, os gráficos de similaridade não são usados para agrupar as entidades relacionadas.
Algoritmo 1 (pseudocódigo) M ←empty coOccurrence matrix Trends ← {set of trending entities} /* Running on background threads */ for each message in the message stream do E ←extract each entity e from a message (*operation 301*) Filtered ← filter (E, e ∈ Trends) (*operation 303*) for each entity Ef ∈ Filtered do (*operation 303*) update Count(M, Ef ) (*operation 303*) end end /* Each minute T , via a timer thread */ remove(M,W) /* remove out-of-window updates */ G ←buildSimilarityGraph(M, S) (*operations 305, 307*) CT ← Louvain(G, R) (*operation 309*) CT −1 ← fetch clusters for T – 1 (*operation 311*) Links ←maxWeightedBipartiteMatching(CT ,CT −1) (*operation 311*) For each ct ∈ CT do (*operation 311) if (ct , ct−1) ∈ Links then (*operation 311*) copy ID from ct−1 to ct (*operation 311*) L ← L + ct (*operation 311*) end
Sort L (*operation 313*) Return L
[00100] Novamente, com referência à figura 1A, o detector de evento 120 pode executar em um modo de análise off-line 122 a fim de avaliar a qualidade dos resultados do detector de evento 120 (com o uso de uma ou mais métricas de desempenho para avaliar o seu desempenho) e, em seguida, alterar ou ajustar um ou mais parâmetros do detector de evento 120, como a resolução 142, o limite de similaridade 160, e/ou a janela de tempo 158.
[00101] A figura 4 ilustra um exemplo do detector de evento 120 no modo de análise off-line 122 de acordo com um aspecto. No modo de análise off-line 122, o detector de evento 120 pode receber uma transmissão de conjunto de dados de avaliação 105 e calcular as cadeias de cluster 114. Em alguns exemplos, a transmissão de conjunto de dados de avaliação 105 inclui as mensagens por um determinado período de tempo (por exemplo, um dia, vários dias, uma semana, etc.) em uma determinada área geográfica (ou várias áreas geográficas ou em todo o mundo). Em alguns exemplos, a transmissão de conjunto de dados de avaliação 105 inclui as mensagens trocadas na plataforma de mensagens 104 por um dia (por exemplo, período de 24 horas).
[00102] O detector de evento 120 pode extrair as entidades 132 (por exemplo, hashtags 113, entidades citadas 111 e as entidades com base em gráfico 115, etc.). Em seguida, o detector de evento 120 pode realizar as mesmas operações, conforme discutivo acima, mas nem qualquer filtragem de similaridade (por exemplo, sem filtrar o gráfico de similaridade 146 com o uso do limite de similaridade 160), que produz um conjunto de cadeias brutas de cluster 114. Em seguida, os processos de filtragem de entidade podem ser sintonizados a fim de otimizar a qualidade de cluster. Para cada cadeia de cluster 114, o detector de evento 120 pode obter todas as entidades de tendência 132b a partir de cada ponto no tempo e produzir um conjunto duplicado de entidades de tendência 132b por cadeia de cluster 114. Para cada cadeia de cluster 114, um conjunto de mensagens representativas (por exemplo, 20 mensagens que podem incluir as 10 mensagens mais recompartilhadas e re-shared e 10 mensagens aleatórias) que continha pelo menos duas entidades de co-ocorrências da cadeia de cluster 114.
[00103] Em alguns exemplos, como parte da análise off-line, o conjunto de mensagens representativas é examinado manualmente, e se a cadeia de cluster 114 corresponder a um evento 112, um identificador de cluster 166 e título são atribuídos, como mostrado na Tabela 3 abaixo. Tabela 3 Entidade de Identificador Título Relevante? tendência 132b de cluster 166 #madisonkeys 1 Quartas de final do US Y Open Feminino #usopen 1 Quartas de final do US Y Open Feminino Minnesota 1 Quartas de final do US N Open Feminino
[00104] Se a cadeia de cluster 114 tiver múltiplos eventos 112, diferentes identificadores de cluster 166 e os títulos são criados para cada um deles. Em seguida, todos os títulos são verificados, e as duplicatas são mescladas em um único identificador de cluster 166. Além disso, as entidades irrelevantes são marcadas e armazenadas como exemplos de falsos positivos (por exemplo, ver Minnesota na Tabela 3). O conjunto de dados é validado por um indivíduo separado para garantir a confiabilidade. Em um exemplo, o corpo de avaliação contém 2695 entidades de tendência 132b e 460 eventos 112 (por exemplo, diferentes identificadores de cluster 166).
[00105] Em alguns exemplos, no modo de análise off-line 122, o detector de evento 120 pode ser executado no mesmo conjunto de mensagens que a transmissão de conjunto de dados de avaliação 105 mas com diferentes configurações, e o desempenho do detector de evento 120 é avaliado com um ou mais dos parâmetros e métricas de desempenho a seguir: fração de eventos detectados 121, consolidação 123, discriminação 125, resolução 142, pontuação de agrupamento 127, fração do evento mesclado 129, fração do evento duplicado 131, e limite de similaridade 160.
[00106] A fração de eventos detectados 121 pode refletir na cobertura do processo de detecção de evento. Por exemplo, o detector de evento 120 pode calcular a fração de eventos da transmissão de conjunto de dados de avaliação 105. Uma entidade de tendência 132b é definida como sendo exclusive se for relacionada a apenas um evento
112. Um evento 112 é detectado se houver um grupo de cluster 144 de tamanho maior do que aquele que contem pelo menos uma entidade de tendência 132b exclusiva daquele evento 112. Em alguns exemplos, a qualidade de agrupamento não é a preocupação desta métrica. Portanto, se houver um único grupo de cluster 144 que contém as entidades de tendência 132b exclusivas de vários eventos 112, todos aqueles eventos 112 são considerados detectados.
[00107] Em alguns exemplos, o limite de similaridade 160 pode ser considerado o filtro primário que afeta uma fração de eventos detectados. A figura 5A ilustra um gráfico 510 que mostra a fração de eventos detectados 121 para um valor aumentado do limite de similaridade 160 de acordo com um aspecto. Como mostrado na figura 5A, quando o limite de similaridade 160 é aumentado, a fração de eventos detectados 121 diminui, que é devido a mais bordas 103 sendo filtradas. Em outras palavras, mais nós 101 são isolados (isto é, sem qualquer borda) do resto da rede e não podem ser agrupados em grupos de cluster 144. Observa-se que mesmo com um limite de similaridade
160 de zero, a fração de eventos detectados 121 é menor que 100%. Dito isso, um grupo de cluster 144 inclui pelo menos dois nós 101, os eventos de nós isolados na rede não são incluídos.
[00108] Em alguns exemplos, as métricas de desempenho incluem duas métricas principais, por exemplo, consolidação 123 e discriminação 125 para acessar a qualidade do sistema. Em alguns exemplos, a consolidação 123 e a discriminação 125 são desenvolvidas de maneira que elas não penalizam por detectar mais eventos 112 do que a transmissão de conjunto de dados de avaliação 105, nem para detectar mais entidades de tendência 132b para um event 112. A consolidação 123 e a discriminação 125 podem ser métricas de desempenho que medem um nível de eficácia em entidades mescladas que representam um único evento 112 e separam aquelas de diferentes eventos 112, respectivamente.
[00109] Duas entidades de tendência 132b são marcadas como relacionadas se fizerem parte de um único evento 112 na verdade fundamental e se ambas forem marcadas como relevantes. Duas entidades de tendência 132b são referidas como não relacionadas se fizerem parte de um único evento 112 na verdade fundamental e se exatamente uma delas for marcada como irrelevante. Em alguns exemplos, as técnicas discutidas neste documento consideram aqueles pares marcados explicitamente porque a maioria dos pares de entidades pertencentes a diferentes eventos 112 são fáceis de distinguir.
[00110] A consolidação 123 pode ser definida da seguinte forma: ∑𝑡∈𝑡 𝑎𝑡 Eq. (3): 𝐶 = ∑𝑡∈𝑇 𝐴𝑡
[00111] A discriminação 125 pode ser definida da seguinte forma: ∑𝑡∈𝑡 𝑏𝑡 Eq. (4): = ∑𝑡∈𝑇 𝐵𝑡 .
[00112] Os parâmetros a seguir incluem 𝑡: carimbro de data/hora, 𝑇: conjunto de todos os carimbros de data/hora na saída do sistema, 𝐴𝑡 :
número de pares de entidades relacionadas que fazem parte da saída do sistema no carimbro de data/hora 𝑡, 𝑎𝑡 : número de pares de entidades relacionadas quencompartilham um cluster em comum na saída do sistema no carimbro de data/hora 𝑡, 𝐵𝑡 : número de pares de entidades não relacionadas que fazem parte da saída do sistema no carimbro de data/hora 𝑡, 𝑏𝑡 : número de unpares de entidades relacionadas que não tem um cluster em comum na saída do sistema no carimbro de data/hora t.
[00113] De forma intuitiva, um algoritmo pode ser considerado como posicionando todas as entidades em um único grupo de cluster 144 como alcançando 100% de consolidação 123, mas com 0% de discriminação 125. Por outro lado, criar um grupo de cluster 144 para cada entidade irá produzir 0% de consolidação 123 e 100% de discriminação 125. Em alguns exemplos, a execução do detector de evento 120 no modo de análise off-line 122 pode determinar quais valores usar para os parâmetros (por exemplo, o limite de similaridade 160, a resolução 142, etc.) a fim de otimizar a consolidação 123 e a discriminação 125.
[00114] Em alguns exemplos, a consolidação 123 e a discriminação 125 são combinadas em uma única métrica, por exemplo, a pontuação de agrupamento 127, que é definida da seguinte forma: −1 𝐶 −1 + 𝐷 −1 2𝐶𝐷 Eq. (5): 𝐶𝑆 = ( ) = 2 𝐶+𝐷
[00115] Em alguns exemplos, uma análise off-line pode aproveitar essas métricas para entender como o limite de similaridade 160 afeta a estrutura de rede. A figura 5B ilustra um gráfico 520 que mostra as pontuações (por exemplo, a pontuação de agrupamento 127, uma discriminação 125, a consolidação 123) para aumentar os valores do limite de similaridade 160 quando o detector de evento 120 utiliza um método de detecção de componente conectado como o algoritmo de agrupamento 140 de acordo com um aspecto. A linha 501 mostra a discriminação 125, a linha 503 mostra a pontuação de agrupamento 127, e a linha 505 mostra a consolidação 123. Na figura 5B, quando o limite de similaridade 160 é igual a zero, a consolidação c=1 e a discriminação d=0 uma vez que todos os nós 101 são conectados (isto é, um gráfico de similaridade completo 146). Com o aumento do limite de similaridade 160, mais bordas 103 são removidas do gráfico de similaridade 146, portanto, a discriminação 125 aumenta de 0 para 1.
[00116] Em alguns exemplos, quando o limite de similaridade 160 é menor que um determinado valor (por exemplo, S < 0,4), o aumento do limite de similaridade 160 se refere à consolidação inferior 123, uma vez que mais nós 101 são desconectados. Mas quando o limite de similaridade 160 é maior que um valor determinado (por exemplo, S > 0,4), mais bordas 103 são removidas, tornando assim muitos nós 101 isolados e não incluídos na saída final. Os nós remanescentes 101 são conectados com bordas pesadas 103, e a consolidação relativamente alta 123 pode ser alcançada como resultado. Dito isso, o tamanho dos grupos de cluster 144 e a fração de eventos detectados 121 tendem a ser menores.
[00117] No entanto, de acordo com alguns exemplos, em vez de confiar nos componentes conectados como o algoritmo de agrupamento 140, o algoritmo de agrupamento 140 pode incluir um algoritmo de Louvain de detecção de comunidade para alcançar o desempenho de agrupamento aumentado para o limite de similaridade 160 (por exemplo, S < 0,4). A figura 5C ilustra um gráfico 530 que mostra a pontuação de agrupamento 127 para aumentar os valores do limite de similaridade 160 com relação ao algoritmo de componente conectado, o algoritmo de Louvain, e a fração de eventos detectados 121 de acordo com um aspecto. A linha 507 mostra o algoritmo de Louvain, a linha 509 mostra a fração de eventos detectados 121, e a linha 511 mostra o algoritmo de componente conectado. Em alguns exemplos, quando o limite de similaridade 160 é menor que um determinado valor (por exemplo, S < 0,2), o algoritmo de Louvain atinge o melhor desempenho, pois divide com sucesso os componentes em diferentes grupos de cluster 144. Quando o limite de similaridade 160 está acima de um valor determinado (por exemplo, S > 0,2), o algoritmo de Louvain alcança os mesmos (ou similares) resultados que o algoritmo de componente conectado, pois os componentes resultantes são muito pequenos para serem divididos.
[00118] A figura 5D mostra um gráfico 540 que mostra as pontuações (por exemplo, a pontuação de agrupamento 127, a discriminação 125, a consolidação 123) para aumentar os valores de resolução 142 quando o detector de evento 120 utiliza o algoritmo de Louvain como o algoritmo de agrupamento 140 de acordo com um aspecto. A linha 513 mostra a consolidação 123, a linha 515 mostra a pontuação de agrupamento 127, e a linha 517 mostra a discriminação 125. Com o limite de similaridade 160 sendo S = 0,1, em alguns exemplos, a resolução 142 sendo igual a que pode resultar na pontuação de agrupamento ideal,
[00119] Em alguns exemplos, as métricas de desempenho incluem uma métrica referida como a fração do evento mesclado 129. Por exemplo, além de verificar a qualidade e cobertura de cluster, as cadeias de cluster 114 são avaliadas. De maneira específica, a fração de cadeias de cluster 114 que mesclam as entidades de tendência 132b de diferentes eventos 112 é verificada. Em alguns exemplos, a fração do evento mesclado 129 pode ser sensível não apenas à qualidade de agrupamento, mas também à qualidade da ligação de cluster ao longo do tempo. A figura 5E ilustra um gráfico 550 que mostra a fração do evento mesclado 129 para diferentes valores do limite de similaridade
160. Na figura 5E, a fração do evento mesclado 129 é comparada para aumentar os valores do limite de similaridade 160. A linha 519 mostra o algoritmo de componente conectado, e a linha 521 mostra o algoritmo de Louvain.
[00120] Em alguns exemplos, as métricas de desempenho incluem uma métrica referida como a fração do evento duplicado 131. Em alguns exemplos, a fração do evento duplicado 131 é definida como a fração de eventos na transmissão de conjunto de dados de avaliação 105 que tem as suas entidades de tendência 132b identificadas em mais de uma cadeia de cluster 114. A figura 5F ilustra um gráfico 560 que mostra a fração do evento duplicado 131 para diferentes valores do limite de similaridade 160 de acordo com um aspecto. A linha 523 mostra o algoritmo de componente conectado, e a linha 525 mostra o algoritmo de Louvain. Em alguns exemplos, a fração do evento duplicado 131 pode ser relativamente alta. Em alguns exemplos, quando o limite de similaridade 160 é 01, este resultado pode ser cerca de 35% de eventos que têm cadeia de cluster duplicada 114. Em alguns exemplos, o valor alto pode ser devido ao fato de que a transmissão de conjunto de dados de avaliação 105 não inclui os sub-eventos. No entanto, como explicado posteriormente no relatório descritivo, um evento relativamente grane 112 pode ter múltiplos sub-eventos e, em alguns exemplos, pode ser mais preciso representa-los em diferentes cadeias de cluster 114.
[00121] Novamente, com referência à figura 1A, o detector de evento 120 pode executar em um modo de análise on-line 124 para gerar a cadeias de cluster 114 em tempo real. Por exemplo, embora a plataforma de mensagens 104 esteja trocando de forma ativa as mensagens entre os usuários, o detector de evento 120 pode receber a transmissão de mensagem 108 e gerar (e atualizar) as cadeias de cluster 114 ao longo do tempo a fim de identificar os eventos 112 à medida que eles ocorrem. Em alguns exemplos, o detector de evento 120 é empregado em Java Virtual Machine (JVM) e conta com Garbage Collection (GC) para o gerenciamento de memória. As figuras 6A a 6C ilustram vários perfis do desempenho do detector de evento 120 no modo de análise on-line 124. A figura 6A ilustra um gráfico 610 que mostra a quantidade de entidades processadas por segundo de acordo com um aspecto. A figura 6B ilustra um gráfico 620 que mostra o perfil de utilização de CPU de acordo com um aspecto. A figura 6C ilustra um gráfico 630 que mostra um perfil de uso de memória de acordo com um aspecto. Os dados de desempenho mostrados nas figuras 6A a 6C estão ao longo de um intervalo de tempo relativamente prolongado e podem demonstrar que o detector de evento 120 é capaz de escalar e processar milhões de entidades por minuto.
[00122] Com relação à figura 6B, o uso da CPU é normalmente baixo (<10%) e consistente em um dia normal de tráfego. Da mesma forma, na figura 6C, o uso de memória é relativamente consistente. A diminuição no uso de memória perto do início do gráfico 630 representa uma coleção principal, que ocorre apenas uma vez a cada 1-2 dias devido à estabilidade de objetos de longa duração, e coleções menores ocorrem constantemente a cada 1-2 minutos. Na figura 6A, com relação a um caso específico no centro, o sistema é capaz de lidar com picos de até 50 mil entidades processadas por segundo (PSEC). Durante esse pico de carga, que representa uma duplicação do PSEC em um curto período de tempo, o aumento correspondente da CPU e o impacto na memória, conforme visto nas figuras abaixo, são relativamente insignificantes. Portanto, o sistema 100 pode apresentar uso de CPU e memória estável, mesmo quando confrontado com cargas anormais. A figura 7 ilustra um gráfico 710 que descreve a redução de carga, de acordo com um aspecto. Na figura 7, a linha 701 representa as mensagens processadas por segundo e a linha 703 representa as mensagens descartadas por segundo. Observa-se que a redução de carga é temporária (por exemplo, ocorre apenas durante um determinado minuto) e o sistema de mensagens 100 retorna à normalidade depois.
[00123] A figura 8 ilustra um gráfico 810 que representa as principais cadeias do cluster 114 para um evento real, de acordo com um aspecto. O evento representado na figura 8 foi o show do Golden Globes Awards realizado no dia 6 de janeiro de 2019, começando às 01:00 UTC. Este evento gerou um grande grau de conversação na plataforma de mensagens 104. A descrição abaixo fornece um exemplo de como o detector de eventos 120 funcionou durante aquele evento e quão precisamente ele refletiu as conversas reais de trabalho. O aspecto temporal do evento é mostrado por como os clusters de entidades surgem, evoluem e desaparecem.
[00124] A Tabela 4 ilustra as cadeias de cluster de topo 114 (e as entidades de topo associadas) e o mapeamento de cadeias de cluster 114 para a figura 8. Por exemplo, as cadeias de cluster incluem cadeia 801 (conversa geral), cadeia 803 (discurso de abertura do apresentador), cadeia 805 ("Green Book"), cadeia 807 (Christian Bale recebe o prêmio de melhor ator em uma comédia ou musical por "Vice"), cadeia 809 (conversa geral), cadeia 811 (Christian Bale agradece o Diabo em seu discurso de aceitação), cadeia 813 (conversa geral), cadeia 815 (Rami Malek recebe o prêmio de melhor ator em drama por "Bohemian Rhapsody"), cadeia 817 (Glenn Close recebe o prêmio de melhor atriz em drama por "The Wife") e a corrente 819 ("Green Book"). Tabela 4 Título Entidades de topo 801: conversa geral 76° Prêmio Anual Golden Globes 2019, #goldenglobes, Lady Gaga, Sandra Oh, Spider-Man: Into the Spider-Verse, Gaga 803: discurso de abertura do Andy Samberg, Black Panther, apresentador Sandra Oh, #blackpanther, Jim Carrey, Michael B. Jordan 805: "Green Book" Green Book, Maheshala Ali, Regina King, #greenbook
807: Christian Bale recebe o prêmio 76° Prêmio Anual Golden Globes de melhor ator em uma comédia ou 2019, #goldenglobes, Christian Bale, musical por "Vice" Sandra Oh, Lady Gaga, Darren Criss, Vice 809: conversa geral 76° Prêmio Anual Golden Globes 2019, #goldenglobes, Lady Gaga, Jeff Bridges, Darren Criss 811: Christian Bale agradece o Christian Bale, 76° Prêmio Anual Diabo em seu discurso de aceitação Golden Globes 2019, Vice, Mitch McConnell, Satan 813: conversa geral 76° Prêmio Anual Golden Globes 2019, #goldenglobes, Sandra Oh, Alfonso Cuaron, Rami Malek, Roma, Olivia Colman 815: Rami Malek recebe o prêmio de 76° Prêmio Anual Golden Globes melhor ator em drama por 2019, #goldenglobes, Rami Malek, "Bohemian Rhapsody" Bohemian Rhapsody, Lady Gaga, Sandra Oh 817: Glenn Close recebe o prêmio Glenn Close, Taylor Swift, Lady de melhor atriz em drama por "The Gaga, best actress, Glenn, Bradley Wife" Cooper 819: "Green Book" Green Book, Mahershali Ali, Regina King, #greenbook
[00125] A figura 8 mostra uma vista geral do evento que inclui as dez maiores cadeias de cluster (em termos de contagem de mensagem) que qualquer momento entre os dias 6 e 7 de janeiro contém um padrão de correspondência de entidade "*golden*globes*", em que "*" representas qualquer sequência de caracteres, possivelmente vazia. Na figura 8, a estrutura de evento é estável fora do horário principal da cerimônia, isto é, antes de 01:00 UTC e depois de 04:30 UTC. Antes da cerimônia, todas as entidades relacionadas são agrupadas em uma única grande cadeia, uma vez que nenhum tema específico surgiu ainda. Após a cerimônia, os usuários continuam a falar sobre os tópicos que foram populares durante a cerimônia (por exemplo, "Green Book", Glenn Close e Rami Malek). No entanto, o período mais interessante é durante a própria cerimônia: o sistema 100 é capaz de capturar tópicos de rápida evolução e criar diferentes cadeias para eles.
[00126] "Green Book" foi o filme mais aclamado: foi premiado como melhor ator coadjuvante, melhor roteiro e melhor musical ou comédia. A figura 9 mostra um gráfico 910 que mostra a evolução do cluster do "Green Book" e os tempos de entrega dos prêmios correspondentes de acordo com um aspecto. Na figura 9, a cadeia do "Green Book" (também representada como cadeia 805 na figura 8) evolui ao longo do tempo. A princípio, a rede do "Green Book" inclui as entidades representativas do filme e sua produtora executiva (Olivia Spencer). Pouco depois, Mahershala Ali recebeu seu prêmio de melhor ator e a entidade adequada foi adicionada ao cluster. Da mesma forma, a entidade "melhor roteiro" é adicionada depois disso. Quando o prêmio de melhor musical ou comédia é apresentado, o cluster representa a conversa totalmente desenvolvida: hashtags relacionadas são usadas e os membros da equipe de filmagem são mencionados. Às 05:09 UTC, uma nova cadeia (representada como cadeia 819 na figura 8) surgiu da cadeia original do "Green Book" (cadeia 805 na figura 8). Posteriormente, às 05:12 UTC, a nova cadeia absorveu a antiga, mantendo o novo identificador de cluster. Como esses gráficos podem ser gerados em tempo real, eles podem ser usados para rastrear os eventos do mundo real à medida que acontecem.
[00127] A figura 10 ilustra um fluxograma 1000 que descreve as operações de exemplo de detecção de eventos em transmissões de dados sociais de acordo com um aspecto. Embora o fluxograma 1000 seja descrito com referência ao sistema de mensagens 100 das figuras 1A a 1E, as operações podem ser executadas por qualquer uma das modalidades aqui discutidas. Embora o fluxograma 1000 da figura 10 ilustre as operações em ordem sequencial, será observado que este é apenas um exemplo e que as operações adicionais ou alternativas podem ser incluídas. Além disso, as operações da figura 10 e as operações relacionadas podem ser executadas em uma ordem diferente daquela mostrada, ou de forma paralela ou sobreposta.
[00128] A operação 1002 inclui receber uma transmissão de mensagens trocadas na plataforma de mensagens 104. A transmissão de mensagens pode fazer parte da transmissão de mensagem 108. A operação 1004 inclui detectar um primeiro grupo de cluster 144-1 de entidades de tendência 132b por um primeiro período de tempo 196-1. O primeiro grupo de cluster 144-1 inclui duas ou mais entidades de tendência 132b que são determinadas como similares umas às outras. A operação 1006 inclui detectar um segundo grupo de cluster 144-2 de entidades de tendência 132b por um segundo período de tempo 196-2. O segundo grupo de cluster 144-2 inclui duas ou mais entidades de tendência 132b que são determinadas como similares umas às outras. A operação 1008 inclui gerar uma cadeia de cluster 114 ao ligar o segundo grupo de cluster 144-2 ao primeiro grupo de cluster 144-1, em que a cadeia de cluster 114 representa o evento detectado 112 pelos primeiro e segundo períodos de tempo 196-1, 196-2. Em alguns exemplos, os grupos de cluster 144 são ligados com base em um número de entidades de tendência sendo compartilhado entre o primeiro grupo de cluster 144-1 e o segundo grupo de cluster 144-2. A operação 1010 inclui armazenar o evento 112 como a cadeia de cluster 114 em um dispositivo de memória 110 na plataforma de mensagens
104.
[00129] Embora os conceitos da invenção divulgados aqui incluam aqueles definidos nas reivindicações anexas, deve ser entendido que os conceitos da invenção também podem ser definidos de acordo com as modalidades a seguir:
[00130] A modalidade 1 é um método para a detecção de evento em transmissões de dados sociais, o método que compreende receber, por uma plataforma de mensagens, uma transmissão de mensagens trocadas em uma plataforma de mensagens, e detectar, pela plataforma de mensagens, um evento a partir da transmissão de mensagens.
[00131] A modalidade 2 é o método da modalidade 1, em que a etapa de detecção inclui detectar um primeiro grupo de cluster de entidades de tendência por um primeiro período de tempo, em que o primeiro grupo de cluster inclui pelo menos duas entidades de tendência identificadas como similares umas às outras.
[00132] A modalidade 3 é o método de acordo com qualquer uma das modalidades 1 a 2, em que a etapa de detecção inclui detectar um segundo grupo de cluster de entidades de tendência por um segundo período de tempo, em que o segundo grupo de cluster inclui pelo menos duas entidades de tendência identificadas como similares umas às outras.
[00133] A modalidade 4 é o método de acordo com qualquer uma das modalidades 1 a 3, em que a etapa de detecção inclui gerar uma cadeia de cluster ao ligar o segundo grupo de cluster com o primeiro grupo de cluster, em que a cadeia de cluster representa o evento detectado pelos primeiro e segundo períodos de tempo.
[00134] A modalidade 5 é o método de acordo com qualquer uma das modalidades 1 a 4, que ainda compreende armazenar, pela plataforma de mensagens, o evento como a cadeia de cluster in a dispositivo de memória na plataforma de mensagens.
[00135] A modalidade 6 é o método de acordo com qualquer uma das modalidades 1 a 5, que ainda compreende transmitir, pela plataforma de mensagens, os dados digitais a um aplicativo cliente para resultar nas informações sobre o evento em uma interface de usuário do aplicativo cliente, em que as informações sobre o evento incluem as informações da cadeia de cluster.
[00136] A modalidade 7 é o método de acordo com qualquer uma das modalidades 1 a 6, em que as informações sobre o evento identificam uma primeira entidade de tendência a partir do primeiro grupo de cluster e uma segunda entidade de tendência a partir do segundo grupo de cluster, a segunda entidade de tendência sendo diferente da primeira entidade de tendência.
[00137] A modalidade 8 é o método de acordo com qualquer uma das modalidades 1 a 7, que ainda compreende classificar o primeiro grupo de cluster e o segundo grupo de cluster.
[00138] A modalidade 9 é o método de acordo com qualquer uma das modalidades 1 a 8, em que a classificação do primeiro grupo de cluster e do segundo grupo de cluster tem como base a popularidade de entidades de tendência associadas a cada respectivo grupo de cluster, em que a cadeia de cluster inclui uma lista de grupos de cluster classificados.
[00139] A modalidade 10 é o método de acordo com qualquer uma das modalidades 1 a 9, que ainda compreende identificar uma pluralidade de entidades de tendência pelo primeiro período de tempo.
[00140] A modalidade 11 é o método de acordo com qualquer uma das modalidades 1 a 10, em que o primeiro grupo de cluster é detectado a partir da pluralidade de entidades de tendência pelo primeiro período de tempo.
[00141] A modalidade 12 é o método de acordo com qualquer uma das modalidades 1 a 11, que ainda compreende identificar uma pluralidade de entidades de tendência pelo segundo período de tempo.
[00142] A modalidade 13 é o método de acordo com qualquer uma das modalidades 1 a 12, em que o segundo grupo de cluster é detectado a partir da pluralidade de entidades de tendência pelo segundo período de tempo.
[00143] A modalidade 14 é o método de acordo com qualquer uma das modalidades 1 a 13, que ainda compreende atribuir um identificador de cluster ao primeiro grupo de cluster e atribuir o identificador de cluster do primeiro grupo de cluster ao segundo grupo de cluster em resposta ao segundo grupo de cluster sendo ligado ao primeiro grupo de cluster.
[00144] A modalidade 15 é o método de qualquer uma das modalidades 1 a 14, em que a detecção do primeiro grupo de cluster inclui gerar um gráfico de similaridade com base nos valores de similaridade associados a uma pluralidade de entidades de tendência do primeiro período de tempo.
[00145] A modalidade 16 é o método de acordo com qualquer uma das modalidades 1 a 15, em que o gráfico de similaridade inclui os nós que representam a pluralidade de entidades de tendência e bordas sendo anotadas com os valores de similaridade.
[00146] A modalidade 17 é o método de acordo com qualquer uma das modalidades 1 a 16, que ainda compreende particionar o gráfico de similaridade de acordo com um algoritmo de agrupamento para detectar o primeiro grupo de cluster.
[00147] A modalidade 18 é o método de qualquer uma das modalidades 1 a 17, que ainda compreende calcular os valores de similaridade com base na contagem de frequência e co-ocorrências entre a pluralidade de entidades de tendência por uma janela de tempo.
[00148] A modalidade 19 é o método de qualquer uma das modalidades 1 a 18, que ainda compreende filtrar o gráfico de similaridade com base em um limite de similaridade de modo que as bordas que têm os valores de similaridade menores que o limite de similaridade são removidas do gráfico de similaridade.
[00149] A modalidade 20 é o método de qualquer uma das modalidades 1 a 19, em que o gráfico de similaridade filtrado é particionado de acordo com o algoritmo de agrupamento para detectar o primeiro grupo de cluster.
[00150] A modalidade 21 é o método de qualquer uma das modalidades 1 a 20, em que o segundo grupo de cluster é ligado ao primeiro grupo de cluster com base em uma correspondência bipartida máxima ponderada.
[00151] A modalidade 22 é um sistema que compreende um ou mais computadores e um ou mais dispositivos de armazenamento que armazenam as instruções que são operáveis, quando executadas por ou mais computadores, para fazer com que um ou mais computadores realizem o método de qualquer uma das modalidades 1 a 21.
[00152] A modalidade 23 é um meio de armazenamento de computador codificado com um programa de computador, o programa que compreende as instruções que são operáveis, quando executadas pelo aparelho de processamento de dados, para fazer com que o aparelho de processamento de dados realize o método de qualquer uma das modalidades 1 a 21.
[00153] A modalidade 24 é um sistema de mensagens para detectar o evento em tempo real, o sistema de mensagens que compreende uma plataforma de mensagens configurada para trocar, por uma rede, as mensagens aos dispositivos de computação, e um aplicativo cliente configurado para se comunicar com a plataforma de mensagens para enviar e receber as mensagens, em que a plataforma de mensagens é configurada para detectar um primeiro grupo de cluster de entidades de tendência por um primeiro período de tempo, em que o primeiro grupo de cluster inclui pelo menos duas entidades de tendência identificadas como similares umas às outras.
[00154] A modalidade 25 é o sistema de mensagens da modalidade 24, em que a plataforma de mensagens é configurada para detectar um segundo grupo de cluster de entidades de tendência por um segundo período de tempo, em que o segundo grupo de cluster inclui pelo menos duas entidades de tendência identificadas como similares umas às outras.
[00155] A modalidade 26 é o sistema de mensagens de qualquer uma das modalidades 24 a 25, em que a plataforma de mensagens é configurada para a cadeia de cluster ao ligar o segundo grupo de cluster ao primeiro grupo de cluster com base em um número de entidades de tendência sendo compartilhado entre o primeiro grupo de cluster e o segundo grupo de cluster.
[00156] A modalidade 27 é o sistema de mensagens de qualquer uma das modalidades 24 a 26, em que a cadeia de cluster representa o evento detectado pelos primeiro e segundo períodos de tempo.
[00157] A modalidade 28 é o sistema de mensagens de qualquer uma das modalidades 24 a 27, em que a plataforma de mensagens é configurada para armazenar um evento como a cadeia de cluster em um dispositivo de memória na plataforma de mensagens.
[00158] A modalidade 29 é o sistema de mensagens de qualquer uma das modalidades 24 a 28, em que a cadeia de cluster é recuperável para a futura ligação de cluster.
[00159] A modalidade 30 é o sistema de mensagens de qualquer uma das modalidades 24 a 29, em que a plataforma de mensagens é configurada para transmitir os dados digitais ao aplicativo cliente para resultar nas informações sobre o evento em uma interface de usuário do aplicativo cliente, as informações sobre o evento que incluem as informações da cadeia de cluster, as informações da cadeia de cluster sendo renderizadas em uma seção de tendências, uma linha do tempo, ou parte dos resultados de busca retornados ao aplicativo cliente.
[00160] A modalidade 31 é o sistema de mensagens de qualquer uma das modalidades 24 a 30, em que a plataforma de mensagens é configurada para classificar o primeiro grupo de cluster e o segundo grupo de cluster com base em uma métrica de popularidade agregada associada a cada grupo de cluster.
[00161] A modalidade 32 é o sistema de mensagens de qualquer uma das modalidades 24 a 31, em que a plataforma de mensagens é configurada para obter uma lista de entidades de tendência pelo primeiro período de tempo a partir de um serviço de detector de tendência, extrair as entidades a partir de uma transmissão de mensagens trocadas na plataforma de mensagens.
[00162] A modalidade 33 é o sistema de mensagens de qualquer uma das modalidades 24 a 32, em que a plataforma de mensagens é configurada para filtrar as entidades extraídas com o uso da lista de entidades de tendência para obter uma pluralidade de entidades de tendência pelo primeiro período de tempo, em que o primeiro grupo de cluster é detectado com o uso da pluralidade de entidades de tendência pelo primeiro período de tempo.
[00163] A modalidade 34 é o sistema de mensagens de qualquer uma das modalidades 24 a 33, em que a plataforma de mensagens é configurada para atribuir um mesmo identificador de cluster aos grupos de cluster de uma única cadeia de cluster.
[00164] A modalidade 35 é o sistema de mensagens de qualquer uma das modalidades 24 a 34, em que a plataforma de mensagens é configurada para calcular os valores de similaridade com base na contagem de frequência e co-ocorrências entre entidades de tendência por uma janela de tempo.
[00165] A modalidade 36 é o sistema de mensagens de qualquer uma das modalidades 24 a 35, em que a plataforma de mensagens é configurada para gerar um gráfico de similaridade com base nos valores de similaridade.
[00166] A modalidade 37 é o sistema de mensagens de qualquer uma das modalidades 24 a 36, em que o gráfico de similaridade inclui os nós que representam as entidades de tendência e bordas sendo anotadas com os valores de similaridade.
[00167] A modalidade 38 é um método que inclui as operações do sistema de mensagens de qualquer uma das modalidades 24 a 37.
[00168] A modalidade 39 é um meio de armazenamento de computador codificado com um programa de computador, o programa que compreende as instruções que são operáveis, quando executadas pelo aparelho de processamento de dados, para fazer com que o aparelho de processamento de dados para realizar as operações do sistema de mensagens de qualquer uma das modalidades 24 a 37.
[00169] A modalidade 40 é um meio não transitório legível por computador que armazena as instruções executáveis que quando executadas por pelo menos um processador são configuradas para fazer com que o pelo menos um processador para receber uma transmissão de mensagens trocadas em uma plataforma de mensagens e detectar um evento a partir da transmissão de mensagens.
[00170] A modalidade 41 é o meio não transitório legível por computador da modalidade 40, que ainda compreende identificar uma pluralidade de entidades de tendência a partir da transmissão de mensagens por um primeiro período de tempo.
[00171] A modalidade 42 é o meio não transitório legível por computador de qualquer uma das modalidades 40 a 41, que ainda compreende detectar um primeiro grupo de cluster a partir da pluralidade de entidades de tendência pelo primeiro período de tempo.
[00172] A modalidade 43 é o meio não transitório legível por computador de qualquer uma das modalidades 40 a 42, que ainda compreende identificar uma pluralidade de entidades de tendência a partir da transmissão de mensagens por um segundo período de tempo.
[00173] A modalidade 44 é o meio não transitório legível por computador de qualquer uma das modalidades 40 a 43, que ainda compreende detectar um segundo grupo de cluster a partir da pluralidade de entidades de tendência pelo segundo período de tempo.
[00174] A modalidade 45 é o meio não transitório legível por computador de qualquer uma das modalidades 40 a 44, que ainda compreende gerar a cadeia de cluster ao ligar o segundo grupo de cluster ao primeiro grupo de cluster.
[00175] A modalidade 46 é o meio não transitório legível por computador de qualquer uma das modalidades 40 a 45, em que a cadeia de cluster representa o evento detectado pelos primeiro e segundo períodos de tempo.
[00176] A modalidade 47 é o meio não transitório legível por computador de qualquer uma das modalidades 40 a 46, que ainda compreende transmitir os dados digitais a um aplicativo cliente para resultar nas informações sobre o evento em uma interface de usuário do aplicativo cliente.
[00177] A modalidade 48 é o meio não transitório legível por computador de qualquer uma das modalidades 40 a 47, em que as informações sobre o evento incluem as informações da cadeia de cluster, e as informações da cadeia de cluster identificam uma primeira entidade de tendência a partir do primeiro grupo de cluster e uma segunda entidade de tendência a partir do segundo grupo de cluster.
[00178] A modalidade 49 é o meio não transitório legível por computador de qualquer uma das modalidades 40 a 48, que ainda compreende classificar o primeiro grupo de cluster e o segundo grupo de cluster com base na métrica de popularidade associada a cada respectivo grupo de cluster.
[00179] A modalidade 50 é o meio não transitório legível por computador de qualquer uma das modalidades 40 a 49, que ainda compreende extrair as entidades a partir da transmissão de mensagens, as entidades que incluem pelo menos uma das entidades ou hashtags citadas.
[00180] A modalidade 51 é o meio não transitório legível por computador de qualquer uma das modalidades 40 a 50, que ainda compreende obter uma lista de entidades de tendência derivada a partir de um serviço de detector de tendência através de uma interface de comunicação de servidor.
[00181] A modalidade 52 é o meio não transitório legível por computador de qualquer uma das modalidades 40 a 51, que ainda compreende identificar a pluralidade de entidades de tendência pelo primeiro período de tempo a partir das entidades extraídas com base na lista de entidades de tendência de modo que as entidades de não tendência são filtradas fora das entidades extraídas.
[00182] A modalidade 53 é o meio não transitório legível por computador de qualquer uma das modalidades 40 a 52, que ainda compreende atribuir um identificador de cluster ao primeiro grupo de cluster e atribuir o identificador de cluster do primeiro grupo de cluster ao segundo grupo de cluster em resposta ao segundo grupo de cluster sendo ligado ao primeiro grupo de cluster.
[00183] A modalidade 54 é o meio não transitório legível por computador de qualquer uma das modalidades 40 a 53, que ainda compreende calcular os valores de similaridade com base na contagem de frequência e co-ocorrências entre a pluralidade de entidades de tendência por uma janela de tempo.
[00184] A modalidade 55 é o meio não transitório legível por computador de qualquer uma das modalidades 40 a 54, em que cada valor de similaridade indica um nível de similaridade entre duas entidades de tendência.
[00185] A modalidade 56 é o meio não transitório legível por computador de qualquer uma das modalidades 40 a 55, que ainda compreende gerar um gráfico de similaridade com base nos valores de similaridade.
[00186] A modalidade 57 é o meio não transitório legível por computador de qualquer uma das modalidades 40 a 56, em que o gráfico de similaridade inclui os nós que representam a pluralidade de entidades de tendência e bordas sendo anotadas com os valores de similaridade.
[00187] A modalidade 58 é o meio não transitório legível por computador de qualquer uma das modalidades 40 a 57, que ainda compreende filtrar o gráfico de similaridade com base em um valor de limite de similaridade de modo que as bordas que têm os valores de similaridade menores que o limite de similaridade são removidas do gráfico de similaridade.
[00188] A modalidade 59 é o meio não transitório legível por computador de qualquer uma das modalidades 40 a 58, que ainda compreende particionar o gráfico de similaridade filtrado de acordo com um algoritmo de agrupamento para detectar o primeiro grupo de cluster.
[00189] A modalidade 60 é o meio não transitório legível por computador de qualquer uma das modalidades 40 a 59, em que o algoritmo de agrupamento inclui um algoritmo de Louvain.
[00190] A modalidade 61 é o meio não transitório legível por computador de qualquer uma das modalidades 40 a 60, em que a pluralidade de entidades de tendência pelo primeiro período de tempo e o segundo período de tempo é identificada a partir da transmissão de mensagens por um detector de disparo, em que os primeiro e segundo grupos de cluster são detectados e a cadeia de cluster é gerada por um detector de cadeia de cluster, que ainda compreende ajustar os recursos de computador do detector de disparo.
[00191] A modalidade 62 é o meio não transitório legível por computador de qualquer uma das modalidades 40 a 61, que ainda compreende ajustar os recursos de computador da cadeia de cluster detector independente do ajuste dos recursos de computador do detector de disparo.
[00192] A modalidade 63 é o meio não transitório legível por computador de qualquer uma das modalidades 40 a 62, em que uma ou mais operações do detector de disparo são realizadas em paralelo com uma ou mais operações da cadeia de cluster detector.
[00193] A modalidade 64 é um sistema que compreende um ou mais computadores e um ou mais dispositivos de armazenamento que armazenam as instruções que são operáveis, quando executadas por ou mais computadores, para fazer com que um ou mais computadores para realizar as operações do meio não transitório legível por computador das modalidades 40 a 63.
[00194] A modalidade 65 é um método que tem as etapas das operações do meio não transitório legível por computador das modalidades 40 a 63.
[00195] A modalidade 66 é um sistema de mensagens para detectar eventos em tempo real em uma transmissão de mídia social, o sistema de mensagens que compreende a plataforma de mensagens configurada para trocar, por uma rede, as mensagens aos dispositivos de computação, a plataforma de mensagens que inclui um detector de evento configurado para executar em um modo off-line e um modo online.
[00196] A modalidade 67 é o sistema de mensagens da modalidade 66, em que o detector de evento, no modo off-line, é configurado para executar um algoritmo de detecção de evento em uma transmissão de conjunto de dados de avaliação para gerar uma ou mais da primeira cadeias de cluster para valores variados de um parâmetro de controle, calcular uma métrica de desempenho com relação à execução do algoritmo de detecção de evento para os valores variados do parâmetro de controle, em que um valor do parâmetro de controle é selecionado com base na métrica de desempenho.
[00197] A modalidade 68 é o sistema de mensagens de qualquer uma das modalidades 66 a 67, em que o detector de evento, no modo online, é configurado para receber uma transmissão de mensagem para as mensagens trocadas na plataforma de mensagens em tempo real, e executar o algoritmo de detecção de evento na transmissão de mensagem de acordo com o valor selecionado do parâmetro de controle para gerar uma ou mais da segunda cadeias de cluster.
[00198] A modalidade 69 é o sistema de mensagens de qualquer uma das modalidades 66 a 68, em que a métrica de desempenho inclui pelo menos uma discriminação ou consolidação, o parâmetro de controle que inclui um limite de similaridade.
[00199] A modalidade 70 é o sistema de mensagens de qualquer uma das modalidades 66 a 69, em que a métrica de desempenho inclui pelo menos um de discriminação ou consolidação, o parâmetro de controle que inclui uma resolução de um algoritmo de agrupamento.
[00200] A modalidade 71 é um método que inclui as operações do sistema de mensagens de qualquer uma das modalidades 66 a 70.
[00201] A modalidade 72 é um meio de armazenamento de computador codificado com um programa de computador, o programa que compreende as instruções que são operáveis, quando executadas pelo aparelho de processamento de dados, para fazer com que o aparelho de processamento de dados para realizar as operações do sistema de mensagens de qualquer uma das modalidades 66 a 70.
[00202] Na descrição acima, vários detalhes são apresentados. Será evidente, no entanto, aos versados na técnica que têm o benefício desta divulgação, que as implementações da divulgação podem ser praticadas sem esses detalhes específicos. Em alguns casos, estruturas e dispositivos bem conhecidos são mostrados na forma de diagrama de blocos, em vez de em detalhes, a fim de evitar obscurecer a descrição.
[00203] Algumas partes da descrição detalhada são apresentadas em termos de algoritmos e representações simbólicas de operações em bits de dados dentro de uma memória de computador. Essas descrições e representações algorítmicas são os meios usados pelos versados na técnica de processamento de dados para transmitir de forma mais eficaz a substância de seu trabalho a outros versados na técnica. Um algoritmo é aqui e, em geral, desenvolvido para ser uma sequência autoconsistente de etapas que conduzem a um resultado desejado. As etapas são aquelas que requerem manipulações físicas de quantidades físicas. Normalmente, embora não necessariamente, essas quantidades assumem a forma de sinais elétricos ou magnéticos capazes de ser armazenados, transferidos, combinados, comparados e manipulados de outra forma. Tem se mostrado conveniente, às vezes, principalmente por razões de uso comum, referir-se a esses sinais como bits, valores, elementos, símbolos, caracteres, termos, números ou semelhantes.
[00204] Deve-se ter em mente, entretanto, que todos esses termos e outros semelhantes devem ser associados às quantidades físicas apropriadas e são meramente rótulos convenientes aplicados a essas quantidades. A menos que especificamente declarado de outra forma, como fica evidente a partir da discussão acima, observa-se que ao longo da descrição, as discussões que utilizam os termos como "identificar", "determinar", "calcular", "detectar", "transmitir", "receber", "gerar", "armazenar", "classificar", "extrair", "obter", "atribuir", "particionar", "calcular", "filtrar", "alterar" ou similares, referem-se às ações e aos processos de um sistema de computador, ou dispositivo de computação eletrônico semelhante, que manipula e transforma os dados representados como quantidades físicas (por exemplo, eletrônicos) dentro dos registros e memórias do sistema de computador em outros dados representados de forma semelhante como quantidades físicas dentro das memórias ou registros do sistema de computador ou outro armazenamento de informações, transmissão ou dispositivos de exibição.
[00205] Além disso, os fluxos lógicos representados nas figuras não requerem a ordem específica mostrada, ou ordem sequencial, para atingir os resultados desejáveis. Além disso, outras etapas podem ser fornecidas, ou as etapas podem ser eliminadas, dos fluxos descritos e outros componentes podem ser adicionados ou removidos dos sistemas descritos. Consequentemente, outras modalidades estão dentro do escopo das seguintes reivindicações.
[00206] As implementações da divulgação também se referem a um aparelho para realizar as operações neste documento. Este aparelho pode ser especialmente construído para os fins requeridos, ou pode compreender um computador de uso geral seletivamente ativado ou reconfigurado por um programa de computador armazenado no computador. Tal programa de computador pode ser armazenado em um meio de armazenamento legível por computador não transitório, tal como, mas não limitado a, qualquer tipo de disco, incluindo disquetes, discos ópticos, CD-ROMs e discos ópticos magnéticos, memórias somente leitura (ROMs), memórias de acesso aleatório (RAMs), EPROMs, EEPROMs, cartões magnéticos ou ópticos, memória flash ou qualquer tipo de meio adequado para armazenar as instruções eletrônicas.
[00207] As palavras "exemplo" ou "exemplar" são usadas neste documento para significar servir como um exemplo, instância ou ilustração. Qualquer aspecto ou projeto descrito neste documento como "exemplo" ou "exemplar" não deve ser necessariamente interpretado como preferido ou vantajoso em relação a outros aspectos ou projetos. Em vez disso, o uso das palavras "exemplo" ou "exemplar" tem a intenção de apresentar conceitos de uma forma concreta. Conforme usado neste pedido, o termo "ou" pretende significar um "ou" inclusivo em vez de um "ou" exclusivo. Ou seja, a menos que especificado de outra forma, ou claro a partir do contexto, "X inclui A ou B" pretende significar qualquer uma das permutações inclusivas naturais. Ou seja, se X inclui A; X inclui B; ou X inclui A e B, então "X inclui A ou B" é satisfeito em qualquer um dos casos anteriores. Além disso, os artigos "um" e "uma", conforme usados neste pedido e as reivindicações anexas, devem ser interpretados, em geral, como significando "um ou mais", a menos que especificado de outra forma ou ficar claro a partir do contexto para ser direcionado a uma forma singular. Além disso, o uso do termo "uma implementação" ou "uma modalidade" ou "uma implementação" ou "uma implementação" ao longo do relatório não se destina a significar a mesma modalidade ou implementação, a menos que seja descrito como tal. Além disso, os termos "primeiro", "segundo", "terceiro", "quarto", etc., conforme usados neste documento, pretendem distinguir entre diferentes elementos e podem não necessariamente ter um significado ordinal de acordo com sua designação numérica.
[00208] Os algoritmos e exibições aqui apresentados não são inerentemente relacionados a qualquer computador ou outro aparelho específico. Vários sistemas de uso geral podem ser usados com programas de acordo com os ensinamentos deste documento, ou pode ser conveniente construir um aparelho mais especializado para executar as etapas do método necessárias. A estrutura necessária para uma variedade desses sistemas aparecerá na descrição abaixo. Além disso, a presente divulgação não é descrita com referência a qualquer linguagem de programação particular. Será observado que uma variedade de linguagens de programação pode ser usada para implementar os ensinamentos da divulgação, conforme descrito neste documento.
[00209] A descrição acima apresenta vários detalhes específicos, como exemplos de sistemas, componentes, métodos específicos e assim por diante, a fim de fornecer um bom entendimento de várias implementações da presente divulgação. Ficará evidente para um versado na técnica, no entanto, que pelo menos algumas implementações da presente divulgação podem ser praticadas sem esses detalhes específicos. Em outros casos, os componentes ou métodos bem conhecidos não são descritos em detalhes ou são apresentados em formato de diagrama de blocos simples, a fim de evitar obscurecer desnecessariamente a presente divulgação. Assim, os detalhes específicos estabelecidos acima são meramente exemplos. As implementações específicas podem variar a partir desses detalhes de exemplo e ainda ser observadas como estando dentro do escopo da presente divulgação.
[00210] Deve ser entendido que a descrição acima destina-se a ser ilustrativa e não restritiva. Muitas outras implementações ficarão evidentes aos versados na técnica após a leitura e a compreensão da descrição acima. O escopo da divulgação deve, portanto, ser determinado com referência às reivindicações anexas, juntamente com o escopo completo de equivalentes aos quais tais reivindicações têm direito.

Claims (25)

REIVINDICAÇÕES
1. Método para a detecção de evento em transmissões (fluxos) de dados sociais, caracterizado pelo fato de que compreende: receber, por uma plataforma de mensagens, uma transmissão de mensagens trocadas em uma plataforma de mensagens; detectar, pela plataforma de mensagens, um evento a partir da transmissão de mensagens, que inclui: detectar um primeiro grupo de cluster de entidades de tendência por um primeiro período de tempo, o primeiro grupo de cluster que inclui pelo menos duas entidades de tendência identificadas como similares umas às outras; detectar um segundo grupo de cluster de entidades de tendência por um segundo período de tempo, o segundo grupo de cluster que inclui pelo menos duas entidades de tendência identificadas como similares umas às outras; e gerar uma cadeia de cluster ao ligar o segundo grupo de cluster com o primeiro grupo de cluster, a cadeia de cluster que representa o evento detectado pelos primeiro e segundo períodos de tempo; e armazenar, pela plataforma de mensagens, o evento como a cadeia de cluster em um dispositivo de memória na plataforma de mensagens.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda compreende: transmitir, pela plataforma de mensagens, os dados digitais a um aplicativo cliente para resultar nas informações sobre o evento em uma interface de usuário do aplicativo cliente, as informações sobre o evento que incluem as informações da cadeia de cluster.
3. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que a informação sobre o evento identifica uma primeira entidade de tendência a partir do primeiro grupo de cluster e uma segunda entidade de tendência a partir do segundo grupo de cluster, a segunda entidade de tendência sendo diferente da primeira entidade de tendência.
4. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda compreende: classificar o primeiro grupo de cluster e o segundo grupo de cluster com base na popularidade de entidades de tendência associadas a cada respectivo grupo de cluster, em que a cadeia de cluster inclui uma lista de grupos de cluster classificados.
5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda compreende: identificar uma pluralidade de entidades de tendência pelo primeiro período de tempo, em que o primeiro grupo de cluster é detectado a partir da pluralidade de entidades de tendência pelo primeiro período de tempo; e identificar uma pluralidade de entidades de tendência pelo segundo período de tempo, em que o segundo grupo de cluster é detectado a partir da pluralidade de entidades de tendência pelo segundo período de tempo.
6. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda compreende: atribuir um identificador de cluster ao primeiro grupo de cluster; e atribuir o identificador de cluster do primeiro grupo de cluster ao segundo grupo de cluster em resposta ao segundo grupo de cluster sendo ligado ao primeiro grupo de cluster.
7. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a detecção do primeiro grupo de cluster inclui:
gerar um gráfico de similaridade com base nos valores de similaridade associados a uma pluralidade de entidades de tendência do primeiro período de tempo, o gráfico de similaridade que inclui os nós que representam a pluralidade de entidades de tendência e bordas sendo anotadas com o valores de similaridade; e particionar o gráfico de similaridade de acordo com um algoritmo de agrupamento para detectar o primeiro grupo de cluster.
8. Método, de acordo com a reivindicação 7, caracterizado pelo fato de que ainda compreende: calcular os valores de similaridade com base na contagem de frequência e co-ocorrências entre a pluralidade de entidades de tendência por uma janela de tempo; e filtrar o gráfico de similaridade com base em um limite de similaridade de modo que as bordas que têm os valores de similaridade menores que o limite de similaridade são removidas do gráfico de similaridade, em que o gráfico de similaridade filtrado é particionado de acordo com o algoritmo de agrupamento para detectar o primeiro grupo de cluster.
9. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o segundo grupo de cluster é ligado ao primeiro grupo de cluster com base na correspondência bipartida máxima ponderada.
10. Sistema de mensagens para detectar o evento em tempo real, caracterizado pelo fato de que compreende: uma plataforma de mensagens configurada para trocar, por uma rede, as mensagens aos dispositivos de computação; e um aplicativo cliente configurado para se comunicar com a plataforma de mensagens para enviar e receber as mensagens; em que a plataforma de mensagens é configurada para: detectar um primeiro grupo de cluster de entidades de tendência por um primeiro período de tempo, o primeiro grupo de cluster que inclui pelo menos duas entidades de tendência identificadas como similares umas às outras; detectar um segundo grupo de cluster de entidades de tendência por um segundo período de tempo, o segundo grupo de cluster que inclui pelo menos duas entidades de tendência identificadas como similares umas às outras; gerar a cadeia de cluster ao ligar o segundo grupo de cluster com o primeiro grupo de cluster com base em um número de entidades de tendência sendo compartilhado entre o primeiro grupo de cluster e o segundo grupo de cluster, a cadeia de cluster que representa o evento detectado pelos primeiro e segundo períodos de tempo; e armazenar um evento como a cadeia de cluster em um dispositivo de memória na plataforma de mensagens, a cadeia de cluster sendo recuperável para a futura ligação de cluster.
11. Sistema de mensagens, de acordo com a reivindicação 10, caracterizado pelo fato de que a plataforma de mensagens é configurada para transmitir os dados digitais ao aplicativo cliente para resultar nas informações sobre o evento em uma interface de usuário do aplicativo cliente, as informações sobre o evento que incluem as informações da cadeia de cluster, as informações da cadeia de cluster sendo renderizadas em uma seção de tendências, a linha do tempo, ou parte dos resultados de busca retornados ao aplicativo cliente.
12. Sistema de mensagens, de acordo com a reivindicação 10, caracterizado pelo fato de que a plataforma de mensagens é configurada para classificar o primeiro grupo de cluster e o segundo grupo de cluster com base em uma métrica de popularidade agregada associados a cada grupo de cluster.
13. Sistema de mensagens, de acordo com a reivindicação 10, caracterizado pelo fato de que a plataforma de mensagens é configurada para:
obter uma lista de entidades de tendência pelo primeiro período de tempo a partir de um serviço de detector de tendência; extrair as entidades a partir de uma transmissão de mensagens trocadas na plataforma de mensagens; e filtrar as entidades extraídas com o uso da lista de entidades de tendência para obter uma pluralidade de entidades de tendência pelo primeiro período de tempo, em que o primeiro grupo de cluster é detectado com o uso da pluralidade de entidades de tendência pelo primeiro período de tempo.
14. Sistema de mensagens, de acordo com a reivindicação 10, caracterizado pelo fato de que a plataforma de mensagens é configurada para atribuir um mesmo identificador de cluster aos grupos de cluster de uma única cadeia de cluster.
15. Sistema de mensagens, de acordo com a reivindicação 10, caracterizado pelo fato de que a plataforma de mensagens é configurada para calcular os valores de similaridade com base na contagem de frequência e co-ocorrências entre entidades de tendência por uma janela de tempo e gerar a gráfico de similaridade com base nos valores de similaridade, o gráfico de similaridade que inclui os nós que representam as entidades de tendência e bordas sendo anotadas com o valores de similaridade.
16. Meio legível por computador não transitório, caracterizado pelo fato de que armazena as instruções executáveis que, quando executadas por pelo menos um processador, acarretam o pelo menos um processador: receber uma transmissão de mensagens trocadas em uma plataforma de mensagens; detectar um evento a partir da transmissão de mensagens, que inclui:
identificar uma pluralidade de entidades de tendência a partir da transmissão de mensagens por um primeiro período de tempo; detectar um primeiro grupo de cluster a partir da pluralidade de entidades de tendência pelo primeiro período de tempo; identificar uma pluralidade de entidades de tendência a partir da transmissão de mensagens por um segundo período de tempo; detectar um segundo grupo de cluster a partir da pluralidade de entidades de tendência pelo segundo período de tempo; e gerar a cadeia de cluster ao ligar o segundo grupo de cluster ao primeiro grupo de cluster, a cadeia de cluster que representa o evento detectado pelos primeiro e segundo períodos de tempo; transmitir os dados digitais a um aplicativo cliente para resultar nas informações sobre o evento em uma interface de usuário do aplicativo cliente, as informações sobre o evento que incluem as informações da cadeia de cluster, as informações da cadeia de cluster identificam uma primeira entidade de tendência a partir do primeiro grupo de cluster e uma segunda entidade de tendência a partir do segundo grupo de cluster.
17. Meio legível por computador não transitório, de acordo com a reivindicação 16, caracterizado pelo fato de que ainda compreende: classificar o primeiro grupo de cluster e o segundo grupo de cluster com base na métrica de popularidade associadas a cada respectivo grupo de cluster.
18. Meio legível por computador não transitório, de acordo com a reivindicação 16, caracterizado pelo fato de que ainda compreende: extrair as entidades a partir da transmissão de mensagens, as entidades que incluem pelo menos uma das entidades ou hashtags citadas; obter uma lista de entidades de tendência derivada a partir de um serviço de detector de tendência via a interface de comunicação de servidor; e identificar uma pluralidade de entidades de tendência pelo primeiro período de tempo a partir das entidades extraídas com base na lista de entidades de tendência de modo que as entidades de não tendência são filtradas fora das entidades extraídas.
19. Meio legível por computador não transitório, de acordo com a reivindicação 16, caracterizado pelo fato de que ainda compreende: atribuir um identificador de cluster ao primeiro grupo de cluster; e atribuir o identificador de cluster do primeiro grupo de cluster ao segundo grupo de cluster em resposta ao segundo grupo de cluster sendo ligado ao primeiro grupo de cluster.
20. Meio legível por computador não transitório, de acordo com a reivindicação 16, caracterizado pelo fato de que ainda compreende: calcular os valores de similaridade com base na contagem de frequência e co-ocorrências entre a pluralidade de entidades de tendência por uma janela de tempo, cada valor de similaridade que indica um nível de similaridade entre duas entidades de tendência; gerar um gráfico de similaridade com base nos valores de similaridade, o gráfico de similaridade que inclui os nós que representam a pluralidade de entidades de tendência e bordas sendo anotadas com o valores de similaridade; filtrar o gráfico de similaridade com base em um valor de limite de similaridade de modo que as bordas que têm os valores de similaridade menores que o limite de similaridade são removidas do gráfico de similaridade; e particionar o gráfico de similaridade filtrado de acordo com um algoritmo de agrupamento para detectar o primeiro grupo de cluster, o algoritmo de agrupamento que inclui um algoritmo de Louvain.
21. Meio legível por computador não transitório, de acordo com a reivindicação 16, caracterizado pelo fato de que a pluralidade de entidades de tendência pelo primeiro período de tempo e pelo segundo período de tempo é identificada a partir da transmissão de mensagens por um detector de disparo, em que os primeiro e segundo grupos de cluster são detectados e a cadeia de cluster é gerada por uma cadeia de cluster detector, que ainda compreende: ajustar os recursos de computador do detector de disparo; e ajustar os recursos de computador da cadeia de cluster detector independente do ajuste dos recursos de computador do detector de disparo.
22. Meio legível por computador não transitório, de acordo com a reivindicação 21, caracterizado pelo fato de que uma ou mais operações do detector de disparo são realizadas em paralelo com uma ou mais operações da cadeia de cluster detector.
23. Sistema de mensagens para detectar os eventos em tempo real em uma transmissão de mídia social, caracterizado pelo fato de que compreende: uma plataforma de mensagens configurada para trocar, por uma rede, as mensagens aos dispositivos de computação, a plataforma de mensagens que inclui um detector de evento configurado para executar em um modo off-line e um modo online; em que o detector de evento, no modo off-line, é configurado para: executar um algoritmo de detecção de evento em uma transmissão de conjunto de dados de avaliação para gerar uma ou mais da primeira cadeias de cluster para valores variados de um parâmetro de controle; calcular uma métrica de desempenho com relação à execução do algoritmo de detecção de evento para os valores variados do parâmetro de controle, em que um valor do parâmetro de controle é selecionado com base na métrica de desempenho; em que o detector de evento, no modo online, é configurado para: receber uma transmissão de mensagem para as mensagens trocadas na plataforma de mensagens em tempo real; e executar o algoritmo de detecção de evento na transmissão de mensagem de acordo com o valor selecionado do parâmetro de controle para gerar uma ou mais da segunda cadeias de cluster.
24. Sistema de mensagens, de acordo com a reivindicação 23, caracterizado pelo fato de que a métrica de desempenho inclui pelo menos um de discriminação ou consolidação, o parâmetro de controle que inclui um limite de similaridade.
25. Sistema de mensagens, de acordo com a reivindicação 23, caracterizado pelo fato de que a métrica de desempenho inclui pelo menos um de discriminação ou consolidação, o parâmetro de controle que inclui uma resolução de um algoritmo de agrupamento.
Computador de servidor
Plataforma de mensagens Detector de evento Detector de cadeia de cluster Transmissão de mensagem Modo de análise off-line Mecanismo de agrupamento de entidade Classificador de cluster Dispositivo de memória Algoritmo de agrupamento
Petição 870210064923, de 16/07/2021, pág. 96/117 Modo de análise on-line Vinculador de cluster Evento(s) Resolução Detector de disparo ID de cluster Cadeia de cluster Grupos de cluster Serviço de detector de tendência Cadeia de cluster
Monitor de recurso Entidades de tendência Gráfico de similaridade de computação 165 Filtro de gráfico de similaridade 162 Gerador de gráfico de similaridade Detector de entidade Gráfico(s) de conexão Limite de Valores de similaridade Entidades similaridade 160 de tendência Entidades Contas Calculadora de similaridade 1/14
Gerenciador de linha do tempo Contagem de Co-ocorrências Janela de tempo Gerenciador de tendências frequência 154 Entidades de tendência
Gerenciador de busca
Dispositivo de computação 174 Rede Aplicativo cliente
Interface de usuário Dados Linha do tempo digitais 190
Tendências Informações de cadeia de cluster
Resultados de busca
Evento
Metadados de evento
Petição 870210064923, de 16/07/2021, pág. 97/117 Cadeia de cluster
Primeiro grupo de cluster Segundo grupo de cluster Terceiro grupo de cluster
Metadados de cluster Metadados de cluster Metadados de cluster
Entidades de tendência Entidades de tendência Entidades de tendência Entidade A Entidade A Entidade A Entidade B Entidade B Entidade B Entidade C Entidade C Entidade C 2/14
Petição 870210064923, de 16/07/2021, pág. 98/117 Entidades
Entidades citadas Hashtags Entidades de gráfico Ids de usuário 3/14
Gráfico de similaridade
Gráfico de similaridade
Petição 870210064923, de 16/07/2021, pág. 101/117 Entidades de tendência
Transmissão Extração Filtragem Calcular Filtragem de Agrupamento Ligação Classificação Armazenamento 6/14 de mensagem de entidade de entidade similaridades similaridade de entidade de cluster de cluster
Transmissão de conjunto de dados de avaliação
Detector de evento
Fração de eventos detectados Pontuação de agrupamento
Fração de evento mesclado Consolidação
Fração de evento duplicado Discriminação
Limite de similaridade Resolução
Cadeias de cluster
Petição 870210064923, de 16/07/2021, pág. 103/117 Pontuação 8/14
Pontuação de agrupamento 127
Fração de eventos detectados 121 Limite de similaridade 160 Limite de similaridade 160 Limite de similaridade 160
Petição 870210064923, de 16/07/2021, pág. 104/117 Pontuação Resolução 142
Fração de evento mesclado 129 Limite de similaridade 160 Fração de evento duplicado 131
Limite de similaridade 160 9/14
Conteúdo 11/14
Horário (UTC)
Tamanho do cluster
Petição 870210064923, de 16/07/2021, pág. 108/117 Melhor roteiro Melhor roteiro #Melhor roteiro
Musical ou comédia Melhor roteiro
Filme Melhor fotografia
Conteúdo do cluster Melhor roteiro 13/14
Melhor roteiro Melhor roteiro
Horário (UTC) Melhor roteiro Melhor comédia ou musical
Prêmios Melhor roteiro ator Para Mahershala Ali
Receber uma transmissão de mensagens trocadas em uma plataforma de mensagem
Detectar um primeiro grupo de cluster de entidades de tendência por um primeiro período de tempo
Detectar um segundo grupo de cluster de entidades de tendência por um segundo período de tempo
Gerar uma cadeia de cluster ao lugar o segundo grupo de cluster ao primeiro grupo de cluster, em que a cadeia de cluster representa o evento detectado pelos primeiro e segundo períodos de tempo
Armazenar o evento como a cadeia de cluster em um dispositivo de memória na plataforma de mensagens
BR112021014089-1A 2019-01-29 2020-01-29 Detecção de evento em tempo real em transmissões de dados sociais BR112021014089A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962798388P 2019-01-29 2019-01-29
US62/798,388 2019-01-29
PCT/US2020/015732 WO2020160186A1 (en) 2019-01-29 2020-01-29 Real-time event detection on social data streams

Publications (1)

Publication Number Publication Date
BR112021014089A2 true BR112021014089A2 (pt) 2021-09-21

Family

ID=69771056

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112021014089-1A BR112021014089A2 (pt) 2019-01-29 2020-01-29 Detecção de evento em tempo real em transmissões de dados sociais

Country Status (8)

Country Link
US (2) US11334636B2 (pt)
EP (1) EP3918758A1 (pt)
JP (1) JP2022519208A (pt)
KR (1) KR20210118452A (pt)
CN (1) CN113454954A (pt)
BR (1) BR112021014089A2 (pt)
DE (2) DE202020005789U1 (pt)
WO (1) WO2020160186A1 (pt)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7331395B2 (ja) * 2019-03-20 2023-08-23 富士フイルムビジネスイノベーション株式会社 プロセス抽出装置およびプログラム
US11687826B2 (en) * 2019-08-29 2023-06-27 Accenture Global Solutions Limited Artificial intelligence (AI) based innovation data processing system
US11580101B2 (en) * 2020-03-10 2023-02-14 Korea Advanced Institute Of Science And Technology Method and apparatus for generating context category dataset
US11468883B2 (en) * 2020-04-24 2022-10-11 Snap Inc. Messaging system with trend analysis of content
US11436771B2 (en) * 2020-11-20 2022-09-06 International Business Machines Corporation Graph-based color description generation
CN113052005B (zh) * 2021-02-08 2024-02-02 湖南工业大学 一种用于家居服务的垃圾分拣方法和垃圾分拣装置
US11748453B2 (en) * 2021-02-17 2023-09-05 International Business Machines Corporation Converting unstructured computer text to domain-specific groups using graph datastructures
US11899682B2 (en) 2021-09-08 2024-02-13 Microsoft Technology Licensing, Llc Generating and presenting a searchable graph based on a graph query
CN114546268B (zh) * 2022-02-15 2024-04-19 淮北鹏顺信息科技有限公司 一种大数据场景下的数据信息存储系统及方法
WO2023184009A1 (en) * 2022-03-30 2023-10-05 Huawei Technologies Canada Co., Ltd. Systems and methods for cluster-based parallel split learning
KR102623120B1 (ko) * 2022-12-28 2024-01-10 대한민국 소셜 미디어 대상 재난 안전 관심 주제 탐지 시스템 및 방법

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6437804B1 (en) * 1997-10-23 2002-08-20 Aprisma Management Technologies, Inc Method for automatic partitioning of node-weighted, edge-constrained graphs
US20090049018A1 (en) * 2007-08-14 2009-02-19 John Nicholas Gross Temporal Document Sorter and Method Using Semantic Decoding and Prediction
CA2864127A1 (en) * 2012-02-15 2013-08-22 Bottlenose, Inc. Systems and methods for recommending advertisement placement based on in network and cross network online activity analysis
US9319372B2 (en) * 2012-04-13 2016-04-19 RTReporter BV Social feed trend visualization
GB2502539A (en) * 2012-05-30 2013-12-04 Ibm Meta-systems management tool
WO2015181962A1 (ja) * 2014-05-30 2015-12-03 株式会社日立製作所 検索方法及び装置並びに記憶媒体
US9817893B2 (en) * 2015-02-18 2017-11-14 Adobe Systems Incorporated Tracking changes in user-generated textual content on social media computing platforms
US10592516B2 (en) * 2015-03-27 2020-03-17 British Telecommunications Public Limited Company Anomaly detection by multi-level tolerance relations
US10109023B2 (en) * 2015-05-08 2018-10-23 Thomson Reuters Global Resources Unlimited Company Social media events detection and verification
US10439976B2 (en) * 2015-10-26 2019-10-08 Dell Products L.P. Workflow to generate metadata for new and updated products and augment short message system content
ES2794748T3 (es) * 2016-01-28 2020-11-19 Siemens Ag Método y aparato para analizar un sistema complejo investigado
US10462528B2 (en) * 2017-11-20 2019-10-29 Rovi Guides, Inc. Methods and systems for indicating popular content
CN109145114B (zh) * 2018-08-29 2021-08-03 电子科技大学 基于Kleinberg在线状态机的社交网络事件检测方法

Also Published As

Publication number Publication date
JP2022519208A (ja) 2022-03-22
US20220365996A1 (en) 2022-11-17
CN113454954A (zh) 2021-09-28
US11334636B2 (en) 2022-05-17
WO2020160186A1 (en) 2020-08-06
US20200250249A1 (en) 2020-08-06
KR20210118452A (ko) 2021-09-30
DE202020005789U1 (de) 2022-06-27
EP3918758A1 (en) 2021-12-08
DE202020005787U1 (de) 2022-06-21

Similar Documents

Publication Publication Date Title
BR112021014089A2 (pt) Detecção de evento em tempo real em transmissões de dados sociais
Fedoryszak et al. Real-time event detection on social data streams
US10977311B2 (en) Dynamically modifying elements of user interface based on knowledge graph
Kim et al. Community detection in multi-layer graphs: A survey
Li et al. Filtering out the noise in short text topic modeling
Liu et al. Growing story forest online from massive breaking news
JafariAsbagh et al. Clustering memes in social media streams
Yao et al. Bursty event detection from collaborative tags
CN105224593B (zh) 一种短暂上网事务中频繁共现账号挖掘方法
Liu et al. Event detection and evolution based on knowledge base
Lu et al. Visual topic discovering, tracking and summarization from social media streams
Zheng et al. Learning‐based topic detection using multiple features
Chen Multi-modal learning: Study on a large-scale micro-video data collection
CN105205075B (zh) 基于协同自扩展的命名实体集合扩展方法及查询推荐方法
Xu et al. Towards annotating media contents through social diffusion analysis
Lee et al. Character network embedding-based plot structure discovery in narrative multimedia
US9323721B1 (en) Quotation identification
Martín-Wanton et al. An unsupervised transfer learning approach to discover topics for online reputation management
López-Ramírez et al. Geographical aggregation of microblog posts for LDA topic modeling
Yan et al. Tackling the achilles heel of social networks: Influence propagation based language model smoothing
Dao et al. The Watershed-based Social Events Detection Method with Support from External Data Sources.
Kotseruba et al. Industry and Academic Research in Computer Vision
CN104850606A (zh) 一种移动群智感知中社会事件的总结方法
KR101984773B1 (ko) 스파스 토픽들을 위한 분류자 리콜 추정
Veeningen et al. Are on-line personae really unlinkable?