Experimentando recomendação baseada em sessões
A recomendação baseada em sessões pode ser examinada sob três perspectivas: SBR, aprendizado de contexto global e GSLA (consulte a Tabela de Materiais). Nenhum participante humano ou animal foi envolvido neste estudo. Todos os conjuntos de dados experimentais utilizados neste trabalho estão publicamente disponíveis e foram enviados como Arquivo Suplementar: GSLA4Rec. zip.
Recomendação baseada em sessão
A recomendação baseada em sessões (SBR) era um sistema de inteligência artificial que interagia com os usuários por meio de diálogos naturais de múltiplas rodadas para compreender dinamicamente as preferências dos usuários e fornecer recomendações personalizadas. A SBR evoluiu desde métodos tradicionais até abordagens baseadas em aprendizado profundo e híbridas, avançando posteriormente em direção a soluções baseadas em Modelos de Linguagem de Grande Porte (LLM).
Recomendação tradicional baseada em sessões
O SBR tradicional era tipicamente representado por métodos baseados em Cadeias de Markov e Filtragem Colaborativa. O primeiro gerava recomendações por meio da decomposição de matrizes de transição probabilísticas específicas do usuário. Por exemplo, Guy Shani24 propôs um método de recomendação baseado em Processo de Decisão de Markov que produzia recomendações pela decomposição de matrizes correspondentes; Wanrong Gu25 aprimorou o desempenho das recomendações integrando Cadeias de Markov com intervalos de tempo de compra. O segundo gerava recomendações extraindo relações sequenciais ocultas entre itens interativos adjacentes por meio da fatoração de matrizes. Por exemplo, Sarwar B1 calculou a similaridade entre itens com base no histórico de comportamentos dos usuários (como pontuações e cliques) para recomendar itens compatíveis com as preferências anteriores dos usuários. Se o usuário A gostasse do item a, e o item c fosse altamente semelhante a a, o sistema recomendaria c ao usuário A; Rendle S5 propôs o FPMC, um modelo de recomendação sequencial que combina fatoração de matrizes com Cadeias de Markov, para capturar relações sequenciais ocultas entre itens interativos adjacentes. No entanto, esse SBR tradicional focava nas relações sequenciais entre itens adjacentes, tornando difícil modelar relações de dependência complexas.
Recomendação baseada em sessões com aprendizado profundo
A recomendação baseada em sessões com aprendizado profundo evoluiu por etapas que envolveram Redes Neurais Convolucionais (CNNs)26,27,28,29, RNNs e GNNs. A RBS baseada em CNN utilizou operações como convolução e agrupamento para aprender representações de cada contexto de sessão, que foram então usadas para recomendações subsequentes. O Caser30 converteu os L itens mais recentes com os quais um usuário interagiu em vetores d-dimensionais por meio de uma camada de incorporação, formando uma matriz de incorporação tratada como uma "imagem" mapeada no tempo e no espaço latente. Em seguida, utilizou três filtros convolucionais de padrões sequenciais — em nível pontual, em nível de união sem salto e em nível de união com um salto — para aprender padrões sequenciais e melhorar o desempenho da RBS. Tuan et al.31 modelaram uniformemente fluxos de cliques de sessão e características de conteúdo por meio de kernels convolucionais 3D para formar representações conjuntas espaço-temporais e de conteúdo.
As RNNs eram uma classe de arquiteturas de redes neurais projetadas especificamente para processar dados sequenciais. A ideia central era capturar dependências temporais por meio de estruturas recorrentes, como as redes de memória de longo prazo de curto prazo (LSTM)13 e as unidades recorrentes com portas (GRUs)32, sendo amplamente utilizadas em áreas como processamento de linguagem natural (NLP)33, reconhecimento de fala34, tradução de texto35, viagens36,37, criminalidade38, e previsão de tendências futuras39 (por exemplo, tráfego40, mercados de ações41,42 e meteorologia43). O GRU4Rec, proposto por Hidasi et al., foi um marco na pesquisa em SBR, sendo o primeiro a introduzir RNNs nesse campo e a capturar os padrões comportamentais sequenciais dos usuários por meio da GRU para alcançar recomendações personalizadas.
As RNNs44 demonstraram grande poder de representação na modelagem de relações complexas em dados com estrutura de grafo, e alguns pesquisadores introduziram RNNs para modelar transições complexas dentro ou entre sessões. Dependendo das diferentes arquiteturas de modelos de RNNs, os métodos baseados em RNNs para recomendação de sessões (SBR) foram geralmente categorizados em redes neurais de grafo com portas (GGNNs)45, redes convolucionais de grafo (GCNs)46 e redes de atenção em grafo (GATs)47. O SR-GNN foi o primeiro a aplicar RNNs ao SBR representando sequências de sessões como grafos direcionados e utilizando GGNNs para capturar relações complexas de transição entre itens dentro das sessões, combinado com mecanismos de atenção para obter o embedding final da sessão, melhorando assim o desempenho da recomendação. Chen L48 propôs um framework de RNNs com múltiplas visões que combina atributos estruturados e palavras-chave não estruturadas para modelar associações de produtos multidimensionais, aumentando a precisão do SBR. Driss E49 projetou um sistema inovador de recomendação de sessões que adota redes neurais de cápsulas em grafos para capturar características complexas dos itens e aprimorar a precisão da predição no SBR.
As técnicas de aprendizado profundo mencionadas anteriormente enriqueceram o escopo de pesquisa do SBR e melhoraram efetivamente o desempenho, mas ainda apresentavam certas limitações, manifestadas principalmente em: 1) Para itens recém-emergentes ou sessões muito esparsas, era difícil para os modelos fazerem previsões precisas devido à falta de contexto global; 2) Eles não conseguiam aproveitar os padrões globais contidos em todas as sessões históricas.
Recomendação híbrida baseada em sessões
A recomendação híbrida baseada em sessões integrou os pontos fortes de diferentes técnicas, como filtragem colaborativa, aprendizado profundo e mecanismos de atenção, para melhorar o desempenho da SBR. O GC-SAN50 incorporou um mecanismo de autoatenção baseado no SR-GNN para capturar melhor as informações de interação de itens importantes dentro de uma sessão. O FGNN51 agregou ainda mais informações de itens vizinhos por meio de um mecanismo de atenção com múltiplos cabeçotes, aprendendo múltiplas relações do item alvo. O SR-HetGNN52 pertencia à SBR com grafos heterogêneos; ao introduzir itens de múltiplos tipos (usuário, item, sessão) e arestas multirrelacionais (clique, compra, coocorrência, associação de atributos), construiu uma rede de conhecimento global, superando a limitação de sequências de itens únicos, tornando-se um método importante para modelar o comportamento de usuários anônimos e associações de interesses entre sessões nos últimos anos. O KGSR-SAP53 construiu um grafo de conhecimento conectando itens com arestas de múltiplas relações, descrevendo diversas interações entre usuário e item, resolvendo o problema de perda de informação em que o grafo global contém apenas arestas de um único tipo (interação usuário-item). Wang ZH54 propôs o DiffSBR, um modelo de recomendação de sessão baseado em difusão. Ele gera preferências confiáveis de próximos itens simulando a remoção de ruído, melhorando a modelagem de sequências dinâmicas de cliques do usuário. Qiao ST55 desenvolveu uma estrutura de SBR que combina aprendizado de intenção multivisão e alinhamento com modelos de linguagem grandes (LLM). Essa abordagem explorou a intenção implícita do usuário a partir de diversas perspectivas e utilizou modelos de linguagem para alinhar características semânticas, melhorando ainda mais o desempenho da recomendação.
Contexto global
Para superar a limitação da "análise de sessões isoladas", os pesquisadores perceberam que a informação global poderia ser utilizada para aprimorar a capacidade de representação da sessão atual, resolvendo assim problemas como esparsidade de dados, início a frio e lacuna semântica em métodos tradicionais de SBR. Ao mesmo tempo, na construção do contexto global, era necessário integrar informações globais em uma única sessão minimizando a interferência de ruídos. O CSRM56 otimizou a representação em nível de sessão integrando informações colaborativas entre a sessão atual e sessões vizinhas, utilizando um codificador de memória externa (OME) para extrair intenções colaborativas a partir dessas informações. O CA-TCN57 propôs um modelo de rede convolucional temporal com percepção inter-sessões, construindo grafos globais e grafos de contexto de sessão para simular o impacto das interações entre sessões sobre itens e sessões, enquanto a rede convolucional temporal (TCN) expande o campo receptivo por meio de convoluções dilatadas, com o número de camadas cobrindo sequências de comprimento exponencial (campo receptivo = ), solucionando o problema de desvanecimento de gradiente dos RNNs. Chen58 propôs um método de SBR baseado em redes neurais de hipergrafos (SR-HGNNs), que integra propagação de ordem mista (baixa e alta ordem) e mecanismos de atenção para resolver o problema de super-suavização das GNNs tradicionais em sessões curtas e distinguir a importância de diferentes ordens de propagação, podendo capturar dependências com maior precisão e evitar interferência de ruídos. O GCE-GNN utilizou pares de itens coocorrentes de múltiplas ordens para construir um grafo ponderado não direcionado, contando as frequências de coocorrência de itens para refletir sua importância na sessão; o AGNN-GC59 utilizou relações de transição de itens entre sessões para construir um grafo colaborativo global, calculando as probabilidades de transição de itens no grafo global para refletir mudanças de interesse na sessão; o DA-GCN60 utilizou o caminho mais curto para atualizar a matriz de adjacência e construir um grafo ponderado dinâmico, calculando a frequência de coocorrência no grafo global e a distância de caminho entre os itens. Inspirado pela literatura acima, este artigo propõe a construção de um grafo global por meio de um método baseado em vizinhança, ou seja, utilizando o coeficiente de similaridade de Jaccard para calcular sessões semelhantes, o que não apenas aproveita a informação global, mas também filtra ruídos (eliminando itens irrelevantes), alcançando o objetivo de construir com precisão o contexto global e estabelecendo uma base sólida para o algoritmo subsequente de SBR.
Atenção linear com porta de ranhura
Os transformadores tradicionais61 apresentaram alta complexidade espaciotemporal devido à necessidade de operações de atenção totalmente conectadas em toda a sequência, conforme a seguir:
(1)
Onde Q, K, V ∈ RN×d eram transformações lineares dos itens de entrada, M = {Mij = 1 se i ≥ j, caso contrário −∞} era a máscara causal para impedir vazamento de informações futuras, ⊙ denotava produto elemento a elemento, e f denotava a função de ativação softmax.
Para alcançar a atenção linear62, a ideia mais direta era remover a função de ativação softmax. No entanto, se a função de ativação softmax fosse removida diretamente, a atenção linear certamente levaria a alguns problemas potenciais: perda do poder expressivo poderoso das redes neurais e incapacidade de resolver problemas complexos do mundo real.
Atenção linear com slot e controle de memória limitada
Assumindo que a função de ativação softmax precisasse ser mantida, K e V foram compactados separadamente em K̃, Ṽ ∈ Rm×d. Do ponto de vista da rede de memória, K̃ e Ṽ possuíam posições de memória cujo comprimento aumenta com a sequência, ou seja, o número de posições m = N. Se m fosse fixo, a linearização seria obviamente possível. Inspirado pelo Controle de Memória Limitada63, cada token nos itens de entrada com comprimento N precisava ser escrito de forma competitiva em m posições.
,
,
(2)
Onde f era a função de ativação softmax e φi era o vetor para controlar a entrada efetiva para controlar o valor-chave ki conforme a seguir.
,
(3)
Aqui, (φi)j representava a intensidade de escrita do token i no slot j e foi obtida utilizando uma função softmax cumulativa.
Para alcançar um cálculo linear eficiente, a fórmula (2) foi reescrita como a fórmula (4), que calcula οi a partir de qi, ki e vi (Eq. 4) por meio de {οi|i=1T, qi, ki, vi)|i=1T} e adotou um cálculo sequencial em duas etapas:
,
(4)
Portanto, as operações de SLA poderiam ser derivadas:
,
(5)
Onde oi′ ∈ ℝm, οi ∈ ℝd. Portanto, a SLA poderia adquirir um treinamento eficiente em termos de hardware com tempo linear por segmento64.
Atenção linear com porta de ranhura
A atenção linear em slot com controle de memória limitada poderia reduzir a complexidade computacional e espacial. No entanto, o acúmulo de informações também poderia introduzir ruídos na interação da sessão, de modo que o decaimento dependente dos dados era muito importante para reter e esquecer informações seletivamente, e esse mecanismo seletivo havia sido revisitado em modelos recentes de espaço de estado seletivo65. GSLA com dependência de dados poderia ser expressa como:
,
(6)
Aqui, as portas de decaimento foram parametrizadas por uma forma de produto externo Gi = αi ⊗ βi, αi, βi ∈ [0,1]d. No que segue, GSLA também pode ser escrita na seguinte forma equivalente, definindo-se normalmente βt = 1 e multiplicação matricial como em64:
(7)
Onde αi e ki representavam separadamente o portão de esquecimento e o portão de entrada, os dois portões poderiam ser acoplados como ki = 1 − αi, inspirado na literatura sobre RNNs com portões. Ficou evidente que a GSLA poderia ser formulada com um cálculo sequencial em duas etapas, conforme mostrado na Equação (8). A estrutura de segunda ordem permitia treinamento paralelo em blocos para melhorar a eficiência do treinamento, e a inserção da operação softmax no meio da estrutura de segunda ordem aprimorava a capacidade de modelagem da memória de slots finitos.
,
(8)
Transformação dos dados da sessão
Definição do problema
Seja a sequência de sessão dada S = {v1s, v2s, ⋯, vns}, onde vis denota o i-ésimo item clicado. Ao analisar o comportamento de clique do usuário dentro dessa sequência, o sistema previu o próximo item em que o usuário poderia se interessar, vn+1s.
Construção do grafo
Construção do grafo de sessão
Para uma sessão S = {v1s, v2s, ⋯, vns}, um grafo direcionado Gs = (Vs, εs) foi construído, em que Vs era o conjunto de itens da sessão S fornecida, e εs = {eijlocal|vi, vj, vi, vj ∈ Vs} era o conjunto de arestas da sessão S fornecida. ε(vi-1s, vis) representava os itens clicados consecutivamente nesta sessão. A aresta eijlocal podia ser dividida em quatro tipos: ein, eout, ein-out, eself. Como o mesmo item poderia aparecer repetidamente na sequência, o valor ponderado de cada aresta foi contabilizado.
A sessão atual s = [v1, v2, v4, v2, v3] foi convertida em um SG, conforme mostrado na Figura 1A.

Figura 1: Transformação de itens interativos em estruturas de grafos. (A) Ilustração da construção do grafo de sessão (GS) por meio da transformação de uma sessão em um grafo. (B) Ilustração da construção do grafo global de vizinhos (GGV) combinando várias sessões em um grafo. Esta figura foi criada integralmente pelo autor utilizando o Visio, com elementos totalmente personalizados. Nenhum recurso gráfico externo protegido por direitos autorais foi utilizado; portanto, nenhuma licença adicional de terceiros foi necessária. Os direitos autorais da figura pertencem aos autores e estarão em conformidade com as regras de direitos autorais da revista após a aceitação. Clique aqui para visualizar uma versão maior desta figura.
Construção do grafo global do vizinho
Com base na sessão atual S, o NGG correspondente Gg = (Vg, εg) foi construído para enriquecer a aprendizagem de representação da sessão atual de maneira inter-sessões. Vg era o conjunto de itens contendo todos os itens em Gg, e εg = {eijglobal|vi, vj, vi, vj ∈ Vg} era o conjunto de arestas de Gg. ε(vi-1g, vig) representava os itens interagentes diretamente vi-1g e vig no NGG Gg. Este processo consistia em duas etapas: aquisição da sessão vizinha e construção do NGG.
Aquisição da sessão de vizinhança
Em todo o conjunto de dados, foram pesquisadas as sessões com o número máximo de itens coocorrentes com a sessão atual. As N principais sessões com as maiores contagens de coocorrência foram selecionadas para construir um conjunto candidato de sessões vizinhas S. Posteriormente, o coeficiente de similaridade de Jaccard foi utilizado para calcular a similaridade entre a sessão atual cu e uma sessão Sr ∈ S do conjunto candidato S, conforme mostrado na Equação (9).
(9)
Aqui, co(Scu, Sr) denota o número de itens que ocorrem simultaneamente em Scu e Sr, enquanto l(Scu) e l(Sr) representam, respectivamente, os comprimentos de Scu e Sr, e Scu e Sr denotam a sessão atual e uma sessão vizinha. As sessões com similaridade abaixo de um determinado limiar (que pode ser definido como um hiperparâmetro) foram filtradas, e as sessões restantes constituíram o conjunto de sessões vizinhas Ns para a sessão atual.
Construção do grafo global do vizinho
Com base no conjunto de sessões vizinhas Ns, o GGN foi construído, conforme ilustrado na Figura 1B. Durante a construção da matriz de adjacência, se dois itens (vi, vj) tinham uma interação, a entrada correspondente Aij era definida como 1; caso contrário, era definida como 0. Além disso, as interações entre os itens foram tratadas como não direcionadas e foram equipadas com laços próprios, seguidas por normalização, conforme mostrado na Tabela 1.
| 1 | 2 | 3 | 4 | 5 | 6 |
| 1 | 1/2 | 1/2 | 0 | 0 | 0 | 0 |
| 2 | 0 | 1/4 | 1/4 | 1/2 | 0 | 0 |
| 3 | 0 | 0 | 1 | 0 | 0 | 0 |
| 4 | 0 | 1/4 | 1/2 | 1/4 | 0 | 0 |
| 5 | 0 | 0 | 0 | 0 | 1/3 | 2/3 |
| 6 | 0 | 1/3 | 0 | 1/3 | 0 | 1/3 |
Tabela 1: Matriz de adjacência normalizada do grafo global de vizinhos. A tabela apresenta a matriz de adjacência normalizada que descreve as conexões ponderadas entre os nós no grafo global de vizinhos construído.
Elaboração de algoritmo de recomendação baseado em sessões
Esta seção detalha o modelo inovador proposto GSLA4Rec, que aprimorou o desempenho do SBR ao introduzir o mecanismo GSLA na representação conjunta de características de SG e NGG.

Figura 2: Estrutura do GSLA4Rec. Esta estrutura integrou a aprendizagem da estrutura de grafos de sessão e grafo global de vizinhos, filtrou ruídos de interação com um mecanismo de portão (gating), equilibrou armazenamento e eficiência com um mecanismo de slots de memória e capturou a relevância dos itens com um mecanismo de atenção linear para prever a próxima preferência de clique do usuário. Esta figura foi elaborada pelo próprio autor utilizando o Visio, com elementos totalmente personalizados. Nenhum recurso gráfico externo protegido por direitos autorais foi utilizado, portanto, nenhuma licença adicional de direitos autorais de terceiros foi necessária. Os direitos autorais da figura pertencem aos autores e estarão em conformidade com as regras de direitos autorais da revista após a aceitação. O GSLA4Rec representa redes neurais gráficas com atenção linear com slot e portão (gated-slot linear attention) para SBR. Clique aqui para visualizar uma versão maior desta figura.
Figura 2 apresentou a estrutura do GSLA4Rec, que compreendia quatro componentes principais: 1) Representação de itens no nível da sessão. Utilizava um modelo de GNNs em SG para aprender incorporações de itens no nível da sessão dentro da sessão atual; 2) Representação de itens no nível global dos vizinhos. Aprendia incorporações de itens no nível global em todas as sessões ao empregar uma GRU para incorporar recursivamente as incorporações dos vizinhos de cada item com base no NGG; 3) GSLA. Modelava a preferência dos usuários na sessão atual ao agregar as representações de itens aprendidas nos níveis de sessão e global; 4) Camada de predição. Gerava as probabilidades previstas para os itens candidatos. Os quatro componentes foram apresentados em detalhes a seguir.
Representação da sessão
Em SBR, compreender os comportamentos de interação dos usuários era crucial. Para tanto, um SG e um NGG foram construídos para a aprendizagem de representação de sessão, com o objetivo de compreender de forma abrangente os comportamentos de interação dos usuários e, assim, capturar a intenção mais autêntica dos mesmos.
Representação de itens no nível da sessão
Com base no SG na Figura 1A, um método de Atenção em Grafo Bidirecional com Pesos (WBGAT) foi empregado para extrair características do SG. Este método introduziu pesos nas arestas e direcionalidade dos itens (vizinhos de entrada e vizinhos de saída) com base no mecanismo padrão de GAT, alcançando o efeito de reforçar arestas importantes e capturar dependências bidirecionais, superando assim as limitações do GAT tradicional em relação a relações assimétricas entre itens e intensidade de interação. O processo de cálculo foi o seguinte:
Primeiro, cálculo dos pesos de normalização do grau interno dos itens.
(10)
em que eij indicava o peso da vizinhança de primeira ordem das características do item j para o item i,
era a relação entre o item i e o item j, β* ∈ ℝd eram os vetores de peso, hi e hj eram respectivamente as representações do item i e do item j, Wi(in) ∈ ℝd*d e Wj(in) ∈ ℝd*d eram parâmetros treináveis, || representava a operação de concatenação. Para distinguir diferentes relações de grau de entrada, dois vetores de peso, denominados rin e rin-self, foram treinados. A função de ativação adotada foi a LeakyReLU.
(11)
Para tornar os coeficientes comparáveis entre diferentes itens, os pesos de atenção foram normalizados por meio da função softmax. Onde Ni(in) era o conjunto de vizinhos de primeira ordem do item i,
era o peso do vizinho de entrada da aresta direcionada (i←j) no SG, este método permitiu que o modelo aprendesse as correlações entre características dos itens, ao mesmo tempo que preservava as informações da intensidade intrínseca das conexões na estrutura do grafo, tomando o logaritmo dos pesos das arestas e adicionando-os à pontuação original de atenção eij.
Segundo, cálculo dos pesos de normalização do grau de saída dos itens.
(12)
em que ẽij indicava o peso da vizinhança de primeira ordem das características do item j para o item i,
era a relação entre o item i e j, dois vetores de peso, denominados rout e rout-self, foram treinados.
(13)
Onde Ni(out) era o conjunto de vizinhos de primeira ordem de saída do item i,
era o peso do vizinho de saída da aresta direcionada (i→j) no SG.
Terceiro, agregação de informações. O embedding atualizado do item pode ser obtido após a ponderação e soma dos embeddings de grau de entrada e de grau de saída de primeira ordem do item i.
(14)
Onde
e α̃ij denotam, respectivamente, os pesos do grau de entrada e do grau de saída do item i,
denotou a representação atualizada do item i.
Representação global do item no nível do vizinho
Pesquisas recentes concordam consistentemente que a construção de um grafo global pode aprimorar a representação dos dados e, consequentemente, melhorar o desempenho do SBR, o que é inegável. No entanto, o aprimoramento global dos dados também pode introduzir informações irrelevantes, como ruído. No modelo proposto, para alcançar a ampliação dos dados em nível global minimizando ao máximo o ruído, foi construído um grafo global de vizinhos próximos.
Com base no NGG na Figura 1B e na matriz de adjacência normalizada na Tabela 1, a sessão atual e suas sessões vizinhas foram transformadas em um NGG, e um método GGNNs45 foi aplicado para extrair características do NGG. O processo de aprendizado dos vetores de itens no NGG é mostrado na Equação (15).




(15)
W ∈ ℝd×2d indicava os pesos de controle, zg,i e rg,i representavam a porta de atualização e a porta de redefinição, respectivamente. [h1t-1, ⋯, hnt-1] representava a lista de todos os vetores de itens na sessão s. σ(x) = 1/(1 + e-x) era a função sigmoide logística, ⊙ indicava multiplicação elemento a elemento, e hi ∈ ℝd representava o vetor após a atualização com portas. A matriz de adjacência As ∈ ℝn×n indicava a conectividade entre os itens em sessões vizinhas, e As,i: ∈ ℝ1×n representava um bloco de coluna de As correspondente ao item vs,i na matriz de adjacência. Para a sessão atual s = [v1, v2, v4, v2, v3], o NGG e a matriz de adjacência normalizada foram mostrados na Figura 1B e na Tabela 1, respectivamente.
Representação do item
A representação do item foi obtida somando o vetor do item no nível da sessão e o vetor do item no nível global do vizinho, conforme mostrado na Equação (16):

(16)
Onde a eliminação foi utilizada em representações de itens vizinhos em nível global para atenuar o sobreajuste.
Atenção linear com porta de ranhura
A atenção linear com slot com porta (GSLA, na sigla em inglês) neste artigo integrou a atenção linear com controle de memória limitada e um mecanismo de portas dependente dos dados. Por um lado, herdou o mecanismo de slot de memória finita do modelo de controlador baseado em atenção (ABC, na sigla em inglês), que comprime pares chave-valor, originalmente crescentes com o comprimento da sequência, em um número fixo de slots, sendo cada slot atualizado por meio de escrita competitiva, resolvendo assim o problema de complexidade computacional da atenção global do transformador. Por outro lado, introduziu um mecanismo de portas em nível refinado, semelhante ao da GLA, no qual os dados de entrada ajustam dinamicamente a taxa de retenção das informações históricas por meio de uma porta de esquecimento αi, solucionando o problema de ruído causado pela ausência de um mecanismo de esquecimento no ABC.

Figura 3: Diagrama esquemático do GSLA. O vetor de entrada foi mapeado para o vetor de consulta, vetor de palavras-chave e vetor de valor, respectivamente, e então processado pela atenção linear com controle de memória limitada e um mecanismo de comporta dependente de dados para obter o vetor de consulta atualizado, vetor de palavras-chave, vetor de valor e vetor de saída. Esta figura foi desenhada pelo próprio autor usando o Visio, com elementos totalmente personalizados. Nenhum recurso gráfico externo protegido por direitos autorais foi utilizado; portanto, nenhuma licença adicional de direitos autorais de terceiros foi necessária. Os direitos autorais da figura pertencem aos autores e estarão em conformidade com as regras de direitos autorais da revista após a aceitação. GSLA representa a atenção linear com comporta e ranhuras. Clique aqui para visualizar uma versão maior desta figura.
Conforme implementado especificamente na Figura 3, o vetor de entrada foi mapeado separadamente em vetor de consulta, vetor de chave e vetor de valor64:
(17)
Onde Wq, Wk, Wv ∈ ℝd×d representavam as matrizes de pesos de transformação correspondentes à consulta, chave e valor, respectivamente, e ht denotava o vetor de incorporação no t-ésimo passo de tempo da sequência de entrada da sessão. A função Swish foi definida como Swish(x) = x · σ(x) e era uma função de ativação com porta própria, onde σ era a função Sigmoide; ela superou a função de ativação ReLU tradicional em múltiplas tarefas de Aprendizado Profundo.
O GSLA utilizou um portão de esquecimento αi e um portão de entrada 1 − αi, dependendo dos dados de entrada, para atualizar dinamicamente as informações no iº compartimento de memória. O processo foi o seguinte64:
(18)
(19)
Aqui, K̃t e Ṽt representavam os slots dos vetores de chave e os slots dos vetores de valor no passo de tempo t, enquanto K̃t-1 e Ṽt-1 representavam os slots dos vetores de chave e os slots dos vetores de valor no passo de tempo t−1. A porta de esquecimento αi = σ(Wαht)1/τ, onde Wα ∈ ℝd era a matriz de pesos de transformação, σ era a função Sigmoide e τ era o coeficiente de amortecimento (geralmente definido como 8), utilizada para controlar a suavidade da porta de esquecimento. Isso permitia que a GSLA ajustasse suavemente a taxa de esquecimento das informações históricas: quanto maior o valor de αi, mais a GSLA dependia das informações históricas; quanto menor o valor de αi, mais a GSLA focava na entrada atual.
Os slots do vetor chave K̃t e os slots do vetor valor Ṽt dos slots na etapa t foram escritos na forma matricial, conforme mostrado65 nas Equações (20) e (21):
(20)
(21)
Em seguida, a GSLA com propriedades de segunda ordem (consulte a Equação (8)) foi utilizada para calcular a saída oi |i=1T para cada passo de tempo i ∈ [1, …, T]. Uma transformação linear foi aplicada à saída de cada passo de tempo para obter o resultado h̃t. Por fim, o valor médio das representações de todos os itens na sequência da sessão foi calculado para gerar o embedding da sessão S̃e com atualizações de memória dinâmica:
(22)
(23)
Aqui, ot representava a saída do Gated-Slot no passo de tempo t, h̃t indicava o resultado da transformação linear aplicada a ot. S̃e indicava o valor médio de h̃t em todos os passos de tempo.
Camada de predição
Com base na representação da sessão obtida S̃e e no embedding inicial do item i, foi realizada uma operação de produto escalar para calcular a pontuação de cada item candidato hi. Posteriormente, a função softmax foi utilizada para obter as probabilidades de recomendação do item candidato i:
(24)
Aqui, ỹ representava as probabilidades de recomendação do item candidato, hi denotava o vetor do item candidato, e a função de perda de entropia cruzada foi empregada para o treinamento do modelo.
(25)
Aqui, y era a representação codificada one-hot da verdade fundamental.