Category Archives: Hurb

Oferta de R$ 1: vem mais uma novidade por aí!

Vocês pediram, e nós trouxemos mais uma Oferta de R$ 1! Nesta quinta-feira (14), retornamos com a Oferta de R$ 1. Dessa vez, a pessoa mais rápida vai se dar muito, muito bem. Nessa dinâmica, vocês precisam ficar muito ligados na Live Shop, que começa às 19h30 no nosso Instagram e Youtube. Todas as dicas e instruções serão informadas por lá.

Confira o regulamento abaixo:

A promoção “Oferta de R$1”, também denominada apenas como “Promoção”, é realizada pela Hurb Technologies S.A. (“Hurb”), sediada na Av. João Cabral de Mello Neto, nº 400, 7º andar, Península Corporate, Barra da Tijuca, cidade e estado do Rio de Janeiro, CEP 22775-057, inscrito no CNPJ/ME sob o nº 12.954.744/0001-24. Todas as pessoas físicas, residentes no Brasil e cadastradas no site www.hurb.com conseguem participar da promoção.

1. MECÂNICA

1.1 No dia 14/12/2023, será disponibilizado no APP ou no site 1 pacote turístico com acompanhante, no valor de R$ 1,00 (um real). Esse pacote promocional será adquirido pelo primeiro usuário que conseguir achar e comprar a “Oferta de R$1”, localizada no APP ou no site.

1.2 Neste ano, para ganhar uma viagem por R$ 1,00, a pessoa participante deverá encontrar o link da “Oferta de R$1”, disponibilizada exclusivamente na descrição dentro de um vídeo do canal do Youtube do Hurb, e se inscrever no canal do Hurb no Youtube (https://www.youtube.com/@hurb). Ela chegará a essa oferta a partir das dicas disponibilizadas na Live Shop do dia 14/12/2023.

1.2.1 Nas redes sociais (Instagram [stories] e Facebook [stories]), o Hurb avisará que terá uma “Oferta de R$1” ao longo da Live Shop. Durante a Live Shop, os apresentadores darão dicas para um vídeo no Youtube. Da descrição desse vídeo no Youtube, haverá o link para a “Oferta de R$1”.

1.2.2 Quando a pessoa encontrar o link, é necessário comprar a “Oferta de R$ 1”. Lembrando que a “Oferta de R$1” pode ser encontrada no APP ou no site.

1.2.3 A “Oferta de R$1” só terá um estoque, então a primeira pessoa que comprar, será o ganhador.

1.3 Após a confirmação do pagamento e a verificação da equipe do Hurb, a pessoa premiada receberá via e-mail, em até cinco dias úteis a contar do pagamento da oferta, um comunicado a respeito. O prêmio garantirá à pessoa vencedora um pacote que contempla: passagens aéreas (ida e volta), para duas pessoas, com o destino descrito no regulamento da oferta e a hospedagem a ser definida pelo Hurb.

1.5 Será uma “Oferta de R$1” no APP ou no site do Hurb no dia 14/12/2023. O Hurb poderá, a seu exclusivo critério, adiar ou cancelar a Promoção, avisando previamente pelos mesmos meios em que a mesma foi divulgada inicialmente.

2. REGRAS DE PARTICIPAÇÃO

2.1 A “Oferta de R$1” divulgada no mês de dezembro poderá ser adquirida por pessoas físicas capazes, declaradas maiores de 18 anos e residentes no Brasil.

2.2 A “Oferta de R$1” a ser divulgada também poderá ser adquirida por seu valor de mercado, por pessoas físicas capazes, declaradas maiores de 18 anos, residentes no Brasil.

2.3 Serão desclassificadas desta Promoção pessoas menores de 18 anos. Igualmente, serão desclassificadas, a qualquer momento, as participações com fraude comprovada, implicando no crime de falsidade ideológica ou
documental. São consideradas fraudes aquelas efetuadas por meio da obtenção de benefício/vantagem de forma ilícita; ou que não cumprirem quaisquer das condições deste Regulamento, incluindo, mas não se limitando, aos
seguintes casos: (i) participação com mais de um CPF, (ii) CPF inválido e (iii) participação que utilize de mecanismos que criem condições irregulares e/ou desleais ou que atentem contra os objetivos e condições de participação
desta Promoção.

2.4 Não poderão participar da Promoção sócios e funcionários do Hurb, bem como seus respectivos cônjuges e parentes em até primeiro grau. As inscrições dessas pessoas serão impedidas após consulta ao banco de dados do Hurb. Quando identificadas, as participações serão invalidadas e desclassificadas imediatamente.

2.5 É vedada a participação de pessoas já contempladas com premiações em ações de marketing do Hurb, similares ou não a esta, nos últimos 24 meses.

2.6 A pessoa vencedora concorda em não participar de outras ações semelhantes do Hurb pelos próximos 24 meses. Essa regra tem como objetivo dar chances a outras pessoas de usufruírem do benefício.

2.7 Na hipótese de desclassificação da pessoa vencedora após o fim da Promoção, o Hurb poderá optar por realizar ou não a ação novamente, na mesma ou em outra data.

2.8 Em caso de ausência de retorno ao e-mail de confirmação da premiação ou não comparecimento ao hotel e voo inclusos na Promoção, será aplicada a política de no-show e a premiação será cancelada. Em nenhuma hipótese, a pessoa contemplada com a “Oferta de R$1” poderá repassar, trocar seu prêmio ou solicitar adiamento da viagem para outra data.

2.10 É de inteira responsabilidade da pessoa que adquirir a “Oferta de R$1” ter em mãos e validar toda a documentação necessária para realizar uma viagem. O Hurb não se responsabiliza por problemas pessoais que impeça o contemplado de viajar, como por exemplo, não estar com passaporte e visto válidos, vacinas exigidas em dias etc.

2.11 Em nenhuma hipótese será possível fazer a revenda da “Oferta de R$1” para outra pessoa.

3. PREMIAÇÃO

3.1 A pessoa vencedora receberá um pacote turístico com acompanhante do Hurb, com validade pré-determinada, para um destino nacional ou internacional, em data a ser agendada conforme disponibilidade e regras específicas detalhadas no regulamento do pacote no site do Hurb. O prêmio inclui:
Aéreo: passagens aéreas de ida e volta para a cidade destino do pacote ofertado, mediante disponibilidade.
Hospedagem: a ser definida pelo Hurb, respeitando as regras do pacote da ação.
As demais informações a respeito do pacote turístico estarão detalhadas na confirmação a ser enviada pelo Hurb, após a compra no valor de R$ 1,00.

3.2 Será exigido da pessoa vencedora o envio de um vídeo, para validação do prêmio, com o nome completo, cidade onde mora, instagram, destino contemplado na oferta e breve relato sobre as expectativas e sentimentos ao ganhar a Promoção. O envio deverá ser realizado pelo Instagram do Hurb (@hurb). Ela precisa necessariamente estar inscrito no canal do Youtube do Hurb.

3.2.1 A pessoa contemplada autoriza, desde já, a utilização do vídeo (mencionado na Cláusula 3.2) pelo Hurb, em qualquer espécie de mídia, com fins comerciais ou publicitários, sem que seja devida nenhuma contraprestação à vencedora.

4. CONSIDERAÇÕES FINAIS

4.1 As pessoas participantes da Promoção declaram estar cientes e de acordo com todos os termos apresentados.
O Hurb se reserva ao direito de alterar qualquer item deste Regulamento, mediante divulgação prévia pelos mesmos meios em que a publicação tenha sido divulgada originalmente.

4.2 O Hurb não será responsável, ainda, por transmissões de computador e/ou celular que estejam incompletas ou que falhem, bem como por falha técnica de qualquer tipo, incluindo, mas não se limitando, ao mau funcionamento eletrônico de qualquer rede, “hardware” ou “software”, a disponibilidade e acesso à internet ou ao site desta Promoção, assim como por qualquer informação incorreta, vírus, falha de programação (bugs) ou violação por terceiros (hackers), falha humana, técnica ou de qualquer outro tipo que possa ocorrer durante o processamento
do cadastro na Promoção, desde que tais acontecimentos não estejam direta ou indiretamente sujeitos ao controle do Hurb, eximindo-se, por conseguinte, de qualquer responsabilidade proveniente de tais fatos e/ou atos.

4.3 Considerando as características inerentes ao ambiente virtual, o Hurb não se responsabiliza por interrupções ou suspensões de conexão ocasionadas por caso fortuito ou de força maior, bem como por cadastros atrasados, incompletos, inválidos, extraviados ou corrompidos, os quais serão desconsiderados, desde que tais acontecimentos não estejam direta ou indiretamente sujeitos ao controle do Hurb.

4.4 O Hurb não se responsabilizará pelas inscrições que não forem realizadas por problemas na transmissão de dados, no servidor, nas linhas telefônicas ou em provedores de acesso aos usuários ou ainda por falta de energia elétrica, sem exclusão das demais situações decorrentes de caso fortuito ou de força maior. Além disso, nenhuma responsabilidade será assumida pelo Hurb no decorrer e posteriormente ao período de participação nesta Promoção ou durante a utilização do prêmio, por atos ou omissões de terceiros, incluindo, mas não se limitando a outros concorrentes, prestadores de serviços, fornecedores de produtos, bem como por quaisquer condições, fatos ou circunstâncias relacionados à participação dos concorrentes ou ao uso de qualquer porção do prêmio e/ou outras ações requeridas para a efetiva participação nesta Promoção.

Semana do Cliente: viaje mais gastando menos

Começou um dos períodos mais importantes do ano: a Semana do Cliente! Se você é apaixonado por viagens, corra para aproveitar! Aqui no Hurb, vários pacotes estão sem taxas e com condições especiais de pagamento, inclusive parcelamento em cartão de crédito e boleto. Para você ter uma ideia, há pacotes para Cancún All Inclusive. É o paraíso, né? E o melhor é que essa é apenas uma das opções. Ficou curioso para saber todos os destinos da Semana do Cliente? Então preste atenção 👇

Lisboa

  • A partir de R$ 3.933 – 5 diárias 

A capital de Portugal é um tesouro de história, cultura e arquitetura. Passeie pelas ruas de paralelepípedos do bairro de Alfama, visite o Mosteiro dos Jerónimos e desfrute da deliciosa culinária portuguesa em cafés tradicionais. Lisboa oferece uma mistura de tradição e modernidade.

Porto Seguro

  • A partir de R$ 1.359 – 4 diárias

Para os amantes das praias do Brasil, Porto Seguro é um destino obrigatório. As praias de águas quentes, como Taperapuã e Arraial d’Ajuda, são perfeitas para relaxar e aproveitar o sol. Além disso, a cidade também tem uma rica história colonial, com locais históricos para explorar.

Bonito

  • A partir de R$ 998 – 4 diárias

Bonito, no coração do Brasil, é um paraíso para os amantes da natureza. As águas cristalinas dos rios da região oferecem oportunidades incríveis para fazer flutuação e mergulho em cenotes subterrâneos. Explore cavernas, trilhas e cachoeiras e se encante com a biodiversidade da região.

Cancún All Inclusive

A partir de R$ 4.207 – 5 diárias 

Num All Inclusive em Cancún, você será transportado para um paraíso tropical onde praias de areias brancas, águas cristalinas do Caribe e resorts de luxo se unem para proporcionar uma experiência de férias inesquecível. Explore recifes de coral, faça mergulho com snorkel ou simplesmente relaxe em uma espreguiçadeira à beira-mar.

Aproveite a Semana do Cliente para planejar a sua próxima viagem em um desses destinos incríveis. Não importa se você busca aventura, relaxamento ou cultura, há um destino perfeito para cada tipo de viajante. Não perca a oportunidade de explorar o mundo e criar memórias inesquecíveis!

Pesquisa semântica com incorporações: Google SEO para indexar qualquer coisa

Construindo recuperação semântica escalável a partir de dados de imagem, texto, gráfico e interação

 Lista completa de referências

Vivemos em um mundo com uma explosão de informações. Há milhões de roupas, músicas, filmes, receitas, carros, casas, qual você deve escolher? A pesquisa semântica pode encontrar a certa para qualquer gosto e desejo!Neste artigo, vou apresentar o que é pesquisa semântica, o que pode ser construído com ela e como construí-la. Por exemplo, por que as pessoas procuram roupas?

Eles gostam da marca, da cor, da forma ou do preço. Todos esses aspectos podem ser usados para encontrar o melhor.A cor e a forma podem ser encontradas usando a imagem, e o preço e a marca são encontrados nas tendências.Imagens e tendências podem ser representadas como pequenos vetores chamados incorporações.

As incorporações são o núcleo da pesquisasemântica: uma vez que os itens são codificados como vetores, é rápido e eficiente procurar os melhores itens.Vou explicar como a pesquisa semântica funciona: codificar itens como incorporações, indexá-los e usar esses índices para pesquisa rápida, a fim de construir sistemas semânticos.

  1. Motivação: por que pesquisar, por que pesquisar semântica?
    1.1 O que é pesquisa?
    1.2 O que é pesquisa semântica e o que pode ser construído com ela?
  2. Design geral: como construir pesquisa semântica?
  3. Pipeline de codificação: de itens a vetores e índices
    3.1 Extraia dados relevantes
    3.2 Codifique os itens
    3.2.1 Conteúdo
    3.2.2 Distribuição
    3.2.3 Composição
    3.2.4 Popularidade
    3.2.5 Treinamento
    3.3 Construa índices relevantes
    3.3.1 O que indexar, quantos índices?
    3.3.2 Aproximado knn e bibliotecas
    3.3.3 Escala
    3.3.4 Índices Knn como um componente de banco de dados
  4. Pipeline de pesquisa: de índices a sistemas de pesquisa semântica
    4.1 Extraia partes de consultas
    4.2 Codifique a consulta
    4.3 Pesquise os índices certos
    4.4 Filtragem de postagens
    4.5 Porção
    4.6 Avaliação
  5. Soluções práticas para construir isso facilmente
    5.1 Soluções de código aberto de ponta a ponta
    5.2 Do zero
  6. Conclusão
    6.1 Além da pesquisa: aprendizado de representação
    6.2 O que vem a seguir?

1. Motivação: por que pesquisar, por que pesquisar semântica?

1.1 O que é pesquisa?

Por milhares de anos, as pessoas quiseram pesquisar entre documentos: pense nas enormes bibliotecas que contêm milhões de livros. Foi possível então procurar nesses livros graças às pessoas que os classificassem cuidadosamente por nomes de autores, data de publicação,… Os índices dos livros foram cuidadosamente construídos e foi possível encontrar livros pedindo a especialistas.Há 30 anos, a internet se tornou popular e, com ela, o número de documentos para pesquisar passou de milhões para bilhões. A velocidade com que esses documentos passaram de alguns milhares todos os anos para milhares todos os dias, não era mais possível indexar tudo manualmente.Foi quando sistemas de recuperação eficientes foram construídos. Usando a estrutura de dados apropriada, é possível indexar bilhões de documentos todos os dias automaticamente e consultá-los em milissegundos.A pesquisa é sobre atender a uma necessidade de informação. Começando por usar uma consulta de qualquer forma (perguntas, lista de itens, imagens, documentos de texto,…), o sistema de pesquisa fornece uma lista de itens relevantes. Os sistemas de pesquisa clássicos constroem representações simples a partir de texto, imagem e contexto e constroem índices eficientes para pesquisar a partir deles. Alguns descritores e técnicas incluem

Embora esses sistemas possam ser dimensionados para quantidades muito grandes de conteúdo, eles geralmente sofrem de dificuldades para lidar com o significado do conteúdo e tendem a permanecer no nível da superfície.Essas técnicas clássicas de recuperação fornecem bases sólidas para muitos serviços e aplicações. No entanto, eles não conseguem entender completamente o conteúdo que estão indexando e, como tal, não podem responder de maneira relevante a algumas perguntas sobre alguns documentos. Veremos nas próximas seções como as incorporações podem ajudar.

1.2 O que é pesquisa semântica e o que pode ser construído com ela?

A principal diferença entre a pesquisa clássica e a pesquisa semântica é usar pequenos vetores para representar itens.

A pesquisa visual pode ser usada para procurar plantas PlantNet, mas também para procurar roupas

O uso de incorporações é poderoso: pode ser usado para criar sistemas que podem ajudar os usuários a encontrar itens de que gostam (música, produto, vídeos, receitas, …) usando muitos tipos de consultas. Ele não pode funcionar apenas em sistemas de pesquisa explícitos (inserindo uma consulta em uma barra de pesquisa), mas também em sistemas implícitos (produtos relevantes em sites de varejistas, notícias personalizadas em editores, postagens interessantes em plataformas sociais).Muitos tipos de sistemas podem ser construídos em cima da pesquisa.

  • Um sistema de pesquisa de texto leva como entrada uma consulta de texto e retorna resultados: pesquisa de roupas, músicas, notícias
  • Um sistema de pesquisa visual toma como entrada uma imagem e retorna itens semelhantes em comparação com esta imagem.
  • Um sistema de recomendação usa como entrada algum contexto, informações do usuário e retorna itens semelhantes que otimizam para um determinado objetivo: recomendar filmes, carros, casas
  • Redes sociais, redes de publicidade, mecanismos de busca especializados (pesquisa de produtos) usam técnicas de recuperação para fornecer as melhores informações

É possível pesquisar uma variedade de itens, qualquer coisa que tenha imagens, texto, áudio ou esteja disponível em um contexto. Exemplos populares de tais sistemas são a lente do Google, a recomendação da Amazon ou os mais novos para pesquisa de moda, pesquisa de plantas, …Em menor escala, pode ser interessante indexar suas fotos, suas mensagens, encontrar um programa de TV entre muitos, encontrar atores em um programa de TV, …

2. Design geral: como construir pesquisa semântica?

Um sistema de pesquisa semântica é composto por duas partes: um pipeline de codificação que constrói índices e um pipeline de pesquisa que permite ao usuário usar esses índices para pesquisar itens.

3 Pipeline de codificação: de itens a vetores e índices

O primeiro passo para construir um sistema de recuperação semântica é codificar itens em pequenos vetores (centenas de dimensões). Isso é possível para muitos itens e pode ser usado para indexá-los e pesquisar entre eles de forma eficiente.

3.1 Extraia dados relevantes

Os sistemas de recuperação podem codificar itens de muitos aspectos diferentes, por isso é importante pensar no que codificar. Alguns exemplos de itens para codificar são roupas, brinquedos, animais, notícias, músicas, filmes, receitas. Cada um deles tem características diferentes: eles podem ser expressos por como se parecem, como podem ser descritos, como aparecem entre outros itens.Todas essas informações podem ser codificadas como incorporações. Um eixo diferente para pensar é quantos itens codificar? Todos os itens são únicos ou faz mais sentido agrupá-los por características relevantes? Existem alguns itens que são mais relevantes e devem ser uma prioridade? Fazer essa escolha cedo pode ter consequências dramáticas para o resto do sistema.

Este personagem de Star Wars C-3PO pode ser codificado com uma imagem dele, uma descrição, como ele aparece em um gráfico (está em um filme de Star Wars, aparecendo na data desses filmes, …), quão popular ele é, mas também que ele aparece junto com R2-D2 com frequência, e tem uma voz robótica. Todas essas informações podem ser relevantes. Qual escolher pode afetar muito o desempenho do sistema.

Para um sistema de recomendação, as informações de co-ocorrência podem funcionar melhor, mas para um sistema de pesquisa visual, a imagem pode ser a mais relevante.

3.2 Codifique os itens

3.2.1 Conteúdo

Os itens podem ser codificados com base em seu conteúdo. As roupas podem ser bem representadas com imagens. Os sons são identificados por seu conteúdo de áudio. As notícias podem ser entendidas usando seu texto. Os modelos de aprendizagem profunda são muito bons em produzir representações de conteúdo que têm boas propriedades de recuperação.

3.2.1.1 Imagens

As imagens podem ser codificadas com ResNet

As imagens podem ser representadas com incorporações (leia uma introdução sobre isso no meu post anterior). Redes como ResNet ou EfficientNet são realmente bons extratores de recursos para imagens, e muitas redes pré-treinadas estão disponíveis.Também não é apenas possível representar toda a imagem, mas também é possível usar segmentação ou detecção de objetos antes de aplicar o codificador de imagem.

  • A segmentação pode ser usada para extrair parte da imagem pixel por pixel, pode ser relevante para extrair camisas e calças de uma imagem de moda
  • A detecção é útil para extrair zonas retangulares das imagens

Uma diferença importante nos vários codificadores de imagem é qual perda eles estão usando. As redes convolucionais são frequentemente treinadas usando perda tripla, entropia cruzada ou, mais recentemente, perda contrastiva. Cada perda pode fornecer características diferentes para incorporações: perda tripla e perda contrastiva tentam montar itens semelhantes, enquanto a entropia cruzada reunirá itens da mesma classe. Muitos modelos pré-treinados são treinados na ImageNet com entropia cruzada para classificação de imagens, mas o aprendizado auto-supervisionado (simclr byol) está mudando rapidamente isso para tornar possível o treinamento não supervisionado sem classificação. Em um futuro próximo, os melhores codificadores podem não precisar de dados rotulados. Este tutorial em vídeo do CVPR2020 é muito bom para entrar em detalhes sobre recuperação de imagens.Ser capaz de codificar imagens como vetores torna possível construir muitos aplicativos: qualquer coisa que possa ser vista e assistida é algo que possa ser codificada. Pesquisa visual de moda, pesquisa de plantas, pesquisa de produtos são possíveis. A pesquisa em filmes e outros conteúdos de vídeo também se torna possível.

3.2.1.2 Texto

O texto também pode ser representado com incorporações. O texto pode ter várias formas e comprimentos: palavras, frases, documentos. A aprendizagem profunda moderna agora pode representar a maioria daqueles em representação poderosa.

  • Word2vec: a codificação de palavras é uma das formas mais populares de incorporação. A partir do contexto das palavras nos documentos, é possível inferir quais palavras estão mais próximas em significado às outras. Word2vec ilustrado e word2vec explicados introduzem bem o conceito e os métodos
  • Os transformadores são um método mais novo que torna possível codificar frases inteiras, levando melhor em conta as dependências entre muitas palavras nas frases. Alguns anos atrás, eles foram capazes de se tornar o estado da arte em muitas tarefas. O transformador ilustrado é uma introdução interessante a eles.
  • Arquitetura Bert: finalmente, a arquitetura Bert é um tipo especial de transformador que pode ser bem treinado em um ambiente multitarefa. Foi chamado de momento ImageNet de PNL. bert ilustrado é uma boa introdução a ele.
BERT

Na prática, alguns bons codificadores para texto podem ser:

  • Incorporações de palavras de luvas. Este pequeno exemplo de repositório word-knn que eu construí pode ajudar a começar rapidamente
  • O modelo labse para incorporações de frases é um modelo bert pré-treinado que pode codificar incorporações de até 109 idiomas em um único espaço
  • As incorporações de documentos podem ser representadas como a média das frases.

Ser capaz de codificar texto como vetores torna possível pesquisar artigos, descrição de filmes, títulos de livros, parágrafos da Wikipédia, … Muito conteúdo está disponível como texto, portanto, usar essas informações para um sistema de recuperação pode ser um dos primeiros passos a tentar.

3.2.1.3 E todos os outros conteúdos

Além do texto e da imagem, o conteúdo de áudio também pode ser codificado como incorporações (pense em aplicativos como o Shazam).Exemplos de Jina e vectorhub fornecem muitos bons exemplos de como codificar incorporações usando conteúdo

3.2.1.4 Escalando

Para codificar não apenas algumas centenas, mas bilhões de incorporações, trabalhos de lote como spark ou Pyspark podem ser realmente úteis. A maioria dos modelos de imagem e texto será capaz de codificar milhares de amostras por segundo. Codificar um bilhão de amostras em uma hora exigiria cerca de 300 executores.

A codificação de itens por seu conteúdo funciona bem e escala para bilhões de itens. Mas o conteúdo não é o único dado disponível, vamos ver como os outros itens podem ser codificados.

3.2.2 Distribuição: tendências

Itens como roupas, filmes e notícias geralmente estão presentes em sites visitados por muitos usuários. Os usuários interagem com os itens, gostam ou não, alguns itens são populares, alguns itens são vistos apenas por partes dos usuários e itens relacionados geralmente são vistos juntos. Tudo isso são dados de interação. Esses dados de interação podem ser usados para codificar itens. Isso é particularmente útil para definir incorporações para as quais a métrica de distância é baseada em como as pessoas interagem com esses itens sem precisar de nenhuma informação sobre seu conteúdo.

3.2.2.1 SVD

Um primeiro método para construir essa incorporação de comportamento é SVD: decomposição de valor singular.

No contexto em que para um conjunto de itens (notícias, produtos, restaurantes,…) classificações de usuários estão disponíveis, é possível calcular incorporações de usuários e itens. O primeiro passo é calcular uma matriz de similaridade de item de usuário e usando fatoração de matriz (SVD), incorporações de usuário e incorporações de itens são computadas. O svd de item de usuário é uma introdução simples a esse processo.

Outra configuração aparece quando é possível observar co-ocorrências entre itens. Um exemplo poderia ser produtos (roupas, casas, laptops, …) que são visualizados ou comprados juntos por um usuário. Essas co-ocorrências podem ser expressas com seu PMI e essa matriz item-item pode ser fatorada com SVD em incorporações de itens. Essas duas postagens de blog fornecem uma boa introdução.

O algoritmo SVD pode ser dimensionado para matrizes esparsas de bilhões de linhas e colunas graças a uma implementação eficiente do Spark RSVD

Essa maneira de codificar itens em incorporações é particularmente poderosa para codificar as preferências e o comportamento do usuário em relação aos itens sem precisar de nenhum conhecimento sobre esses itens. Isso significa que ele pode funcionar em todos os idiomas e para itens onde nenhum conteúdo está disponível.

3.2.2.2 Incorporação de gráficos

Uma segunda maneira de codificar itens usando sua distribuição é a incorporação de gráficos.

Muitos conjuntos de dados podem ser representados como gráficos. Um bom exemplo é um gráfico de conhecimento. Wikidata e DBpedia, por exemplo, representam o conhecimento no mundo real como entidades como pessoas, empresas, países, filmes… e relações entre eles, como cônjuge, presidente, nacionalidade, ator.

Wikidata representa o conhecimento sobre as entidades mundiais

Isso forma um gráfico: entidades são nós no gráfico, e esses nós são ligados por arestas que são relações.

Existem muitos algoritmos interessantes e artigos recentes sobre incorporações de gráficos e redes neurais de gráficos em geral (este canal de telegrama é ótimo para seguir o tópico), mas um simples e escalável é o Pytorch Big Graph. Este ajudante que construí com um colega pode ajudar a construir grandes conjuntos de dados gráficos para PBG e visualizar alguns resultados knn.

Essa representação de dados como um gráfico pode ser usada para construir incorporações para nós e transformação para arestas que possibilitam ir de um nó para o outro. A ideia é aprender a mapear um nó para outro nó usando ambas as incorporações de nós e uma transformação que pode ser aprendida para a borda. Tal transformação pode ser uma tradução. Isso dá resultados surpreendentemente bons para prever a próxima vantagem.

O PBG possibilita aprender a transformação entre bilhões de incorporações

A contribuição do Pytorch Big Graph é particionar os nós e arestas para que seja possível aplicar esse aprendizado a centenas de milhões de nós e bilhões de arestas.

Os gráficos são muito versáteis e podem não apenas representar gráficos de conhecimento, mas também links entre usuários, produtos, restaurantes, filmes, … Usar incorporações de gráficos pode ser uma boa maneira de usar a distribuição de itens para codificá-los.

3.2.3 Composição e multimodal

Agora temos incorporações de itens de várias perspectivas, e eles podem oferecer informações complementares. Como uma peça de roupa se parece, como os usuários interagem com ela e como ela é descrita podem ser relevantes.

Como essas incorporações podem ser combinadas em uma única?

  • Concatenação: concatenar as incorporações é um método básico que funciona surpreendentemente bem. Por exemplo, a concatenação de incorporações de texto e imagem torna possível pesquisar um item usando seu texto, sua imagem ou ambos.
  • Modelo multimodal: a aprendizagem profunda da visão e da linguagem está se tornando muito popular, e muitos modelos (imagebert, vilbert, uniter, vl-bert, veja esta demonstração interessante) propõem aprender com a linguagem e o texto, para produzir representações de modelos cruzados.
  • Ajustando uma rede para uma tarefa específica usando várias incorporações
Modelo modal cruzado ImageBert

A composição é uma ferramenta poderosa e pode ser usada para ter uma visão completa dos itens a serem codificados.

3.2.4 Popularidade

Um tópico importante a ser considerado nos sistemas de recuperação e recomendação é a popularidade dos itens. Mostrar itens impopulares geralmente resulta em resultados não relevantes.

Uma maneira simples de resolver esse problema é adicionar um termo de popularidade à incorporação. Por exemplo, o último componente pode ser o inverso do registro do número de visualizações desse item. Dessa forma, a distância L2 entre uma consulta com um 0 no componente de popularidade classificará em primeiro lugar os itens mais populares. Isso pode ajudar a remover alguns dos itens impopulares dos principais resultados, mas isso não é perfeito, pois o trade-off entre semelhança e popularidade deve ser definido manualmente.

Treinar as incorporações para um objetivo específico é uma maneira melhor de resolver isso.

3.2.5 Treinamento

Para codificar itens, modelos de conteúdo pré-treinados e métodos baseados em distribuição funcionam bem, mas para ajustar as incorporações para uma determinada tarefa, a melhor maneira é treinar um novo modelo para isso.

Muitas tarefas podem ser consideradas para treinar incorporações: baseadas em conteúdo, baseadas em distribuição e para objetivos mais específicos, como engajamento, cliques ou talvez até mesmo felicidade do usuário.

3.2.5.1 Treinamento específico de imagem

As incorporações de imagens podem ser treinadas com tarefas como classificação, identificação, segmentação. Groknet é um bom exemplo de um grande sistema para aprender incorporações de imagens com objetivos específicos… Ele aprende em muitos conjuntos de dados díspares para muitas tarefas diferentes.

Groknet: usando um tronco de visão para treinar incorporações com muitos tipos de conjuntos de dados e perdas.

FaceNet é outra maneira simples de treinar incorporações de imagens além da classificação. A perda tripla permite que ele aprenda um tipo específico de incorporação de imagem: incorporação de rosto. Isso pode ser reutilizado para outros exemplos, como incorporação de ursos de treinamento

3.2.5.2 Treinamento específico do texto

Bert é um ótimo exemplo de um modelo que pode ser ajustado e reutilizado para vários objetivos. Em particular, a biblioteca de transformadores huggingface e a biblioteca de transformadores thesentence com base nela são ótimas para ajustar um modelo de texto para um caso de uso específico. Centenas de arquiteturas de transformadores diferentes estão disponíveis lá com dezenas de configurações de treinamento.

3.2.5.3 Distribuição: treinamento específico de recomendação

Incorporações de ajuste fino para recomendação

Outra configuração é um modelo de treinamento para recomendação. Isso pode funcionar muito bem para ir além do SVD e treinar incorporações de produtos e usuários. A biblioteca criteodeepr com seu blog que o acompanha é uma boa introdução a este tópico. Os recomendadores do Tensorflow são outro bom ponto de entrada.

3.2.5.1 E muito mais

Além dessas configurações de treinamento específicas, as incorporações de treinamento são o núcleo da aprendizagem profunda e da aprendizagem de representação. Pode ser aplicado em muitos ambientes e para muitos objetivos. Alguns exemplos interessantes são:

  • StarSpace, um projeto do Facebook para aprender incorporações de imagens, texto, gráfico e distribuição para vários objetivos
  • Incorporação de receitas um exemplo de um projeto para aprender incorporações de receitas a partir de ingredientes, instruções e imagens

Para se aprofundar mais neste tópico de treinamento de redes neurais para recuperação de informações, esses slides do ecir2018 estão bastante completos.

3.3 Construa índices relevantes

Uma vez que as incorporações são construídas, precisamos de uma maneira de olhar entre elas rapidamente. Isso pode ser alcançado graças ao algoritmo k do vizinho mais próximo. A versão simples consiste em calcular uma distância entre um vetor e todos os vetores do conjunto de dados. Isso pode ser melhorado muito usando algoritmos aproximados de k vizinhos mais próximos.

Usando a implementação correta dos índices knn, é possível procurar os vizinhos mais próximos de uma incorporação a partir de um conjunto de bilhões de vetores em milissegundos. Graças às técnicas de quantização, isso pode caber em apenas alguns GB de memória.

3.3.1 O que indexar, quantos índices?

Em termos de desempenho, as coisas importantes a serem otimizadas ao construir índices são:

  • Latência: quanto tempo leva para um índice retornar resultados?
  • Lembre-se: quantos dos resultados de um knn de força bruta são encontrados no resultado do índice?
  • Memória: quão grande é o índice, quanta memória é necessária para mantê-lo na ram?

Em termos de relevância de pesquisa, pode ser importante particionar as incorporações nas dimensões certas. Por exemplo, os itens podem ser particionados por categorias amplas (calças, camisetas,…) para um aplicativo de pesquisa visual de moda. Esse particionamento pode ter consequências ao construir os índices, por isso é melhor decidir cedo.

3.3.2 Aproximado knn e bibliotecas

Para escolher a melhor maneira de construir índices, o número de incorporações é um bom discriminador.

Alguns exemplos de algoritmos apropriados podem ser:

  • Para menos de mil incorporações, uma busca de força bruta faz sentido
  • Por menos de um milhão, um algoritmo rápido, mas não eficiente em termos de memória (como HNSW) é apropriado
  • Por menos de um bilhão, a quantização (usando k-means e fertilização in vitro) se torna importante
  • Para um exemplo trilhão, a única solução são os índices em disco

A documentação faiss fornece uma boa explicação sobre esses trade-offs.

Alguns algoritmos para calcular knn aproximado são:

  • Um knn ingênuo: que pode ser implementado em O(nlog(k)) com uma fila de prioridade ou O(n) com quickselect ou introselect. Para poder calcular isso, é necessário armazenar todas as incorporações na memória.
  • HNSW: um algoritmo que constrói um gráfico de vizinhos. É O(log(N)) na pesquisa, mas não é exato. Leva cerca de duas vezes a memória das incorporações porque precisa armazenar o gráfico
  • FIV: o algoritmo de arquivo invertido consiste em dividir o espaço de incorporação em várias partes e usar k-means para encontrar uma aproximação de incorporação. É menos rápido que o HNSW, mas permite diminuir a memória exigida pelo índice tanto quanto necessário.

Para saber mais sobre todos os tipos de índices, recomendo ler esta página da documentação do faiss. Este tutorial do CVPR2020 se aprofunda sobre esses algoritmos, aconselho assisti-lo se você estiver interessado em entender os detalhes mais finos.

As bibliotecas que implementam esses índices incluem:

  • Faiss Uma biblioteca muito ampla que implementa muitos algoritmos e interfaces limpas para construí-los e pesquisar a partir deles
  • Hnswlib é atualmente a implementação mais rápida de HNSW. Altamente especializado e otimizado
  • Annoy é outro algoritmo knn, implementado pelo Spotify

Como o knn aproximado está no centro da recuperação moderna, é um campo de pesquisa ativo. Notavelmente, esses artigos recentes introduzem novos métodos que superam algumas métricas.

  • Scann do Google é um novo método que é de última geração, superando HNSW em velocidade e recall usando quantização anisotrópica
  • Catalisador do Facebook que propõe treinar o quantizador com uma rede neural para uma tarefa específica

Eu aconselho começar pelo faiss por sua flexibilidade e tentar outras bibliotecas para necessidades específicas.

3.3.3 Escala

Para ser capaz de escalar para muitas incorporações, as técnicas principais são:

  • Quantificação: as incorporações podem ser compactadas em índices de tamanho 1/100 e mais
  • Sharding: particionar os itens ao longo de uma dimensão, torna possível armazenar os índices em diferentes máquinas

Para escalar em termos de velocidade, a velocidade do índice é realmente importante (algoritmos como HNSW podem ajudar muito), mas servir também é crucial. Mais detalhes sobre isso na seção de serviço.

Em termos práticos, é possível construir um índice de 200 milhões de incorporações com apenas 15 GB de memória RAM e latências em milissegundos. Isso desbloqueia sistemas de recuperação baratos na escala de um único servidor. Isso também significa que, na escala de alguns milhões de incorporações, os índices knn podem caber em apenas centenas de megabytes de memória, que podem caber em máquinas de mesa e até mesmo dispositivos móveis.

3.3.4 Índices Knn como um componente de banco de dados

Bancos de dados existem em todos os tipos: bancos de dados relacionais, armazenamentos de chaves/valores, bancos de dados de gráficos, armazenamentos de documentos,… Cada tipo tem muitas implementações. Esses bancos de dados trazem maneiras convenientes e eficientes de armazenar informações e analisamos-las. A maioria desses bancos de dados fornece maneiras de adicionar novas informações e consultá-las pela rede e usar APIs em muitos idiomas. Esses bancos de dados em seu núcleo estão usando índices para torná-los rápidos para consultá-los. Os bancos de dados relacionais em seu núcleo usam mecanismos de armazenamento (como o InnoDB) que usam índices adaptados. As lojas de chaves/valor implementam índices baseados em hash compartilhados e distribuídos.

E se os índices knn pudessem ser integrados às implementações de banco de dados como apenas mais um tipo de índice?

Isso é o que é proposto por projetos como

  • Uma integração de pesquisa elástica de HNSW: eles propõem adicionar hnsw como parte do banco de dados geral de pesquisa elástica. Isso torna possível combinar a pesquisa knn com consultas rigorosas, consultas de texto e junções fornecidas pela pesquisa elástica
  • Unicorn, um sistema privado do Facebook que permite integrar a pesquisa knn em um banco de dados de gráficos. Como consequência, as consultas nesse gráfico podem ter partes usando consultas knn.

Além desses sistemas específicos, o que eu acho realmente interessante nesse conceito é a ênfase em tornar a construção de índices knn um processo simples que pode ser acionado facilmente:

  • A adição de novos dados aciona automaticamente a reindexação ou a adição direta de incorporações aos índices existentes
  • Escolhendo automaticamente o tipo certo de índice knn com base na restrição específica do sistema

4. Pipeline de pesquisa: de índices a sistemas de pesquisa semântica

O pipeline de pesquisa é a parte do sistema que geralmente é executada em uma configuração on-line e de baixa latência. Seu objetivo é recuperar resultados relevantes para uma determinada consulta. É importante que ele retorne resultados em segundos ou milissegundos, dependendo das restrições e para ocupar baixas quantidades de memória.

É composto por uma maneira de extrair dados relevantes de uma consulta, um codificador para transformar esses dados em incorporações, um sistema de pesquisa que usa índices construídos no pipeline de codificação e, finalmente, um sistema de pós-filtragem que selecionará os melhores resultados.

Ele pode ser executado em servidores, mas para uma quantidade menor de itens (milhões), também pode ser executado diretamente no lado do cliente (navegadores e dispositivos pequenos).

4.1 Extraia partes de consultas

A primeira parte do sistema consiste em pegar uma consulta como entrada e extrair dados relevantes dela para poder codificá-la como incorporações de consulta.

Alguns exemplos interessantes de consultas incluem procurar roupas semelhantes, procurar uma planta de uma foto, procurar músicas semelhantes de um registro de áudio. Outro exemplo pode ser uma lista de itens vistos pelos usuários.

A consulta pode assumir qualquer forma: uma imagem, texto, uma sequência de itens, áudio, …

Para poder codifico-lo da melhor maneira, várias técnicas podem ser usadas:

  • Para uma segmentação de imagem ou detecção de objetos pode ser relevante: extrair apenas roupas da foto de uma pessoa, por exemplo
  • Para texto, pode ser relevante extrair entidades nomeadas da consulta, pode fazer sentido aplicar a extensão de consulta para adicionar termos relevantes ou corrigir erros de digitação
  • Para uma lista de itens, agrupar os itens para selecionar apenas um subconjunto relevante pode ajudar

Segmentação de pessoas para extrair roupas

4.2 Codifique a consulta

Depois que os dados relevantes são extraídos da consulta, cada um desses elementos pode ser codificado. A maneira de codificá-lo geralmente é semelhante à maneira como as incorporações dos índices são construídas, mas é possível aplicar técnicas que são relevantes apenas para a consulta.

Por exemplo:

  • Uma média de vários elementos para obter resultados relevantes para uma lista de itens
  • Agrapee os pontos da consulta e escolha um cluster como a consulta
  • Use modelos mais complexos para gerar consultas apropriadas no mesmo espaço, usando modelos de transformador para resposta a perguntas (veja DPR), ou transformações de incorporações de gráficos (veja PBG), por exemplo

Para o caso de uso de recomendação, é possível treinar diretamente um modelo que produzirá as melhores consultas para um determinado objetivo, veja este post do blog do criteo como exemplo.

4.3 Pesquise os índices certos

Dependendo do tipo de consulta, pode ser relevante construir não apenas um índice, mas vários. Por exemplo, se a consulta tiver uma parte de filtro para uma determinada categoria de item, pode fazer sentido construir um índice específico para esse subconjunto de incorporações.

Aqui, selecionar o índice da Toyota tornou possível devolver apenas produtos relevantes desta marca.

4.4 Filtragem de postagens

Construir vários índices é uma maneira de introduzir filtragem rigorosa em um sistema, mas outra maneira é fazer uma grande consulta knn e pós-filtrar os resultados.

Isso pode ser relevante para evitar a construção de muitos índices

4.5 Porção

Finalmente, a construção de um aplicativo de serviço torna possível expor os recursos aos usuários ou outros sistemas. Graças às bibliotecas rápidas de k vizinhos mais próximos, é possível ter latências em milissegundos e milhares de consultas por segundo.

Há muitas opções para construir isso. Dependendo do estado e do escopo dos projetos, diferentes tecnologias fazem sentido:

  • Para experimentar inicialmente, a construção de um aplicativo de frasco simples com faiss pode ser feita em apenas 20 linhas de código
  • Usar um servidor adequado com frasco como gunicorn com gevent pode ser suficiente para atingir latências de milissegundos a milhares de qps
  • Para obter ainda mais desempenho, a construção de um serviço de serviço com linguagens nativas como ferrugem ou C++ pode ser feita. O benefício de usar uma linguagem nativa para esse tipo de aplicativo pode ser evitar custos de GC, já que o próprio índice knn é construído em C++, apenas o código de serviço precisa ser otimizado.
  • As bibliotecas Aknn são mais frequentemente construídas em c++, mas as ligações podem ser feitas com muitas linguagens (java, python, c#) manualmente ou com swig. Para integração com um aplicativo existente, isso pode ser o mais relevante em alguns casos.

4.6 Avaliação

A avaliação de um sistema de pesquisa semântica dependerá muito do caso de uso real: um sistema de recomendação ou um sistema de recuperação de informações pode ter métricas muito diferentes. As métricas podem ser amplamente divididas em duas categorias: métricas on-line e métricas off-line. As métricas on-line podem ser medidas apenas a partir do uso do sistema, muitas vezes em uma configuração de teste A/B. Para recomendação, em particular, a taxa de cliques ou diretamente a receita pode ser considerada, este documento explica alguns deles com mais detalhes. As métricas off-line podem ser calculadas a partir de conjuntos de dados off-line e exigem alguns rótulos. Esses rótulos podem ser implícitos com base em como os usuários interagem com o sistema (o usuário clicou nesse resultado?) ou explícitos (annotadores que fornecem rótulos). Algumas métricas off-line são gerais para todos os sistemas de recuperação, a página da Wikipedia sobre isso é bastante completa. As métricas frequentemente usadas incluem o recall, que mede o número de documentos relevantes que são recuperados, e o ganho cumulativo descontado que explica a classificação dos itens recuperados.

Antes de fazer análise quantitativa, construir uma ferramenta de visualização e analisar o resultado geralmente fornece insights úteis.

5. Soluções práticas para construir isso facilmente

5.1 Soluções de código aberto de ponta a ponta

Outra maneira de começar a criar aplicativos de pesquisa semântica é usar soluções de código aberto pré-existentes. Recentemente, várias organizações e pessoas os construíram. Eles variam em objetivos, alguns deles são específicos para uma modalidade, alguns deles lidam apenas com a parte knn e alguns tentam implementar tudo em um sistema de pesquisa semântica. Vamos anuná-los.

Jina é um projeto de código aberto de pesquisa semântica de ponta a ponta construído pela empresa de mesmo nome. Não é um único serviço, mas fornece boas APIs em python para definir como criar codificadores e indexadores, e um sistema de configuração YAML para definir fluxos de codificação e pesquisa. Ele propõe encapsular cada parte do sistema em contêineres docker. Dezenas de codificadores já estão disponíveis, e vários indexadores também são construídos em seu sistema. Ele também fornece tutoriais e exemplos sobre como construir sistemas de pesquisa semântica específicos.

Eu recomendo ler o grande post do blog da jina. Sua sintaxe e flexibilidade é o que o torna o mais interessante e poderoso.

Milvus é um serviço de pesquisa semântica focado na indexação, usando faiss e nmslib. Ele fornece recursos como filtragem e adição de novos itens em tempo real. A parte de codificação é deixada principalmente para os usuários fornecerem. Ao integrar várias bibliotecas aknn, ele tenta ser eficiente.

Ler o cenário Milvus e o blog Milvus pode ser um bom lugar para começar.

A pesquisa elástica é um banco de dados de indexação clássico, frequentemente usado para indexar categorias e texto. Agora tem uma integração hnsw que fornece indexação automática e uso de todos os outros índices estritos de pesquisa elástica. Se as latências em segundos forem aceitáveis, esta pode ser uma boa escolha.

O Vectorhub fornece muitos codificadores (imagem, áudio, texto, …) e um módulo python fácil de usar para recuperá-los. Tem uma rica documentação sobre a construção de sistemas semânticos e este pode ser um bom ponto de partida para explorar codificadores e aprender mais sobre sistemas semânticos.

Haystack é um sistema de ponta a ponta para resposta a perguntas que usa knn para indexação semântica de parágrafos. Ele se integra a muitos modelos de texto (transformadores de rosto abraço, DPR, …) e vários indexadores para fornecer um pipeline de resposta a perguntas completo e flexível. Isso pode servir como um bom exemplo de um sistema de pesquisa semântica específico de modalidade (rendrondo a perguntas de texto).

Esses projetos são ótimos para começar neste tópico, mas todos eles têm desvantagens. Pode ser em termos de escalabilidade, flexibilidade ou escolha de tecnologia. Para ir além da exploração e pequenos projetos e construir projetos de maior escala ou personalizados, muitas vezes é útil criar sistemas personalizados usando os blocos de construção mencionados aqui.

5.2 Do zero

Escrever um sistema de pesquisa semântica pode parecer uma tarefa enorme devido a todas as diferentes partes que são necessárias. Na prática, a versatilidade e a facilidade de uso das bibliotecas para codificação e indexação tornam possível criar um sistema de ponta a ponta em algumas linhas de código. O repositório de incorporação de imagens que eu construí pode ser uma maneira simples de começar a construir um sistema do zero. Você também pode verificar a pequena palavra knn que eu construí como um exemplo simples. O ajudante PBG que construí com um colega também pode ajudar a inicializar o uso de incorporações de gráficos. Este vídeo do CVPR2020 é outro bom tutorial para começar com isso.

De todos os componentes que apresentei neste post, muitos são opcionais: um sistema simples só precisa de um codificador, um indexador e um serviço de serviço simples.

Escrever um sistema do zero pode ser útil para aprender sobre ele, para experimentação, mas também para integrar tal sistema em um ambiente de produção existente. Segmentar a nuvem pode ser uma boa opção, veja este tutorial do google cloud. Também é possível construir esse tipo de sistema em qualquer tipo de sistema de produção.

6. Conclusão

6.1 Além da pesquisa: aprendizado de representação

software 2.0

Além da construção de sistemas de pesquisa semântica, sistemas de recuperação e incorporações fazem parte do campo mais amplo do aprendizado de representação. O aprendizado de representação é uma nova maneira de construir software, às vezes chamado de software 2.0. As incorporações são as partes centrais das redes neurais profundas: elas representam dados como vetores em muitas camadas para eventualmente prever novas informações.

O aprendizado de representação fornece incorporações para recuperação e pesquisa semântica, mas, em alguns casos, a recuperação também pode ajudar no aprendizado de representação:

  • Usando a recuperação como parte do treinamento: em vez de pré-gerar exemplos negativos (para um sistema que usa uma perda tripla, por exemplo), um sistema de recuperação pode ser usado diretamente no treinamento (isso pode ser feito, por exemplo, com a integração entre faiss e PyTorch)
  • Usando a recuperação como uma maneira de criar conjuntos de dados: exemplos semelhantes podem ser recuperados como parte de um pipeline de aumento de dados

6.2 O que vem a seguir?

Como vimos neste post, os sistemas de recuperação são fáceis de construir e realmente poderosos, encorajo você a brincar com eles e pensar em como eles poderiam ser usados para muitos aplicativos e ambientes.

A busca e recuperação semântica são áreas de pesquisa ativas e muitas coisas novas aparecerão nos próximos anos:

  • Novos codificadores: o conteúdo 3D está sendo desenvolvido rapidamente, tanto com bibliotecas como PyTorch 3d quanto com artigos impressionantes como PIFuHD
  • A quantificação e a indexação também estão melhorando rapidamente com artigos como Scann e Catalyzer
  • O treinamento de ponta a ponta e a representação multimodal estão progredindo rapidamente com a visão e a linguagem tendo muito progresso: em direção a uma maneira generalizada de construir qualquer representação?
  • Onde os sistemas de recuperação podem viver? Até agora, eles eram principalmente localizados em servidores, mas com o progresso do aknn e da quantização, quais aplicativos eles podem desbloquear nos dispositivos do usuário?
  • Os sistemas de pesquisa semântica também estão progredindo rapidamente: centenas de empresas estão construindo-os, e vários bons sistemas de código aberto estão começando a surgir

 

 

 

Oferta de R$ 1: corra para garantir a promoção!

Vocês acharam que não teria mais uma oferta de R$1? É claro que tem! Nesta quinta-feira (07), retornamos com a Oferta de R$1, e o ganhador foi o Lucas Gomes. Hoje, voltamos com tudo com melhor promoção de viagem do Hurb. Dessa vez, a pessoa mais rápida vai se dar muito bem. A pergunta que não quer calar é: como funciona e como participar? Confira abaixo!

🚨 Antes de qualquer coisa, baixe o app, porque essa oferta é exclusiva dessa plataforma! 🚨

Como participar?

1 – Fique atento às nossas redes sociais, a partir das 19h.

O pontapé da dinâmica será nas nossas redes sociais. Fique ligado no Instagram (stories), Facebook (stories) e Twitter. Aproveite para seguir e não perder nada. Nas redes, vamos avisar a hora certinha que a ação vai começar.

2 – Decifre as dicas e procure o pacote no nosso app.

Pegou as dicas? Então chegou a hora de decifrá-las no app.

3 – Nesse pacote, haverá um link ESCONDIDO para a Oferta de R$ 1.

A dica vai te levar para um pacote. Vasculhe esse pacote para encontrar um LINK para a Oferta de R$ 1. Lembrando que o pacote da dica NÃO É a oferta de R$ 1.

4 – Entre na Oferta de R$ 1 e corra para comprar!

Depois de entrar no LINK da Oferta de R$ 1, você precisa CORRER para comprar. Atenção: é apenas uma oferta de R$ 1!

 

Regulamento

A promoção “Oferta de R$1”, também denominada apenas como “Promoção”, é realizada pela Hurb Technologies S.A. (“Hurb”), sediada na Av. João Cabral de Mello Neto, nº 400, 7º andar, Península Corporate, Barra da Tijuca, cidade e estado do Rio de Janeiro, CEP 22775-057, inscrito no CNPJ/ME sob o nº 12.954.744/0001-24. Todas as pessoas físicas, residentes no Brasil e cadastradas no site www.hurb.com conseguem participar da promoção.

1. MECÂNICA

1.1 No dia 08/12/2023, será disponibilizado no APP 1 pacote turístico com acompanhante, no valor de R$ 1,00 (um real). Esse pacote promocional será adquirido pelo primeiro usuário que conseguir achar e comprar a “Oferta de R$1”, localizada no APP.

1.2 Neste ano, para ganhar uma viagem por R$ 1,00, a pessoa participante deverá encontrar a oferta indicada com a imagem “Oferta de R$1”, disponibilizada exclusivamente no APP, e seguir o Hurb no Pinterest (https://br.pinterest.com/hurb/). Ela chegará a essa oferta a partir da dica disponibilizada no nosso Pinterest.

1.2.1 Nas redes sociais (Instagram [stories], Facebook [stories] e Twitter), o Hurb avisará sobre a dinâmica. Depois, será dada uma dica para a “Oferta de R$1” no nosso Pinterest. A dica direciona para uma oferta no APP. No regulamento dessa oferta, haverá o link para a “Oferta de R$ 1”.

1.2.2 Encontrando o link, é necessário comprar a “Oferta de R$ 1”. Lembrando que a “Oferta de R$1” é exclusiva do APP.

1.2.3 A “Oferta de R$1” só terá um estoque, então a primeira pessoa que comprar, será o ganhador.

1.3 Após a confirmação do pagamento e a verificação da equipe do Hurb, a pessoa premiada receberá via e-mail, em até cinco dias úteis a contar do pagamento da oferta, um comunicado a respeito. O prêmio garantirá à pessoa vencedora um pacote que contempla: passagens aéreas (ida e volta), para duas pessoas, com o destino descrito no regulamento da oferta e a hospedagem a ser definida pelo Hurb.

1.5 Será uma “Oferta de R$1” no APP do Hurb no dia 08/12/2023. O Hurb poderá, a seu exclusivo critério, adiar ou cancelar a Promoção, avisando previamente pelos mesmos meios em que a mesma foi divulgada inicialmente.

2. REGRAS DE PARTICIPAÇÃO

2.1 A “Oferta de R$1” divulgada no mês de dezembro poderá ser adquirida por pessoas físicas capazes, declaradas maiores de 18 anos e residentes no Brasil.

2.2 A “Oferta de R$1” a ser divulgada também poderá ser adquirida por seu valor de mercado, por pessoas físicas capazes, declaradas maiores de 18 anos, residentes no Brasil.

2.3 Serão desclassificadas desta Promoção pessoas menores de 18 anos. Igualmente, serão desclassificadas, a qualquer momento, as participações com fraude comprovada, implicando no crime de falsidade ideológica ou
documental. São consideradas fraudes aquelas efetuadas por meio da obtenção de benefício/vantagem de forma ilícita; ou que não cumprirem quaisquer das condições deste Regulamento, incluindo, mas não se limitando, aos
seguintes casos: (i) participação com mais de um CPF, (ii) CPF inválido e (iii) participação que utilize de mecanismos que criem condições irregulares e/ou desleais ou que atentem contra os objetivos e condições de participação
desta Promoção.

2.4 Não poderão participar da Promoção sócios e funcionários do Hurb, bem como seus respectivos cônjuges e parentes em até primeiro grau. As inscrições dessas pessoas serão impedidas após consulta ao banco de dados do Hurb. Quando identificadas, as participações serão invalidadas e desclassificadas imediatamente.

2.5 É vedada a participação de pessoas já contempladas com premiações em ações de marketing do Hurb, similares ou não a esta, nos últimos 24 meses.

2.6 A pessoa vencedora concorda em não participar de outras ações semelhantes do Hurb pelos próximos 24 meses. Essa regra tem como objetivo dar chances a outras pessoas de usufruírem do benefício.

2.7 Na hipótese de desclassificação da pessoa vencedora após o fim da Promoção, o Hurb poderá optar por realizar ou não a ação novamente, na mesma ou em outra data.

2.8 Em caso de ausência de retorno ao e-mail de confirmação da premiação ou não comparecimento ao hotel e voo inclusos na Promoção, será aplicada a política de no-show e a premiação será cancelada. Em nenhuma hipótese, a pessoa contemplada com a “Oferta de R$1” poderá repassar, trocar seu prêmio ou solicitar adiamento da viagem para outra data.

2.10 É de inteira responsabilidade da pessoa que adquirir a “Oferta de R$1” ter em mãos e validar toda a documentação necessária para realizar uma viagem. O Hurb não se responsabiliza por problemas pessoais que impeça o contemplado de viajar, como por exemplo, não estar com passaporte e visto válidos, vacinas exigidas em dias etc.

2.11 Em nenhuma hipótese será possível fazer a revenda da “Oferta de R$1 real” para outra pessoa.

3. PREMIAÇÃO

3.1 A pessoa vencedora receberá um pacote turístico com acompanhante do Hurb, com validade pré-determinada, para um destino nacional ou internacional, em data a ser agendada conforme disponibilidade e regras específicas detalhadas no regulamento do pacote no site do Hurb. O prêmio inclui:
Aéreo: passagens aéreas de ida e volta para a cidade destino do pacote ofertado, mediante disponibilidade.
Hospedagem: a ser definida pelo Hurb, respeitando as regras do pacote da ação.
As demais informações a respeito do pacote turístico estarão detalhadas na confirmação a ser enviada pelo Hurb, após a compra no valor de R$ 1,00.

3.2 Será exigido da pessoa vencedora o envio de um vídeo, para validação do prêmio, com o nome completo, cidade onde mora, instagram, destino contemplado na oferta e breve relato sobre as expectativas e sentimentos ao ganhar a Promoção. O envio deverá ser realizado pelo Instagram do Hurb (@hurb). Ela precisa necessariamente seguir o Pinterest do Hurb.

3.2.1 A pessoa contemplada autoriza, desde já, a utilização do vídeo (mencionado na Cláusula 3.2) pelo Hurb, em qualquer espécie de mídia, com fins comerciais ou publicitários, sem que seja devida nenhuma contraprestação à vencedora.

4. CONSIDERAÇÕES FINAIS

4.1 As pessoas participantes da Promoção declaram estar cientes e de acordo com todos os termos apresentados.
O Hurb se reserva ao direito de alterar qualquer item deste Regulamento, mediante divulgação prévia pelos mesmos meios em que a publicação tenha sido divulgada originalmente.

4.2 O Hurb não será responsável, ainda, por transmissões de computador e/ou celular que estejam incompletas ou que falhem, bem como por falha técnica de qualquer tipo, incluindo, mas não se limitando, ao mau funcionamento eletrônico de qualquer rede, “hardware” ou “software”, a disponibilidade e acesso à internet ou ao site desta Promoção, assim como por qualquer informação incorreta, vírus, falha de programação (bugs) ou violação por terceiros (hackers), falha humana, técnica ou de qualquer outro tipo que possa ocorrer durante o processamento
do cadastro na Promoção, desde que tais acontecimentos não estejam direta ou indiretamente sujeitos ao controle do Hurb, eximindo-se, por conseguinte, de qualquer responsabilidade proveniente de tais fatos e/ou atos.

4.3 Considerando as características inerentes ao ambiente virtual, o Hurb não se responsabiliza por interrupções ou suspensões de conexão ocasionadas por caso fortuito ou de força maior, bem como por cadastros atrasados, incompletos, inválidos, extraviados ou corrompidos, os quais serão desconsiderados, desde que tais acontecimentos não estejam direta ou indiretamente sujeitos ao controle do Hurb.

4.4 O Hurb não se responsabilizará pelas inscrições que não forem realizadas por problemas na transmissão de dados, no servidor, nas linhas telefônicas ou em provedores de acesso aos usuários ou ainda por falta de energia elétrica, sem exclusão das demais situações decorrentes de caso fortuito ou de força maior. Além disso, nenhuma responsabilidade será assumida pelo Hurb no decorrer e posteriormente ao período de participação nesta Promoção ou durante a utilização do prêmio, por atos ou omissões de terceiros, incluindo, mas não se limitando a outros concorrentes, prestadores de serviços, fornecedores de produtos, bem como por quaisquer condições, fatos ou circunstâncias relacionados à participação dos concorrentes ou ao uso de qualquer porção do prêmio e/ou outras ações requeridas para a efetiva participação nesta Promoção.

Google Maps by Hurb: descubra o melhor de cada destino 

Ouça o áudio:

https://blog.hurb.com/wp-content/uploads/2023/09/Google-Maps-by-Hurb.mp3?_=1

 

Você já sonhou em explorar o mundo, mas não sabia por onde começar? Agora, com o Hurb, a sua jornada ficou mais fácil do que nunca! Isso porque somos a única empresa do setor de turismo a adotar uma incrível ferramenta que vai transformar a maneira como você planeja as suas viagens: o Google Maps. Bora ver como funciona o Google Maps by Hurb? 

Descubra os tesouros escondidos

Por meio dessa iniciativa, você pode se aventurar pelos principais pontos turísticos de várias regiões do mundo com confiança. Não importa se você está planejando uma escapada urbana ou uma viagem para a natureza, o Google Maps está repleto de informações sobre os melhores lugares que cada destino tem a oferecer. Nós compilamos essas informações de forma fácil de acessar, para que você possa planejar suas viagens com tranquilidade.

A sua melhor experiência

Acreditamos que a sua viagem começa antes mesmo de você sair de casa, e é por isso que investimos na integração com o Google Maps. Agora, com apenas alguns cliques, você pode explorar imagens deslumbrantes, ler avaliações de outros viajantes e conhecer os segredos bem guardados de cada destino. Essa ferramenta permite que você mergulhe profundamente em cada local e planeje uma experiência autêntica e personalizada.

Navegue com facilidade

A nossa parceria com o Google Maps torna mais fácil do que nunca navegar pelos destinos que você deseja explorar. Não importa se você está no seu computador, tablet ou smartphone, o Google Maps é uma ferramenta versátil que o acompanha em todos os lugares. Você pode criar rotas personalizadas, encontrar restaurantes locais e até mesmo descobrir eventos culturais que estão acontecendo nas proximidades.

Os destinos 

A iniciativa já conta com 12 destinos: Foz do Iguaçu, São Paulo, Salvador, Rio de Janeiro, Maceió, Orlando, Cancún, Paris, Nova York, Roma, Gramado e Canela. Veja o perfil do Hurb no Google Maps!

Então, o que você está esperando? Explore o mundo com o Hurb by Google Maps e comece a criar memórias inesquecíveis em destinos ao redor do mundo. Junte-se a nós! Sua próxima grande aventura está a apenas um clique de distância!

Alok faz o maior show de sua vida sob os olhares de Ayrton Senna

Alok fez o show mais importante de sua vida na praia de Copacabana. O espetáculo foi grandioso com um palco 360º em forma de pirâmide, de 30 metros de altura, além de performances de drones, fogos de artifício e jogo de luzes. Para convidar a todos para esse momento tão relevante, Alok se inspirou na estátua do Ayrton Senna que colocamos por lá.

Senna é inspiração para todos os brasileiros. Um homem que transcendeu as barreiras do esporte e se tornou um ícone mundial. Não foi à toa que o Alok se emocionou ao ver a estátua e abriu seu convite com ela no Instagram.

Inspirar os brasileiros está na essência do Hurb. Temos orgulho de onde somos e sabemos que temos potencial para se destacar em qualquer lugar do mundo. Senna nos ensinou essa lição.

Por isso, embalado pelo post do Alok, vamos separar alguns ensinamentos que aprendemos com o Senna.

  • Paixão e dedicação – Ayrton era apaixonado pelo que fazia e ensinou que não há limites quando se dedica de corpo e alma ao que se faz.
  • Superação de desafios – Desistir nunca foi uma opção. Não importa quão difícil seja a jornada, é possível alcançar o sucesso através da resiliência.
  • Orgulho nacional – Senna levou a bandeira do Brasil a todos os lugares que ele queria. Muitas vezes, esse lugar era o topo do pódio.
  • Filantropia e solidariedade – Mostrou aos brasileiros a importância de retribuir à sociedade e de usar sua fama e fortuna para causas nobres. Sua fundação dá acesso à educação para milhares de crianças.