BR112019008135A2 - método implementado por computador, meio legível por computador e sistema implementado por computador - Google Patents

método implementado por computador, meio legível por computador e sistema implementado por computador Download PDF

Info

Publication number
BR112019008135A2
BR112019008135A2 BR112019008135-6A BR112019008135A BR112019008135A2 BR 112019008135 A2 BR112019008135 A2 BR 112019008135A2 BR 112019008135 A BR112019008135 A BR 112019008135A BR 112019008135 A2 BR112019008135 A2 BR 112019008135A2
Authority
BR
Brazil
Prior art keywords
data
social network
user
item
platform
Prior art date
Application number
BR112019008135-6A
Other languages
English (en)
Other versions
BR112019008135B1 (pt
Inventor
Chaochao Chen
Jun Zhou
Original Assignee
Advanced New Technologies Co., Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Advanced New Technologies Co., Ltd. filed Critical Advanced New Technologies Co., Ltd.
Publication of BR112019008135A2 publication Critical patent/BR112019008135A2/pt
Publication of BR112019008135B1 publication Critical patent/BR112019008135B1/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0282Rating or review of business operators or products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9536Search customisation based on social or collaborative filtering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6254Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6263Protecting personal data, e.g. for financial or medical purposes during internet communication, e.g. revealing personal data from cookies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0201Market modelling; Market analysis; Collecting market data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0251Targeted advertisements
    • G06Q30/0263Targeted advertisements based upon Internet or website rating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0623Item investigation
    • G06Q30/0625Directed, with specific intent or strategy
    • G06Q30/0627Directed, with specific intent or strategy using item specifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0631Item recommendations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/50Oblivious transfer

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Strategic Management (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • General Engineering & Computer Science (AREA)
  • Development Economics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • General Business, Economics & Management (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • Mathematical Physics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Tourism & Hospitality (AREA)
  • Game Theory and Decision Science (AREA)
  • Human Resources & Organizations (AREA)
  • Primary Health Care (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Medical Informatics (AREA)
  • Algebra (AREA)
  • Operations Research (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Storage Device Security (AREA)

Abstract

“método implementado por computador, meio não transitório legível por computadore sistema implementado por computador” a presente invenção se referea uma plataforma de recomendação e de classificação de itensque identifica os dados de classificação, incluindo as classificações respectivasde diversositens em relação a diversosusuários; identifica os dados de característica do usuário, incluindo ascaracterísticas do usuário, contribuindo para as classificações respectivasdos diversositens em relação aos diversosusuários; e recebe, a partir de uma plataforma de rede social por meio de um esquema de compartilhamento secreto sem um inicializador de confiança, os dados manipulados de rede socialcomputados com base em dados de rede sociale um primeiro número de variáveis aleatórias. os dados de rede socialindicam as relaçõessociais entre quaisquer dois do número de usuários. no esquema de compartilhamento secreto sem o inicializador de confiança, a plataforma de rede social compartilha com a plataforma de recomendação e de classificação de itens,os dados manipulados de rede socialsem revelaros dados de rede social. a plataforma de recomendação e de classificação de itensatualiza os dados de característica do usuáriocom base nos dados de classificação e nos dados manipulados de rede social

Description

“MÉTODO IMPLEMENTADO POR COMPUTADOR, MEIO LEGÍVEL POR COMPUTADOR E SISTEMA IMPLEMENTADO POR COMPUTADOR” CAMPO DA INVENÇÃO
[001] A presente invenção descreve os métodos e sistemas para o compartilhamento secreto sem um inicializador de confiança, por exemplo, entre duas plataformas para fornecer as recomendações sociais.
ANTECEDENTES DA INVENÇÃO
[002] Com o desenvolvimento da tecnologia e análise de dados, muitas plataformas online coletam diferentes tipos de dados. Por exemplo, as plataformas de classificação de filmes coletam dados de classificação dos usuários, enquanto as plataformas de meios sociais coletam os dados de rede social dos usuários. Esses dados coletados são valiosos e, em geral, são mantidos como informações privadas pelas plataformas respectivas. As plataformas estão prestando cada vez mais atenção à privacidade dos dados e não necessariamente querem compartilhar seus dados coletados, pelo menos, não em sua forma original.
DESCRIÇÃO DA INVENÇÃO
[003] Em uma realização, um método implementado por computador, inclui: identificar, através de uma plataforma de recomendação e de classificação de itens, os dados de classificação, incluindo as classificações respectivas de um número de itens em relação a um número de usuários; identificar, através da plataforma de recomendação e de classificação de itens, os dados de característica do usuário, incluindo um número de características do usuário contribuindo para as classificações respectivas do número de itens em relação ao número de usuários; receber, a partir de uma plataforma de rede social através da plataforma de recomendação e de classificação de itens por meio de um esquema de compartilhamento secreto sem um inicializador de confiança, um número de dados manipulados de rede social computados com base em dados de rede social e um primeiro número de variáveis aleatórias, em que os dados de rede social indicam as relações sociais entre quaisquer dois do número de usuários, em que, no esquema de compartilhamento secreto sem o inicializador de confiança, a plataforma de rede social compartilha com a plataforma de recomendação e de classificação de itens o número de dados manipulados de rede social sem revelar os dados de rede social; e atualizar, através da plataforma de recomendação e de classificação de itens, os dados de característica do usuário com base nos dados de classificação e no número de dados manipulados de rede social.
[004] A realização descrita anteriormente é implementável utilizando um método implementado por computador; um meio não transitório, legível por computador, que armazena as instruções legíveis por computador para realizar o método implementado por computador; e um sistema implementado por computador, incluindo uma memória de computador, interoperacionalmente acoplada a um processador de hardware configurado para realizar o método implementado por computador / as instruções armazenadas no meio não transitório, legível por computador.
[005] O assunto descrito na presente invenção pode ser implementado em realizações específicas, de maneira a apresentar uma ou mais das seguintes vantagens. Em primeiro lugar, as técnicas descritas possibilitam que diferentes plataformas colaborem de maneira segura no compartilhamento secreto sem revelar os dados privados ou confidenciais, o que incentiva a integração e a colaboração entre as plataformas sem comprometer a privacidade dos dados. Em segundo lugar, uma vez que grande parte do trabalho pode ser realizado por diversas plataformas antes de aplicar o esquema de compartilhamento secreto, as técnicas descritas possibilitam atividades de desenvolvimento comuns mais eficientes (tal como, com relação ao tempo, ciclos de processador, utilização de memória e banda larga/ congestionamento de rede) ou as atividades não suportadas pelas plataformas online atuais. Em terceiro lugar, as técnicas descritas podem fornecer os modelos de recomendação aprimorados das plataformas de recomendação e de classificação de itens e fornecer as recomendações mais direcionadas (tal como uma plataforma de recomendação de filmes que fornece as recomendações mais relevantes aos usuários, alavancando os dados de rede social obtidos de uma plataforma de meios sociais). Em quarto lugar, as técnicas descritas possibilitam que as plataformas colaborem sem a sobrecarga de uma autoridade confiável. Outras vantagens serão evidentes para os técnicos no assunto.
[006] Os detalhes de uma ou mais realizações do assunto da presente invenção são apresentados na Descrição Detalhada da Invenção, nas reivindicações, e nas Figuras anexas, e nas reivindicações. Outras características, aspectos e vantagens do assunto serão evidenciados a partir da Descrição Detalhada da Invenção, das reivindicações e das Figuras anexas.
BREVE DESCRIÇÃO DAS FIGURAS
[007] A Figura 1 é um diagrama de blocos que ilustra um sistema de exemplo para o compartilhamento secreto entre a plataforma A e a plataforma B sem um inicializador de confiança, de acordo com uma realização da presente invenção.
[008] A Figura 2 é um fluxograma ilustrando um exemplo de método de compartilhamento secreto entre a plataforma A e a plataforma B sem um inicializador de confiança para gerar as recomendações pela plataforma A, de acordo com uma realização da presente invenção.
[009] A Figura 3 é um fluxograma que ilustra um exemplo de método de compartilhamento secreto entre a plataforma A e a plataforma B para calcular um elemento 𝑍𝑖𝑗 de um produto de matriz da matriz A e matriz B utilizando um esquema de compartilhamento secreto sem um inicializador de confiança, de acordo com uma realização da presente invenção.
[010] A Figura 4 é um fluxograma que ilustra um exemplo de método para a geração de uma recomendação através de uma plataforma de recomendação e de classificação de itens utilizando um esquema de compartilhamento secreto sem um inicializador de confiança, de acordo com uma realização da presente invenção.
[011] Figura 5 é um diagrama de blocos que ilustra um sistema de computador de exemplo utilizado para fornecer as funcionalidades computacionais associadas aos algoritmos, métodos, funções, processos, fluxos e procedimentos, conforme descritos na presente invenção, de acordo com uma realização da presente invenção.
[012] Os números de referência e designações similares nos diversos desenhos indicam elementos similares.
DESCRIÇÃO DE REALIZAÇÕES DA INVENÇÃO
[013] A descrição detalhada da invenção a seguir descreve o compartilhamento secreto sem um inicializador de confiança, por exemplo, entre duas plataformas para fornecer as recomendações aos usuários com base em dados de rede social, e é apresentado para possibilitar que qualquer técnico no assunto realize e utilize o assunto descrito no contexto de uma ou mais realizações específicas. Podem ser realizadas diversas modificações, alterações e permutações das realizações descritas e serão facilmente evidentes para os técnicos no assunto, e os princípios gerais definidos no presente podem ser aplicados a outras realizações e aplicações, sem se afastarem do âmbito da presente invenção. Em alguns casos, os detalhes desnecessários para obter uma compreensão do assunto descrito podem ser omitidos de maneira a não obscurecer uma ou mais realizações descritas com os detalhes desnecessários e na medida em que tais detalhes estão dentro das habilidades de um técnico no assunto. A presente invenção não se destina a ser limitada às realizações descritas ou ilustradas, mas deve estar de acordo com o âmbito mais amplo consistente com os princípios e características descritos.
[014] Entre muitas plataformas online, diferentes plataformas podem acumular diferentes tipos de dados. Por exemplo, uma plataforma de recomendação e de classificação de itens, tal como o NETFLIX ou o IMDB, acumula os dados de classificação dos usuários em relação a filmes e séries de TV. Uma plataforma de meios sociais ou de rede social, tal como o FACEBOOK ou o TWITTER, acumula os dados de rede social dos usuários e de seus amigos.
A informação social pode aprimorar o desempenho de um sistema de recomendação uma vez que os amigos próximos tendem a apresentar preferências similares. Os métodos de recomendação com base em redes sociais existentes pressupõem que os dados de classificação do usuário de um item e os dados sociais entre os usuários são compartilhados. No entanto, devido à privacidade dos dados ou outras preocupações, as plataformas online normalmente não compartilham seus dados originais com outras partes.
[015] Estão descritas as técnicas de exemplo que possibilitam que as plataformas colaborem de maneira segura na criação de um sistema de recomendação aprimorado com base nos dados de classificação e nos dados de rede social, sem revelar os dados privados de cada plataforma para a outra. Por exemplo, um modelo de recomendação social pode ser treinado com base nos dados de classificação e nos dados de rede social por meio de um esquema de compartilhamento secreto entre uma plataforma de recomendação e de classificação de itens e uma plataforma de rede social. Sob o esquema de compartilhamento secreto, os dados trocados entre as plataformas estão em uma forma manipulada, ao invés de sua forma original. Os dados trocados são manipulados de tal maneira que não se pode recuperar ou decodificar os dados originais dos dados manipulados.
[016] O esquema de compartilhamento secreto é diferente de codificação, criptografia ou outros esquemas para transmissão segura de dados em que uma fonte de dados (por exemplo, tal como um transmissor) codifica ou criptografa os dados originais em uma forma codificada antes da transmissão, e um destinatário pretendido pode decodificar ou recuperar os dados originais a partir dos dados codificados recebidos, por exemplo, com base em uma chave de segurança conhecida ou em um algoritmo de decodificação correspondente.
O esquema de compartilhamento secreto protege os dados originais de serem conhecidos até mesmo por um destinatário pretendido. Como tal, a fonte de dados pode preservar a privacidade dos dados originais.
[017] O esquema de compartilhamento secreto, por conseguinte, encoraja a colaboração entre diferentes plataformas e pode auxiliar a obter benefícios mútuos, sem comprometer a privacidade dos dados. Por exemplo, com o esquema de compartilhamento secreto descrito, a plataforma de recomendação e de classificação de itens pode alavancar as informações de rede social da plataforma de rede social para melhor prever as necessidades de um usuário e fornecer as recomendações direcionadas aos usuários, resultando em experiência intensificada do usuário e o lucro potencial retorna para a plataforma de recomendação e de classificação de itens.
[018] A Figura 1 é um diagrama de blocos que ilustra um sistema de exemplo (100) para o compartilhamento secreto entre a plataforma A (102) e a plataforma B (104), de acordo com uma realização da presente invenção. A plataforma A (102) pode incluir, mas não está limitada a uma plataforma de recomendação e de classificação de itens em setores de entretenimento, varejo, serviço e indústria ou os setores em que os usuários podem classificar os produtos, serviços ou outros itens. Os exemplos de uma plataforma de recomendação e de classificação de itens, por exemplo, incluem a AMAZON, NETFLIX ou IMDB. A plataforma A (102) pode coletar os dados de classificação R a partir de seus usuários. Os dados de classificação R podem incluir uma ou mais classificações reais de um ou mais itens (por exemplo, os produtos ou serviços) fornecidos pelos usuários ou uma ou mais classificações mapeadas com base nos cliques, compras, pesquisas ou outras atividades históricas do usuário em relação aos itens. As classificações podem refletir as necessidades, o gosto ou as preferências dos itens do usuário. As classificações podem possuir um intervalo específico (por exemplo, [0, 1] ou [1, 5]). Em algumas realizações, os dados de classificação R podem ser representados em uma matriz com uma dimensão de M * N, em que M representa o número de usuários e N representa o número de itens, com as entradas Rij representando uma classificação do item j pelo usuário i.
[019] A plataforma A (102) também pode incluir os dados do usuário, que podem incluir, por exemplo, os nomes de usuários, idades, gêneros, endereços ou qualquer outra conta ou informações de perfil, históricos de compra, históricos de navegação ou históricos de pesquisa dos usuários na plataforma A (102). A plataforma A (102) também pode incluir os dados de itens, que podem incluir, por exemplo, os nomes, categorias, preços, palavras-chave, instruções, e similares, em relação aos itens.
[020] Em algumas realizações, os dados de classificação R coletados podem ser uma matriz esparsa, uma vez que apenas um pequeno número (comparado a M*N) de entradas Rij possui a classificação ou classificação mapeada com base nas atividades de usuário existentes em relação aos itens. Em algumas realizações, a plataforma A (102) pode prever as classificações conhecidas de itens, de maneira a fornecer as recomendações direcionadas de itens aos usuários. Em algumas realizações, a plataforma A (102) pode prever as classificações conhecidas de itens, por exemplo, com base nos dados do usuário e nos dados do item de acordo com os algoritmos de aprendizagem de máquina ou estatísticos. Como um exemplo, a plataforma A (102) pode fornecer as recomendações de itens com base nos dados de característica do usuário U (também referidos como dados de fator de usuário)
e os dados da característica do item V (também referidos como dados de fator de item), de acordo com métodos de fatoração de matriz ou outras técnicas.
Especificamente, cada usuário (por exemplo, o usuário i) pode ser caracterizado por um vetor (por exemplo, Ui) de características do usuário, tal como a idade, sexo, localização geográfica, padrão de visita, e similares. Cada item (por exemplo, o item j) pode ser caracterizado por um vetor (por exemplo, Vj) de características do item, tal como a categoria, palavras-chave, tópicos, preços e similares. As características do usuário e do item podem ser fatores que afetam a classificação, a seleção ou a compra do usuário de determinado item. Em algumas realizações, uma classificação de um item fornecido por um usuário pode ser aproximada por um produto de ponto do vetor de características do usuário e pelo vetor de características do item. Por exemplo, - em que Ui representa um vetor dos dados de característica do usuário correspondente ao usuário i; Vj representa um vetor dos dados da característica do item correspondente ao item j; e Rij representa uma classificação do item j pelo usuário i.
[021] Em algumas realizações, o vetor de características do usuário (por exemplo, Ui) e o vetor de características do item (por exemplo, Vj) são vetores latentes que podem ser aprendidos a partir de dados de treinamento (por exemplo, os dados de classificação conhecidos).
[022] A plataforma B (104) pode incluir, mas não está limitada a uma plataforma de meios sociais (tal como o FACEBOOK, TWITTER ou INSTRAGRAM). A plataforma B (104) pode coletar os dados de rede social S a partir de seus usuários. Os dados de rede social podem incluir, por exemplo, os nomes, idades, sexos, endereços, empregos, relacionamentos, hobbies, status, comentários, blogs, histórico de navegação ou outras informações demográficas, de emprego, recreativas de um usuário na plataforma B e as informações correspondentes dos amigos do usuário, família, colegas de trabalho, e similares. Tais dados de rede social S podem ser informativos para a plataforma A para prever a classificação de um item pelo usuário e fornecer as recomendações.
[023] Por exemplo, a plataforma A pode prever as classificações do usuário solucionando um problema de otimização, conforme mostrado na Fórmula (2): - em que Sik representa uma relação social entre o usuário i e o usuário k nos dados de rede social S; 𝜆1 representa um peso predefinido associado aos dados de rede social; e 𝜆2 representa um peso predefinido para evitar a superposição.
[024] Neste exemplo, a função objetiva no lado direito de Fórmula (2) inclui 3 termos. O primeiro termo ∑u𝑖 ∈𝑢,𝑣𝑗∈𝑣(𝑅𝑖𝑗 − 𝑈𝑖 𝑇 𝑉𝑗 )2 , representa o erro ou a distância entre os dados de classificação conhecidos e a classificação aproximada calculada com base nos dados de característica do usuário (por exemplo, U = [U1, U2,…, UM]) e os dados da característica do item (por exemplo, V = [V1, V2,…, VN]). O segundo termo 𝜆1 ∑u𝑖 ,u𝑘∈𝑢 𝑆𝑖𝑘 (𝑈𝑖 − 𝑈𝑘 )2 representa os efeitos dos dados de rede social S nos vetores de características do usuário. Por exemplo, quanto mais próximo ou mais forte for o relacionamento social de dois usuários, mais similares serão os dois vetores de características dos dois usuários. Em algumas realizações, quanto maior for o 𝑆𝑖𝑘 , mais próximo ou mais forte será o relacionamento social dos dois usuários. O terceiro termo 2 2 𝜆2 (||∑u𝑖 ∈𝑢 𝑈𝑖 || + ||∑v𝑗 ∈𝑣 𝑉𝑖 || ) é utilizado para evitar a superposição. Os valores dos pesos 𝜆1 e 𝜆2 podem ser pré-determinados. Quanto maior for o peso, maior será o impacto de um termo correspondente na função objetiva.
[025] O problema de otimização acima para minimizar a função objetiva pode ser solucionado, por exemplo, por gradiente descendente ou outro algoritmo. Por exemplo, a derivação dos vetores latentes U e V pode resultar nas duas equações abaixo (2).
[026] Para solucionar U e V nas equações (3) e (4) acima, os resultados dos produtos de matriz 𝑈 ∙ diag(S ∙ I𝑀 ) e 𝑈 ∙ S são suficientes, sem a necessidade de conhecer os valores de U e S individualmente. Como tal, um esquema de compartilhamento secreto pode ser utilizado pelas plataformas A e B para obter os resultados dos produtos de matriz 𝑈 ∙ diag(S ∙ I𝑀 ) e 𝑈 ∙ S. Sob o esquema de compartilhamento secreto, a plataforma A pode revelar o U manipulado para a plataforma B sem revelar o U original para a plataforma B; e a plataforma B pode revelar o S manipulado para a plataforma A sem revelar o S original para a plataforma A.
[027] Em algumas realizações, o esquema de compartilhamento secreto pode ser implementado com ou sem um inicializador de confiança. Com um inicializador de confiança, um ponto inicial comum pode ser estabelecido pelo inicializador de confiança e enviado para as duas plataformas para auxiliar na troca de dados. Sem um inicializador de confiança, cada uma das duas plataformas pode gerar números aleatórios como seus respectivos pontos iniciais para auxiliar na troca de dados. As plataformas podem se beneficiar da colaboração sem compartilhar as informações confidenciais sensíveis.
[028] A Figura 2 é um fluxograma que ilustra um exemplo de método de compartilhamento secreto (200) entre a plataforma A e a plataforma B sem um inicializador de confiança para gerar as recomendações pela plataforma A, de acordo com uma realização da presente invenção. A plataforma A pode ser a plataforma A descrita na Figura 1, e a plataforma B pode ser a plataforma B descrita na Figura 1. Em algumas realizações, o método de compartilhamento secreto de exemplo pode ser implementado em um algoritmo iterativo. O número de iterações T, por exemplo, pode ser um valor predeterminado ou determinado com base em determinados critérios (por exemplo, se o algoritmo converge ou atualiza ou diferenças de U ou V após diferentes iterações estarem abaixo de um limite). No (202), a plataforma A identifica os dados de classificação do usuário R e os dados iniciais da característica do usuário U e os dados da característica do item V, e o número de iterações T. No (204), a plataforma B identifica os dados de rede social S. Para uma iteração t-ésima (t <T), no (208), a plataforma A e a plataforma B podem realizar um esquema de compartilhamento secreto sem um inicializador de confiança para obter os produtos de matriz 𝑈 ∙ diag(S ∙ I𝑀 ) e 𝑈 ∙ S. No (206), a plataforma A atualiza o U ou V com base nos produtos de matriz 𝑈 ∙ diag(S ∙ I𝑀 ) e 𝑈 ∙ S, por exemplo, de acordo com as Equações (3) e (4). Após as iterações T, no (210), a característica de item da plataforma A gera as recomendações com base nos dados da característica do usuário atualizados U e nos dados da característica do item V.
[029] Em algumas realizações, deixe a matriz Z como um produto da matriz A e da matriz B. Isso é, Z = A ∙ B. Zij representa a entrada / elemento de Z na i-ésima linha e na j-ésima coluna. Zij pode ser computado, por exemplo, de acordo com a Equação (5). Os produtos de matriz 𝑈 ∙ diag(S ∙ I𝑀 ) e 𝑈 ∙ S, por exemplo, - em que 𝐴𝑖 𝑇 representa a i-ésima linha da matriz A e 𝐵𝑗 representa a j-ésima coluna da matriz B.
[030] A Figura 3 é um fluxograma ilustrando um exemplo de método de compartilhamento secreto (300) entre a plataforma A e a plataforma B para calcular um elemento Zij de um produto da matriz A e matriz B utilizando um esquema de compartilhamento secreto sem um inicializador de confiança, de acordo com uma realização da presente invenção. Em um esquema de compartilhamento secreto sem um inicializador de confiança, ambas as plataformas geram números aleatórios em séries de etapas e cálculos que iriam substituir a necessidade de um inicializador de confiança.
[031] No (304), a plataforma A (302) obtém um vetor inicial x = (x1, x2,…, x_2k), que pode ser 𝐴𝑖 𝑇 , a i-ésima linha da matriz A. No (324), a plataforma B (322) obtém um vetor inicial y = (y1, y2,…, y_2k), que pode ser 𝐵𝑗 representa a j-ésima coluna da matriz B. Os vetores x e y podem possuir a mesma dimensão de 2k. Os vetores x e y, por exemplo, podem incluir as variáveis aleatórias, todos zeros, valores predeterminados ou outros valores iniciais.
[032] Em algumas realizações, ambas as plataformas A e B computam para a saída pelo enlace k vezes (350). Na k-ésima iteração, no (306), a plataforma A (302) gera os valores aleatórios aj e cj tais que a soma (aj + cj) não é igual para 0. Por exemplo, os valores gerados aleatoriamente aj e cj podem ser gerados repetidamente até que aj + cj não seja igual a 0, conforme mostrado no (308). Quando aj + cj for encontrado não igual a 0, a plataforma A (302) computa os valores que serão manipulados e, em seguida, enviados para a plataforma B ((322)). Os valores computados para a plataforma A (302) podem incluir, mas não estão limitados a pj = aj + cj, x’[2j-1] = x[2j-1] + aj, e x’[2j] = x[2j] + cj conforme mostrado no (310). No (311), os valores, {pj, x'[2-1], x’[2j]}, são enviados para a plataforma B ((322)) para a computação. De maneira similar, no (326), a plataforma B ((322)) gera os valores aleatórios bj e dj de maneira que a soma (bj + dj) não é igual a 0. Por exemplo, os valores aleatórios gerados bj e dj podem ser gerados repetidamente até que bj + dj não seja igual a 0, conforme mostrado no (328). Os valores computados para a plataforma B ((322)) podem incluir, mas não estão limitados a qj = bj + dj, y'[2j-1] = y[2j-1] + bj e y'[2j] = y[2j] + dj conforme mostrado no (330). No (331), os valores, {qj, y’[2-1], y'[2j]}, são enviados para a plataforma A (302) para a computação.
[033] Após as plataformas enviarem os dados manipulados entre si, enquanto ainda estão no enlace k, os dois valores computados da plataforma, em última análise, somam os valores de saída. A plataforma A (302) computa hj = y’[2j-1] (x[2j-1] + 2aj) + y'[2j] (x[2j] + 2cj) + qj (aj + 2cj) conforme mostrado no (312). A plataforma B (322) computa para gj = x’[2j-1] (2y'[2j-1] - bj) + x’[2j] (2y[2j] - dj) + pj (dj - 2bj) conforme mostrado no (332). No (314), a plataforma A (302) obtém um valor h somando todo o hj, isto é, h = ∑𝑘𝑗=1 ℎ𝑗 , conforme mostrado no (314). No (332), a plataforma B (322) obtém um valor g somando todo o gj, isto é, g = ∑𝑘𝑗=1 𝑔𝑗 , conforme mostrado no (334).
[034] No (315), a plataforma A pode receber o valor g da plataforma B. A soma de h e g é igual ao produto dos vetores x e y. Isto é, xy = h + g. Por conseguinte, no (315), a plataforma A recebe o valor g da plataforma B. No (335), a plataforma A envia o valor h para a plataforma B. No (316), a plataforma A pode computar um produto dos vetores x e y computando uma soma de h e g, que são os dados manipulados dos vetores x e y. De maneira similar, no (336), a plataforma B também pode computar o produto dos vetores x e y computando uma soma de h e g.
[035] Dado que x pode ser a i-ésima linha da matriz A, 𝐴𝑖 𝑇 e y pode ser a j-ésima coluna da matriz B, 𝐵𝑗 , o elemento 𝑍𝑖𝑗 do produto da matriz A e da matriz B pode ser obtido como 𝑍𝑖𝑗 = 𝐴𝑖 𝑇 𝐵𝑗 = 𝑥𝑦. Por conseguinte, o produto da matriz Z da matriz A e da matriz B pode ser obtido.
[036] Ao substituir a matriz U por A e substituir o iag(S ∙ I𝑀 ) por B, o produto da matriz 𝑆 ∙ diag(S ∙ I𝑀 ) pode ser obtido. De maneira similar, substituindo a matriz U por A e substituindo S por B, o produto da matriz 𝑈 ∙ S pode ser obtido. Com os produtos de matriz 𝑈 ∙ diag(S ∙ I𝑀 ) e 𝑈 ∙ S, a plataforma A pode atualizar o U ou V, por exemplo, de acordo com as Equações (3) e (4), conforme descrito em relação ao (206) na Figura 2
[037] Por conseguinte, a plataforma A (302) pode gerar os dados de classificação previstos com base nos dados atualizados de características do usuário e nos dados da característica do item. Em algumas realizações, a plataforma A (302), entre outras coisas, pode gerar as recomendações para um item específico para um cliente específico com base nos dados de classificação previstos. As técnicas e computação descritas acima podem ser alcançadas sem a necessidade de uma autoridade confiável como sobrecarga.
[038] A Figura 4 é um fluxograma de um método de exemplo (400) para gerar uma recomendação para um usuário através de uma plataforma de recomendação e de classificação de itens utilizando um esquema de compartilhamento secreto sem um inicializador de confiança, de acordo com uma realização. Para clareza de apresentação, a descrição que se segue, em geral, descreve o método (400) no contexto das outras Figuras na presente invenção. Por exemplo, a plataforma de recomendação e de classificação de itens pode ser a plataforma A, conforme descrito em relação às Figuras de 1 a
3. No entanto, será entendido que o método (400) pode ser realizado, por exemplo, através de qualquer sistema, ambiente, software e hardware adequados, ou uma combinação de sistemas, ambientes, software e hardware, conforme adequado. Em algumas realizações, diversas etapas do método (400) podem ser executadas em paralelo, em combinação, em enlaces ou em qualquer ordem.
[039] No (402), os dados de classificação incluem, mas não limitados às classificações respectivas de um número de itens em relação a um número de usuários, são identificados através da plataforma de recomendação e de classificação de itens. Identificar os dados de classificação inclui receber (por exemplo, de outro dispositivo), recuperar ou carregar a partir de uma memória ou determinar os dados de classificação com base em uma ou mais entradas para o método (400). Os dados de classificação podem incluir os dados de classificação R descritos em relação às Figuras de 1 a 3. Por exemplo, os dados de classificação podem incluir a classificação real ou classificação mapeada com base nas atividades do usuário existentes em relação aos itens.
A partir de (402), o método (400) prossegue para o (404).
[040] No (404), os dados de característica do usuário, incluindo um número de características do usuário contribuindo para as classificações respectivas do número de itens em relação ao número de usuários, são identificados através da plataforma de recomendação e de classificação de itens.
A identificação dos dados de característica do usuário inclui receber (por exemplo, de outro dispositivo), recuperar ou carregar a partir de uma memória ou determinar os dados de característica do usuário com base em uma ou mais entradas para o método (400). Em algumas realizações, os dados de característica do usuário podem ser representados por uma matriz U. Os dados de característica do usuário podem incluir os dados de característica do usuário U descritos em relação às Figuras de 1 a 3. A partir de (404), o método (400) prossegue para o (406).
[041] No (406), os dados da característica do item, incluindo um número de características do item contribuindo para as classificações respectivas do número de itens em relação ao número de usuários, são identificados através da plataforma de recomendação e de classificação de itens.
Em algumas realizações, a identificação dos dados da característica do item inclui receber (por exemplo, de outro dispositivo), recuperar ou carregar a partir de uma memória, ou determinar os dados da característica do item com base em uma ou mais entradas para o método (400). Os dados da característica do item podem incluem os dados da característica do item V descritos em relação às Figuras de 1 a 3. A partir de (406), o método (400) prossegue para o (408).
[042] No (408), a plataforma de recomendação e de classificação de itens recebe um número de dados manipulados de rede social (por exemplo, descritos em relação à Figura 3) computados com base em dados de rede social (por exemplo, y, um vetor de dados de rede social da matriz S) a partir de uma plataforma de rede social por meio de um esquema de compartilhamento secreto sem um inicializador de confiança a partir de uma plataforma de rede social.
Além disso, os dados de rede social indicam as relações sociais entre quaisquer dois do número de usuários. No esquema de compartilhamento secreto sem o inicializador de confiança, a plataforma de rede social compartilha com a plataforma de recomendação e de classificação de itens o número de dados manipulados de rede social (por exemplo, g) sem revelar os dados de rede social (por exemplo, y), em que os dados da rede são computados com base nos dados de rede social e um primeiro número de variáveis aleatórias (por exemplo, bj, dj).
Em algumas realizações, no esquema de compartilhamento secreto sem o inicializador de confiança, a plataforma de recomendação e de classificação de itens compartilha com a plataforma de rede social uma série de dados manipulados pelo usuário (por exemplo, h) sem revelar os dados de característica do usuário (por exemplo, x, um vetor da matriz de dados de característica do usuário U), em que o número de dados manipulados de características do usuário é computado com base nos dados de característica do usuário e um segundo número de variáveis aleatórias (por exemplo, aj, cj).
Em algumas realizações, os dados manipulados de rede social são manipulados de tal maneira que não é possível recuperar os dados de rede social original a partir dos dados manipulados de rede social.
[043] Em algumas realizações, o esquema de compartilhamento secreto sem o inicializador de confiança é utilizado para solucionar um problema de otimização conforme descrito em relação à Fórmula (2), por exemplo, conforme descrito em relação à Figura 3. Por exemplo, no esquema de compartilhamento secreto sem o inicializador de confiança, a plataforma de recomendação e de classificação de itens obtém um vetor dos dados de característica do usuário (por exemplo, x) e gera os primeiros dados manipulados de característica do usuário (por exemplo, x’) no vetor dos dados de característica do usuário (por exemplo, x) e um segundo número de variáveis aleatórias (por exemplo, aj, cj). A plataforma de recomendação e de classificação de itens transmite para a plataforma de rede social os primeiros dados manipulados de característica do usuário (por exemplo, x’) e recebe a partir da plataforma de rede social os dados manipulados de rede social (por exemplo, y') computados com base nos dados de rede social (por exemplo, y) e o primeiro número de variáveis aleatórias (por exemplo, bj, dj).
[044] A plataforma de recomendação e de classificação de itens pode gerar um dos dados manipulados de característica do usuário (por exemplo, h) com base em dois ou mais dos primeiros dados manipulados de característica do usuário (por exemplo, x’), os primeiros dados manipulados de rede social (por exemplo, y’), ou o segundo número de variáveis aleatórias (por exemplo, aj, cj). De maneira similar, a plataforma de rede social pode gerar um dos dados manipulados de rede social (por exemplo, g) computados com base em dois ou mais dos primeiros dados manipulados de característica do usuário (por exemplo, x’), os primeiros dados manipulados de rede social (por exemplo, y’), ou o primeiro número de variáveis aleatórias (por exemplo, bj, dj). A partir de (408), o método (400) prossegue para o (410).
[045] No (410), a plataforma de recomendação e de classificação de itens envia uma série de dados manipulados de característica do usuário (por exemplo, um número de h) para a plataforma de rede social sem revelar os dados de característica do usuário (por exemplo, x ou qualquer vetor de U), por exemplo, conforme descrito em relação à Figura 3. A partir de (410), o método (400) prossegue para o (412).
[046] No (412), a plataforma de recomendação e de classificação de itens atualiza os dados de característica do usuário com base nos dados de classificação e no número de dados manipulados de rede social. Em algumas realizações, a atualização dos dados de característica do usuário inclui a computação de um produto dos dados de característica do usuário e dos dados de rede social computando uma soma de um dos números de dados manipulados de características do usuário (por exemplo, h) e um dos números de dados manipulados de rede social (por exemplo, g). Além disso, a computação mencionada pode incluir a computação para cada entrada no produto dos dados de característica do usuário e dos dados de rede social e a computação de um dos números de dados manipulados de características do usuário e um dos números de dados manipulados de rede social sem os dados de rede social. Em algumas realizações, os dados de característica do usuário incluem a solução de um problema de otimização para minimizar uma soma ponderada de uma diferença entre os dados de classificação previstos e os dados de classificação, os dados de característica do usuário ponderados pelos dados de rede social e um termo de prevenção de superposição, por exemplo, conforme mostrado na Fórmula (2). Em algumas realizações, a atualização dos dados de característica do usuário inclui a atualização dos dados de característica do usuário de acordo com as técnicas de exemplo descritas em relação à Figura 3. A partir de (412), o método (400) prossegue para o (414).
[047] No (414), a plataforma de recomendação e de classificação de itens atualiza os dados da característica do item com base nos dados de classificação e nos dados de característica do usuário, por exemplo, de acordo com as técnicas de exemplo descritas com relação à Figura 3. A partir de (414), o método (400) prossegue para o (416).
[048] No (416), os dados de classificação previstos do número de itens em relação ao número de usuários com base no produto dos dados de característica do usuário e os dados da característica do item são gerados. Em algumas realizações, os dados de classificação previstos podem ser gerados, por exemplo, com base no produto dos dados de característica do usuário e dos dados da característica do item, de acordo com a equação (1). Em algumas realizações, a classificação gerada pode ser melhor alinhada com as necessidades ou preferências dos usuários, devido à incorporação da rede social. A partir de (416), o método (400) prossegue para o (418)
[049] No (418), uma recomendação de um item específico para um usuário específico com base nos dados de classificação previstos é gerada. Em algumas realizações, um ou mais itens com as melhores classificações previstas em relação ao usuário específico podem ser recomendados para o usuário específico. A recomendação de um item específico pode ser uma recomendação de um filme ou item de compra. Por exemplo, a NETFLIX pode recomendar melhor um filme ou a AMAZON pode recomendar melhor um item com base nos dados de rede social. Em algumas realizações, a recomendação do item específico para o item específico pode ser enviada, por exemplo, por meio de uma interface do usuário (UI). Em algumas realizações, os tópicos selecionados podem ser exibidos em uma caixa de bate-papo, uma janela pop, e similares, em uma interface gráfica do usuário (GUI) ou outras UIs do usuário para a análise e consideração do usuário. A partir de (418), o método (400) é interrompido.
[050] A Figura 5 é um diagrama de blocos de um sistema de computador de exemplo (500) utilizado para fornecer as funcionalidades computacionais associadas aos algoritmos, métodos, funções, processos, fluxos e procedimentos descritos, conforme descrito na presente invenção, de acordo com uma realização. O computador ilustrado (502) se destina a abranger qualquer dispositivo de computação, tal como um servidor, computador de mesa, computador laptop / notebook, porta de dados sem fios, telefone inteligente, assistente de dados pessoais (PDA), dispositivo de computação de tablets, um ou mais processadores nestes dispositivos, ou qualquer outro dispositivo de processamento adequado, incluindo as instâncias físicas ou virtuais (ou ambos) do dispositivo de computação. De maneira adicional, o computador (502) pode incluir um computador que inclui um dispositivo de entrada, tal como um teclado numérico, teclado, tela sensível ao toque ou outro dispositivo que possa aceitar as informações do usuário, e um dispositivo de saída que transmita as informações associadas à operação do computador (502), incluindo os dados digitais, visuais ou informações de áudio (ou uma combinação de informações) ou uma interface de usuário (GUI) do tipo gráfico.
[051] O computador (502) pode servir em uma função como um cliente, componente de rede, um servidor, um banco de dados ou outra persistência, ou qualquer outro componente (ou uma combinação de funções) de um sistema de computador para realizar o assunto descrito na presente invenção. O computador ilustrado (502) é comunicativamente acoplado a uma rede (530). Em algumas realizações, um ou mais componentes do computador (502) podem ser configurados para operar em ambientes, incluindo o ambiente com base em computação em nuvem, local, global ou outro (ou uma combinação de ambientes).
[052] Em um nível elevado, o computador (502) é um dispositivo de computação eletrônica operável para receber, transmitir, processar, armazenar ou gerenciar os dados e informações associados com o assunto descrito. De acordo com algumas realizações, o computador (502) também pode incluir ou ser comunicativamente acoplado a um servidor de aplicativos, servidor de e-mail, servidor da Web, servidor de armazenamento em cache, servidor de dados de fluxo contínuo ou outro servidor (ou uma combinação de servidores).
[053] O computador (502) pode receber as solicitações através da rede (530) a partir de um aplicativo de cliente (por exemplo, executando em outro computador (502)) e responder às solicitações recebidas processando as solicitações recebidas utilizando um aplicativo(s) de software adequado(s). Além disso, as solicitações também podem ser enviadas para o computador (502) a partir de usuários internos (por exemplo, a partir de um console de comando ou através de outro método de acesso adequado), externos ou de terceiros, outros aplicativos automatizados, bem como quaisquer outras entidades adequadas, indivíduos, sistemas ou computadores.
[054] Cada um dos componentes do computador (502) pode se comunicar utilizando um barramento de sistema (503). Em algumas realizações, qualquer um ou todos os componentes do computador (502), hardware ou software (ou uma combinação de hardware e software), podem interagir entre si ou com a interface (504) (ou uma combinação de ambos), através do barramento de sistema (503) utilizando uma interface de programação de aplicativo (API) (512) ou uma camada de serviço (513) (ou uma combinação de API (512) e camada de serviço (513)). A API (512) pode incluir as especificações para as rotinas, estruturas de dados e classes de objetos. A API (512) pode ser independente ou dependente de linguagem de computador e se referir a uma interface completa, uma única função ou até mesmo um conjunto de APIs. A camada de serviço (513) fornece os serviços de software para o computador (502) ou para outros componentes (ilustrados ou não) que estão acoplados de forma comunicável ao computador (502). A funcionalidade do computador (502) pode ser acessível a todos os consumidores de serviço que utilizam esta camada de serviço. Os serviços de software, tais como aqueles fornecidos pela camada de serviço (513), fornecem as funcionalidades reutilizáveis e definidas através de uma interface definida. Por exemplo, a interface pode ser um software escrito em JAVA, C++ ou outra linguagem adequada, fornecendo os dados em formato XML (linguagem extensível marcada) ou outro formato adequado. Embora ilustradas como um componente integrado do computador (502), as realizações alternativas podem ilustrar a API (512) ou a camada de serviço (513) como componentes independentes em relação a outros componentes do computador
(502) ou outros componentes (ilustrados ou não) que estão acoplados de maneira comunicativa para o computador (502). Além disso, qualquer uma ou todas as partes da API (512) ou da camada de serviço (513) podem ser implementadas como submódulos ou filhos ou módulos de outro módulo de software, aplicativo corporativo ou módulo de hardware sem se afastar do âmbito da presente invenção.
[055] O computador (502) inclui uma interface (504). Embora ilustrado como uma única interface (504) na Figura 5, duas ou mais interfaces (504) podem ser utilizadas de acordo com as necessidades específicas, desejos ou realizações específicas do computador (502). A interface (504) é utilizada pelo computador (502) para se comunicar com outros sistemas que estão conectados à rede (530) (ilustrada ou não) em um ambiente distribuído. Em geral, a interface (504) inclui a lógica codificada em software ou hardware (ou uma combinação de software e hardware) e é operável para se comunicar com a rede (530). Mais especificamente, a interface (504) pode incluir o software suportando um ou mais protocolos de comunicação associados às comunicações de maneira que a rede (530) ou o hardware da interface é operável para comunicar os sinais físicos dentro e fora do computador ilustrado (502).
[056] O computador (502) inclui um processador (505). Embora ilustrado como um único processador (505) na Figura 5, dois ou mais processadores podem ser utilizados de acordo com as necessidades específicas, desejos ou realizações específicas do computador (502). Em geral, o processador (505) executa as instruções e manipula os dados para realizar as operações do computador (502) e quaisquer algoritmos, métodos, funções, processos, fluxos e procedimentos descritos na presente invenção.
[057] O computador (502) também inclui um banco de dados (506) que pode reter os dados para o computador (502) ou outros componentes (ou uma combinação de ambos) que podem estar conectados à rede (530)
(ilustrados ou não). Por exemplo, a base de dados (506) pode ser uma memória interna, convencional ou outro tipo de banco de dados que armazena os dados consistentes com esta descrição. Em algumas realizações, a base de dados (506) pode ser uma combinação de dois ou mais tipos de base de dados diferentes (por exemplo, uma base de dados hibrida em memória e convencional) de acordo com as necessidades específicas, desejos ou realizações específicas do computador (502) e a funcionalidade descrita.
Embora ilustrada como uma única base de dados (506) na Figura 5, duas ou mais bases de dados (do mesmo tipo ou combinação de tipos) podem ser utilizadas de acordo com as necessidades específicas, desejos, ou realizações específicas do computador (502) e a funcionalidade descrita. Embora a base de dados (506) seja ilustrada como um componente integral do computador (502), em realizações alternativas, a base de dados (506) pode ser externa ao computador (502). Conforme ilustrado, a base de dados (506) retém os dados de classificação descritos anteriormente (516), os dados de característica do usuário (518), os dados da característica do item (526) e os dados de rede social (528).
[058] O computador (502) também inclui uma memória (507) que pode reter os dados para o computador (502) ou para outros componentes (ou uma combinação de ambos) que podem estar conectados à rede (530) (ilustrada ou não). A memória (507) pode armazenar quaisquer dados consistentes com esta descrição. Em algumas realizações, a memória (507) pode ser uma combinação de dois ou mais tipos diferentes de memória (por exemplo, uma combinação de armazenamento semicondutor e magnético) de acordo com as necessidades específicas, desejos ou realizações específicas do computador (502) e a funcionalidade descrita. Embora ilustrado como uma memória única (507) na Figura 5, duas ou mais memórias (507) (do mesmo tipo ou combinação de tipos) podem ser utilizadas de acordo com as necessidades específicas,
desejos, ou realizações específicas do computador (502) e a funcionalidade descrita. Enquanto a memória (507) é ilustrada como um componente integral do computador (502), em realizações alternativas, a memória (507) pode ser externa ao computador (502).
[059] O aplicativo (508) é um mecanismo de software algorítmico que fornece a funcionalidade de acordo com as necessidades, desejos ou realizações específicas do computador (502), especialmente em relação à funcionalidade descrita nesta descrição. Por exemplo, o aplicativo (508) pode servir como um ou mais componentes, módulos ou aplicativos. Além disso, embora ilustrado como um único aplicativo (508), o aplicativo (508) pode ser implementado como múltiplos aplicativos (508) no computador (502). Além disso, embora ilustrado como integrante do computador (502), em realizações alternativas, o aplicativo (508) pode ser externo ao computador. (502)
[060] O computador (502) também pode incluir uma fonte de alimentação (514). A fonte de alimentação (514) pode incluir uma bateria recarregável ou não recarregável que pode ser configurada para ser substituível pelo usuário ou não. Em algumas realizações, a fonte de alimentação (514) pode incluir os circuitos de conversão de energia ou de gerenciamento (incluindo a recarga, espera ou outra funcionalidade de gerenciamento de energia). Em algumas realizações, a fonte de alimentação (514) pode incluir um plugue de alimentação para possibilitar que o computador (502) seja plugado a uma tomada de parede ou a outra fonte de energia, por exemplo, para alimentar o computador (502) ou recarregar uma bateria recarregável.
[061] Pode existir qualquer número de computadores (502) associados ou externos a um sistema de computador contendo o computador (502), cada computador (502) se comunicando pela rede (530). Além disso, o termo “cliente”, “usuário” e outra terminologia adequada podem ser utilizados de maneira intercambiável, conforme adequado, sem se afastar do âmbito da presente invenção. Além disso, esta descrição contempla que muitos usuários podem utilizar um computador (502), ou que um usuário pode utilizar múltiplos computadores (502).
[062] As realizações descritas do assunto podem incluir uma ou mais características, isoladamente ou em combinação.
[063] Por exemplo, em uma primeira realização, um método implementado por computador inclui: identificar, através de uma plataforma de recomendação e de classificação de itens, os dados de classificação incluindo as classificações respectivas de um número de itens em relação a um número de usuários; identificar, através da plataforma de recomendação e de classificação de itens, os dados de característica do usuário, incluindo um número de características do usuário contribuindo para as classificações respectivas do número de itens em relação ao número de usuários; receber, a partir de uma plataforma de rede social através da plataforma de recomendação e de classificação de itens por meio de um esquema de compartilhamento secreto sem um inicializador de confiança, um número de dados manipulados de rede social computados com base em dados de rede social e um primeiro número de variáveis aleatórias, em que os dados de rede social indicam as relações sociais entre quaisquer dois do número de usuários, em que, no esquema de compartilhamento secreto sem o inicializador de confiança, a plataforma de rede social compartilha com a plataforma de recomendação e de classificação de itens o número de dados manipulados de rede social sem revelar os dados de rede social; e atualizar, através da plataforma de recomendação e de classificação de itens, os dados de característica do usuário com base nos dados de classificação e no número de dados manipulados de rede social.
[064] Em uma segunda realização, um meio não transitório, legível por computador, armazenando uma ou mais instruções executáveis por um sistema de computador para realizar as operações, inclui: identificar, através de uma plataforma de recomendação e de classificação de itens, os dados de classificação incluindo as classificações respectivas de um número de itens em relação a um número de usuários; identificar, através da plataforma de recomendação e de classificação de itens, os dados de característica do usuário, incluindo um número de características do usuário contribuindo para as classificações respectivas do número de itens em relação ao número de usuários; receber, a partir de uma plataforma de rede social através da plataforma de recomendação e de classificação de itens por meio de um esquema de compartilhamento secreto sem um inicializador de confiança, um número de dados manipulados de rede social computados com base em dados de rede social e um primeiro número de variáveis aleatórias, em que os dados de rede social indicam as relações sociais entre quaisquer dois do número de usuários, em que, no esquema de compartilhamento secreto sem o inicializador de confiança, a plataforma de rede social compartilha com a plataforma de recomendação e de classificação de itens o número de dados manipulados de rede social sem revelar os dados de rede social; e atualizar, através da plataforma de recomendação e de classificação de itens, os dados de característica do usuário com base nos dados de classificação e no número de dados manipulados de rede social.
[065] Em uma terceira realização, um sistema implementado por computador, inclui: um ou mais computadores; e um ou mais dispositivos de memória de computador acoplados interoperacionalmente com um ou mais computadores e possuindo as instruções de armazenamento de meios tangíveis, não transitórios, que quando executadas por um ou mais computadores, realizam as operações que incluem: identificar, através de uma plataforma de recomendação e de classificação de itens, os dados de classificação incluindo as classificações respectivas de um número de itens em relação a um número de usuários; identificar, através da plataforma de recomendação e de classificação de itens, os dados de característica do usuário, incluindo um número de características do usuário contribuindo para as classificações respectivas do número de itens em relação ao número de usuários; receber, a partir de uma plataforma de rede social através da plataforma de recomendação e de classificação de itens por meio de um esquema de compartilhamento secreto sem um inicializador de confiança, um número de dados manipulados de rede social computados com base em dados de rede social e um primeiro número de variáveis aleatórias, em que os dados de rede social indicam as relações sociais entre quaisquer dois do número de usuários, em que, no esquema de compartilhamento secreto sem o inicializador de confiança, a plataforma de rede social compartilha com a plataforma de recomendação e de classificação de itens o número de dados manipulados de rede social sem revelar os dados de rede social; e atualizar, através da plataforma de recomendação e de classificação de itens, os dados de característica do usuário com base nos dados de classificação e no número de dados manipulados de rede social.
[066] O precedente e outras realizações descritas, opcionalmente, podem incluir uma ou mais das seguintes características:
[067] Uma primeira característica, combinável com qualquer uma das seguintes características, em que, no esquema de compartilhamento secreto sem o inicializador de confiança, a plataforma de recomendação e de classificação de itens compartilha com a plataforma de rede social diversos dados manipulados pelo usuário sem revelar os dados de característica do usuário, e em que o número de dados manipulados de característica do usuário são computados com base nos dados de característica do usuário e em um segundo número de variáveis aleatórias.
[068] Uma segunda característica, combinável com qualquer uma das características anteriores ou seguintes, em que a atualização dos dados de característica do usuário inclui a computação de um produto dos dados de característica do usuário e dos dados de rede social com base em uma soma um dos números de dados manipulados de características do usuário e um dos números de dados manipulados de rede social.
[069] Uma terceira característica, combinável com qualquer uma das características anteriores ou seguintes, em que a computação de um produto dos dados de característica do usuário e dos dados de rede social computando uma soma de um dos números de dados manipulados de características do usuário e um dos números de dados manipulados de rede social sem os dados de rede social inclui: para cada entrada no produto dos dados de característica do usuário e dos dados de rede social, computando um dos números de dados manipulados de características do usuário e um dos números de dados manipulados de rede social sem os dados de rede social.
[070] Uma quarta característica, combinável com qualquer uma das características anteriores ou seguintes, o método ou as operações ainda incluem: identificar os dados da característica do item incluindo um número de características de item contribuindo para as classificações respectivas do número de itens em relação ao número de usuários, em que um produto dos dados da característica do usuário e dos dados da característica do item resultam em uma estimativa dos dados de classificação; e atualizar os dados da característica do item com base nos dados de classificação, nos dados de característica do usuário e no número de dados manipulados de rede social.
[071] Uma quinta característica, combinável com qualquer uma das características anteriores ou seguintes, o método ou as operações ainda incluem: gerar os dados de classificação previstos do número de itens em relação ao número de usuários com base no produto dos dados de característica do usuário e dados da característica do item; e gerar uma recomendação de um item específico para um cliente específico com base nos dados de classificação previstos.
[072] Uma sexta característica, combinável com qualquer uma das características anteriores ou seguintes, em que atualizar os dados de característica do usuário inclui a solução de um problema de otimização para minimizar uma soma ponderada de uma diferença entre os dados de classificação previstos e os dados de classificação, os dados de característica do usuário ponderados pelos dados de rede social e um termo de prevenção de superposição.
[073] Uma sétima característica, combinável com qualquer uma das características anteriores ou seguintes, em que solucionar um problema de otimização, inclui a solução de uma equação: - em que: Ui representa um vetor dos dados da característica do usuário correspondente ao usuário i; Vj representa um vetor dos dados da característica do item correspondente ao item j; Rij representa uma classificação do item j pelo usuário i; Sik representa uma relação social entre o usuário i e o usuário k; 𝜆1 representa um peso predefinido associado aos dados de rede social; e 𝜆2 representa um peso predefinido para evitar a superposição.
[074] Uma oitava característica, combinável com qualquer uma das características anteriores ou seguintes, o método ou as operações ainda incluem: no esquema de compartilhamento secreto sem o inicializador de confiança, obter, através da plataforma de recomendação e de classificação de itens, um vetor dos dados de característica do usuário; gerar, através da plataforma de recomendação e de classificação de itens, os primeiros dados manipulados de característica do usuário com base no vetor dos dados de característica do usuário e no segundo número de variáveis aleatórias; transmitir, através da plataforma de recomendação e de classificação de itens para a plataforma de rede social, os primeiros dados manipulados de característica do usuário; receber, através da plataforma de recomendação e de classificação de itens a partir da plataforma de rede social, os primeiros dados manipulados de rede social computados com base nos dados de rede social e no primeiro número de variáveis aleatórias; e gerar, através da plataforma de recomendação e de classificação de itens, um dos dados manipulados de característica do usuário com base em dois ou mais dos primeiros dados manipulados de característica do usuário, os primeiros dados manipulados de rede social ou o segundo número de variáveis aleatórias.
[075] As realizações do assunto e as operações funcionais descritas na presente invenção podem ser implementadas em circuitos eletrônicos digitais, em software de computador ou firmware tangivelmente incorporado, em hardware de computador, incluindo as estruturas descritas na presente invenção e seus equivalentes estruturais, ou em combinações de uma ou mais delas. As realizações de software do assunto descrito podem ser implementadas como um ou mais programas de computador, isto é, um ou mais módulos de instruções de programas de computador codificados em um meio de armazenamento de computador tangível, não transitório, legível por computador, para a execução ou para o controle de operação de aparelhos de processamento de dados. De maneira alternativa ou adicional, as instruções do programa podem ser codificadas dentro / em um sinal propagado gerado artificialmente, por exemplo, um sinal elétrico, ótico ou eletromagnético gerado pela máquina que é gerado para codificar a informação para a transmissão ao aparelho receptor adequado para a execução por um aparelho de processamento de dados. O meio de armazenamento de computador pode ser um dispositivo de armazenamento legível por máquina, um substrato de armazenamento legível por máquina, um dispositivo de memória de acesso aleatório ou serial, ou uma combinação de meios de armazenamento de computador. Configurar um ou mais computadores significa que um ou mais computadores instalaram o hardware, firmware ou software (ou combinações de hardware, firmware e software) de maneira que, quando o software for executado por um ou mais computadores, as operações de computação específicas sejam executadas.
[076] O termo “tempo-real”, “tempo real”, “temporeal”, “tempo real (rápido) (RFT)”, “quase(tempo) em tempo real (NRT)”, “quase em tempo real” ou termos similares (conforme entendido por um técnico no assunto), significa que uma ação e uma resposta estão temporalmente próximas de tal maneira que um indivíduo percebe a ação e a resposta ocorrendo substancialmente simultaneamente. Por exemplo, a diferença de tempo de uma resposta para a exibição (ou para o início de exibição) de dados após a ação do indivíduo para acessar os dados pode ser inferior a 1 ms, inferior a 1 segundo ou inferior a 5 segundos. Embora os dados solicitados não precisem ser exibidos (ou iniciados para a exibição) instantaneamente, eles são exibidos (ou iniciados para a exibição) sem nenhum atraso intencional, levando em conta as limitações de processamento de um sistema de computação descrito e o tempo necessário, por exemplo, para reunir, medir com precisão, analisar, processar, armazenar ou transmitir os dados.
[077] Os termos "aparelho de processamento de dados", "computador" ou "dispositivo de computador eletrônico" (ou equivalente conforme entendido por um técnico no assunto) se referem ao hardware de processamento de dados e abrangem todos os tipos de aparelhos, dispositivos e máquinas para o processamento de dados, incluindo, a título de exemplo, um processador programável, um computador ou diversos processadores ou computadores. O aparelho também pode ser, ou ainda incluir, os circuitos lógicos com propósitos especiais, por exemplo, uma unidade central de processamento
(CPU), um FPGA (field programmable gate array), ou um ASIC (application specific integrated circuit). Em algumas realizações, o aparelho de processamento de dados ou circuitos lógicos para propósitos especiais (ou uma combinação do aparelho de processamento de dados ou circuitos lógicos para propósitos especiais) podem ser com base em hardware ou software (ou uma combinação de hardware e software). O aparelho, opcionalmente, pode incluir o código que cria um ambiente de execução para os programas de computador, por exemplo, o código que constitui o firmware de processador, uma pilha de protocolos, um sistema de gerenciamento de banco de dados, um sistema operacional ou uma combinação de ambientes de execução. A presente invenção contempla a utilização de aparelhos de processamento de dados com ou sem os sistemas operativos convencionais, por exemplo, LINUX, UNIX, WINDOWS, SO MAC, ANDROID, IOS ou qualquer outro sistema operacional convencional adequado.
[078] Um programa de computador, que também pode ser referido ou descrito como um programa, software, um aplicativo de software, um módulo, um módulo de software, um script ou código pode ser escrito em qualquer forma de linguagem de programação, incluindo as linguagens compiladas ou interpretadas, ou as linguagens declarativas ou procedimentais, e pode ser implementado em qualquer forma, incluindo como um programa independente ou como um módulo, componente, sub-rotina ou outra unidade adequada para a utilização em um ambiente de computação. Um programa de computador pode, mas não precisa, corresponder a um arquivo em um sistema de arquivos.
Um programa pode ser armazenado em uma parte de um arquivo que contém outros programas ou dados, por exemplo, um ou mais scripts armazenados em um documento de linguagem de marcação, em um único arquivo dedicado ao programa em questão ou em diversos arquivos coordenados, por exemplo. Por exemplo, os arquivos que armazenam um ou mais módulos, subprogramas ou partes do código. Um programa de computador pode ser implantado para ser executado em um computador ou em diversos computadores localizados em um site ou distribuídos em diversos sites e interconectados por uma rede de comunicação.
[079] Embora partes dos programas ilustrados nas diversas Figuras sejam mostradas como módulos individuais que implementam as diversas características e funcionalidades através de diversos objetos, métodos ou outros processos, os programas, em vez disso, podem incluir um número de sub- módulos, de terceiros, serviços, componentes, bibliotecas e similares, conforme adequado. Por outro lado, as características e a funcionalidade de diversos componentes podem ser combinadas em componentes individuais, conforme adequado. Os limites utilizados para realizar as determinações computacionais podem ser estaticamente, dinamicamente ou estaticamente e dinamicamente determinados.
[080] Os métodos, processos ou fluxos lógicos descritos na presente invenção podem ser realizados por um ou mais computadores programáveis executando um ou mais programas de computador para realizar as funções operando nos dados de entrada e gerando a saída. Os métodos, processos ou fluxos lógicos também podem ser realizados, e o aparelho também pode ser implementado como circuitos lógicos para propósitos especiais, por exemplo, uma CPU, um FPGA ou um ASIC.
[081] Os computadores adequados para a execução de um programa de computador podem ser com base em microprocessadores de utilização geral ou especial, ambos ou qualquer outro tipo de CPU. Em geral, uma CPU recebe as instruções e dados e grava em uma memória. Os elementos essenciais de um computador são uma CPU, para realizar ou executar instruções, e um ou mais dispositivos de memória para armazenar as instruções e dados. Em geral, um computador também irá incluir, ou estará acoplado operacionalmente para receber os dados ou transferir os dados, ou ambos, para um ou mais dispositivos de armazenamento em massa para armazenamento de dados, por exemplo, os discos magnéticos, magnetos óticos ou discos óticos. No entanto, um computador não precisa possuir esses dispositivos. Além disso, um computador pode ser incorporado em outro dispositivo, por exemplo, um telefone celular, um assistente digital pessoal (PDA), um tocador de áudio ou vídeo, um console de jogos, um receptor de sistema de posicionamento global (GPS) ou um dispositivo de armazenamento portátil, por exemplo, uma unidade flash de barramento serial universal (USB), para citar apenas alguns.
[082] Os meios legíveis por computador (transitórios ou não transitórios, conforme adequado) adequados para armazenar as instruções e dados de programas de computador incluem todas as formas de memória permanente, não permanente ou volátil / não volátil, meio e dispositivos de memória, inclusive a título de exemplo os dispositivos de memória semicondutores, por exemplo, a memória de acesso aleatório (RAM), memória somente de leitura (ROM), memória de mudança de fase (PRAM), memória de acesso aleatório estático (SRAM), memória de acesso aleatório dinâmica (DRAM), memória somente de leitura programável e apagável (EPROM), memória EEPROM (memória somente de leitura) eletricamente apagável e os dispositivos de memória flash; dispositivos magnéticos, por exemplo, as fitas, cartuchos, cassetes, discos internos / removíveis; discos magneto-óticos; e os dispositivos de memória ótica, por exemplo, o disco de vídeo digital (DVD), CD- ROM, DVD +/- R, DVD-RAM, DVD-ROM, HD-DVD e BLURAY e outras tecnologias de memória ótica. A memória pode armazenar diversos objetos ou dados, incluindo os caches, classes, estruturas, aplicativos, módulos, dados de backup, tarefas, páginas da Web, modelos de páginas da Web, estruturas de dados, tabelas de banco de dados, repositórios armazenando as informações dinâmicas e qualquer outra informação adequada, incluindo quaisquer parâmetros, variáveis, algoritmos, instruções, regras, restrições ou referências a eles. Além disso, a memória pode incluir quaisquer outros dados adequados, tais como os logs, políticas, dados de segurança ou acesso, arquivos de relatórios e outros. O processador e a memória podem ser complementados, ou incorporados em circuitos lógicos para propósitos especiais.
[083] Para fornecer a interação com um usuário, as realizações do assunto descrito na presente invenção podem ser implementadas em um computador com um dispositivo de exibição, por exemplo, um CRT (tubo de raios catódicos), LCD (tela de cristal líquido), LED (Diodo de Emissão de Luz), ou monitor de plasma, para exibir as informações ao usuário e um teclado e um dispositivo apontador, por exemplo, um mouse, trackball ou trackpad, pelo qual o usuário pode fornecer as informações ao computador. A entrada também pode ser fornecida ao computador utilizando uma tela sensível ao toque, como uma superfície de computador tablet com sensibilidade à pressão, uma tela multitoque utilizando o sensor capacitivo ou elétrico ou outro tipo de tela sensível ao toque. Outros tipos de dispositivos também podem ser utilizados para fornecer a interação com um usuário; por exemplo, o feedback fornecido ao usuário pode ser qualquer forma de feedback sensorial, por exemplo, o feedback visual, feedback auditivo ou feedback tátil; e a entrada do usuário pode ser recebida de qualquer forma, incluindo a entrada acústica, de fala ou tátil. Além disso, um computador pode interagir com um usuário enviando documentos e recebendo documentos de um dispositivo utilizado pelo usuário; por exemplo, enviando as páginas da web para um navegador da web no dispositivo de cliente de um usuário em resposta às solicitações recebidas do navegador da web.
[084] O termo "interface gráfica do usuário", ou "GUI", pode ser utilizado no singular ou no plural para descrever uma ou mais interfaces gráficas do usuário e cada uma das exibições de uma interface gráfica de usuário especial. Por conseguinte, uma GUI pode representar qualquer interface gráfica do usuário, incluindo, mas não limitada a um navegador da Web, uma tela sensível ao toque ou uma interface de linha de comando (CLI) que processa as informações e apresenta de maneira eficiência os resultados da informação ao usuário. Em geral, uma GUI pode incluir diversos elementos da interface do usuário (UI), alguns ou todos associados a um navegador da Web, tais como os campos interativos, listas suspensas e botões. Esses e outros elementos da interface do usuário podem estar relacionados ou representar as funções do navegador da web.
[085] As realizações do assunto descrito na presente invenção podem ser implementadas em um sistema de computação que inclui um componente de back-end, por exemplo, tal como um servidor de dados, ou que inclui um componente de middleware, por exemplo, um servidor de aplicativos ou inclui um componente front-end, por exemplo, um computador de cliente com uma interface gráfica do usuário ou um navegador da Web por meio do qual um usuário pode interagir com uma realização do assunto descrito na presente invenção ou qualquer combinação de um ou mais desses back end, middleware ou componentes front-end. Os componentes do sistema podem estar interconectados por qualquer forma ou meio de comunicação de dados digitais com fio ou sem fio (ou uma combinação de comunicação de dados), por exemplo, uma rede de comunicação. Os exemplos de redes de comunicação incluem uma rede local (LAN), uma rede de acesso de rádio (RAN), uma rede de área metropolitana (MAN), uma rede de longa distância (WAN), Interoperabilidade Mundial para Acesso a Microondas (WIMAX), uma rede de área local sem fio (WLAN) utilizando, por exemplo, 802.11 a/b/g/n ou 802.20 (ou uma combinação de 802.11xe 802.20 ou outros protocolos consistentes com esta descrição), toda ou parte da Internet, ou qualquer outro sistema de comunicação ou sistemas em um ou mais locais (ou uma combinação de redes de comunicação). A rede pode se comunicar, por exemplo, com os pacotes IP
(Internet Protocol), quadros Frame Relay, células ATM (Asynchronous Transfer Mode), voz, vídeo, dados ou outras informações adequadas (ou uma combinação de tipos de comunicação) entre endereços de rede.
[086] O sistema de computação pode incluir os clientes e servidores. Um cliente e um servidor, em geral, são remotos entre si e normalmente interagem através de uma rede de comunicação. A relação de cliente e servidor surge em virtude de programas de computador em execução nos respectivos computadores e que possui uma relação cliente-servidor entre si.
[087] Embora esta especificação contenha muitos detalhes específicos de realização, estes não devem ser interpretados como limitações no âmbito de qualquer invenção ou no âmbito do que pode ser reivindicado, mas como descrições de características que podem ser específicas para as realizações específicas de determinadas invenções. Determinadas características descritas na presente invenção no contexto de realizações separadas também podem ser implementadas, em combinação, em uma única realização. Por outro lado, diversas características descritas no contexto de uma única realização também podem ser implementadas em diversas realizações, separadamente ou em qualquer subcombinação adequada. Além disso, embora as características descritas anteriormente possam estar descritas como atuando em determinadas combinações e até mesmo inicialmente reivindicadas como tal, uma ou mais características de uma combinação reivindicada, em alguns casos, podem ser excisadas da combinação, e a combinação reivindicada pode ser direcionada a uma combinação, subcombinação ou variação de uma subcombinação.
[088] As realizações específicas do assunto foram descritas. Outras realizações, alterações e permutações das realizações descritas estão dentro do âmbito das seguintes reivindicações, conforme será evidente para os técnicos no assunto. Embora as operações sejam representadas nos desenhos ou reivindicações em uma ordem específica, isso não deve ser entendido como exigindo que tais operações sejam executadas na ordem especial mostrada ou em ordem sequencial, ou que todas as operações ilustradas sejam executadas (algumas operações podem ser consideradas opcionais).), para alcançar os resultados desejáveis. Em determinadas circunstâncias, o processamento multitarefa ou paralelo (ou uma combinação de processamento multitarefa e paralelo) pode ser vantajoso e realizado conforme adequado.
[089] Além disso, a separação ou integração de diversos módulos e componentes do sistema nas realizações descritas anteriormente não devem ser entendidas como exigindo tal separação ou integração em todas as realizações, e deve ser entendido que os componentes e sistemas do programa descritos, em geral, podem ser integrados em conjunto em um único item de software ou empacotados em diversos itens de software.
[090] Por conseguinte, as realizações de exemplo descritas anteriormente não definem ou restringem esta descrição. Outras mudanças, substituições e alterações também são possíveis sem sair do escopo da presente invenção.
[091] Além disso, qualquer realização reivindicada é considerada aplicável a, pelo menos, um método implementado por computador; um meio não transitório, legível por computador, que armazena as instruções legíveis por computador para realizar o método implementado por computador; e um sistema de computador incluindo uma memória de computador interoperacionalmente acoplada a um processador de hardware configurado para realizar o método implementado por computador ou as instruções armazenadas no meio não transitório, legível por computador.

Claims (20)

REIVINDICAÇÕES
1. MÉTODO IMPLEMENTADO POR COMPUTADOR (400), caracterizado pelo fato de que inclui as etapas de: - identificar (402), através de uma plataforma de classificação e de notificação de itens, os dados de classificação (516) que compreende as classificações respectivas de uma pluralidade de itens em relação a uma pluralidade de usuários; - identificar (404), através de uma plataforma de recomendação e de classificação de itens, dados de característica do usuário (518) que compreendem uma pluralidade de características do usuário contribuindo para as classificações respectivas da pluralidade de itens em relação a uma pluralidade de usuários; - receber (408), a partir de uma plataforma de rede social através da plataforma de recomendação e de classificação de itens por meio de um esquema de compartilhamento secreto sem um inicializador de confiança, uma pluralidade de dados manipulados de rede social (528) computados com base em dados de rede social e um primeiro número de variáveis aleatórias, em que os dados de rede social indicam as relações sociais entre quaisquer dois da pluralidade de usuários, em que, no esquema de compartilhamento secreto sem o inicializador de confiança, a plataforma de rede social compartilha com a plataforma de recomendação e de classificação de itens a pluralidade de dados manipulados de rede social (528) sem revelar os dados de rede social; e - atualizar (412), através da plataforma de recomendação e de classificação de itens, os dados de característica do usuário (518) com base nos dados de classificação (516) e na pluralidade de dados manipulados de rede social (528).
2. MÉTODO IMPLEMENTADO POR COMPUTADOR (400), de acordo com a reivindicação 1, caracterizado pelo fato de que, no esquema de compartilhamento secreto sem o inicializador de confiança, a plataforma de recomendação e de classificação de itens compartilha com a plataforma de rede social uma pluralidade de dados manipulados de característica do usuário sem revelar os dados de característica do usuário (518), e em que a pluralidade de dados manipulados de característica do usuário são computados com base nos dados de característica do usuário (518) e uma segunda pluralidade de variáveis aleatórias.
3. MÉTODO IMPLEMENTADO POR COMPUTADOR (400), de acordo com a reivindicação 2, caracterizado pelo fato de que ainda compreende, no esquema de compartilhamento secreto sem o inicializador de confiança, as etapas de: - obter, através da plataforma de recomendação e de classificação de itens, um vetor dos dados de característica do usuário (518); - gerar, através da plataforma de recomendação e de classificação de itens, os primeiros dados manipulados de característica do usuário com base no vetor dos dados de característica do usuário (518) e no segundo número de variáveis aleatórias; - transmitir, através da plataforma de recomendação e de classificação de itens para a plataforma de rede social, os primeiros dados manipulados de característica do usuário; - receber, através da plataforma de recomendação e de classificação de itens a partir da plataforma de rede social, os primeiros dados manipulados de rede social (528) computados com base nos dados de rede social e no primeiro número de variáveis aleatórias; e - gerar, através da plataforma de recomendação e de classificação de itens, um dos dados manipulados de característica do usuário com base em dois ou mais dos primeiros dados manipulados de característica do usuário, os primeiros dados manipulados de rede social (528) ou o segundo número de variáveis aleatórias.
4. MÉTODO IMPLEMENTADO POR COMPUTADOR (400), de acordo com a reivindicação 2, caracterizado pelo fato de que a atualização dos dados de característica do usuário (518) compreende a computação de um produto dos dados de característica do usuário (518) e dos dados de rede social com base na soma de um de uma pluralidade de dados manipulados de característica do usuário e um da pluralidade de dados manipulados de rede social (528).
5. MÉTODO IMPLEMENTADO POR COMPUTADOR (400), de acordo com a reivindicação 3, caracterizado pelo fato de computação de um produto dos dados de característica do usuário (518) e dos dados de rede social computando uma soma de um de uma pluralidade de dados manipulados de característica do usuário e um da pluralidade de dados manipulados de rede social (528) sem os dados de rede social compreendem: para cada entrada no produto dos dados de característica do usuário (518) e dos dados de rede social, computando um da pluralidade de dados manipulados de características do usuário e um da pluralidade de dados manipulados de rede social (528) sem os dados de rede social.
6. MÉTODO IMPLEMENTADO POR COMPUTADOR (400), de acordo com a reivindicação 1, caracterizado pelo fato de que ainda compreende: - identificar dados da característica do item (526) que compreendem uma pluralidade de características de item contribuindo para as classificações respectivas da pluralidade de itens em relação à pluralidade de usuários, em que um produto dos dados da característica do usuário e dos dados da característica do item (526) resultam em uma estimativa dos dados de classificação (516); e - atualizar os dados da característica do item com base nos dados de classificação (516), nos dados de característica do usuário (518) e na pluralidade de dados manipulados de rede social (528).
7. MÉTODO IMPLEMENTADO POR COMPUTADOR (400), de acordo com a reivindicação 5, caracterizado pelo fato de que ainda compreende as etapas de: - gerar (416) os dados de classificação previstos da pluralidade de itens em relação à pluralidade de usuários com base no produto dos dados de característica do usuário (518) e dos dados da característica do item (526); e - gerar (418) uma recomendação de um item específico para um cliente específico com base nos dados de classificação previstos.
8. MÉTODO IMPLEMENTADO POR COMPUTADOR (400), de acordo com a reivindicação 6, caracterizado pelo fato de que a atualização dos dados da característica do usuário (518) compreende a solução de um problema de optimização para minimizar uma soma ponderada de uma diferença entre os dados de classificação previstos e os dados de classificação (516), os dados de característica do usuário (518) ponderados pelos dados de rede social e um termo de prevenção de superposição.
9. MÉTODO IMPLEMENTADO POR COMPUTADOR (400), de acordo com a reivindicação 7, caracterizado pelo fato de que a solução de um problema de otimização compreende a solução de uma equação: - em que: - Ui representa um vetor dos dados de característica do usuário (518) correspondente ao usuário i; - Vj representa um vetor dos dados da característica do item (526) correspondente ao item j; - Rij representa uma classificação do item j pelo usuário i; - Sik representa uma relação social entre o usuário i e o usuário k;
- 𝜆1 representa um peso predefinido associado aos dados de rede social; e - 𝜆2 representa um peso predefinido para evitar a superposição.
10. MEIO LEGÍVEL POR COMPUTADOR, caracterizado pelo fato de que armazena uma ou mais instruções executáveis por um sistema de computador (500) para realizar as operações que compreende: - identificar (402), através de uma plataforma de classificação e de notificação de itens, os dados de classificação (516) que compreende as classificações respectivas de uma pluralidade de itens em relação a uma pluralidade de usuários; - identificar (404), através de uma plataforma de recomendação e de classificação de itens, os dados de característica do usuário (518) que compreendem uma pluralidade de características do usuário contribuindo para as classificações respectivas da pluralidade de itens em relação à pluralidade de usuários; - receber (408), a partir de uma plataforma de rede social através da plataforma de recomendação e de classificação de itens por meio de um esquema de compartilhamento secreto sem um inicializador de confiança, uma pluralidade de dados manipulados de rede social (528) computados com base em dados de rede social e um primeiro número de variáveis aleatórias, em que os dados de rede social indicam as relações sociais entre quaisquer dois da pluralidade de usuários, em que, no esquema de compartilhamento secreto sem o inicializador de confiança, a plataforma de rede social compartilha com a plataforma de recomendação e de classificação de itens a pluralidade de dados manipulados de rede social (528) sem revelar os dados de rede social; e - atualizar (412), através da plataforma de recomendação e de classificação de itens, os dados de característica do usuário (518) com base nos dados de classificação (516) e na pluralidade de dados manipulados de rede social (528).
11. MEIO LEGÍVEL POR COMPUTADOR, de acordo com a reivindicação 10, caracterizado pelo fato de que: - no esquema de compartilhamento secreto sem o inicializador de confiança, a plataforma de recomendação e de classificação de itens compartilha com a plataforma de rede social uma pluralidade de dados manipulados de característica do usuário sem revelar os dados de característica do usuário (518), - a pluralidade de dados manipulados de característica do usuário são computados com base nos dados de característica do usuário (518) e uma segunda pluralidade de variáveis aleatórias; e - a atualização dos dados de característica do usuário (518) compreende a computação de um produto dos dados de característica do usuário (518) e dos dados de rede social com base na soma de um de uma pluralidade de dados manipulados de característica do usuário e um da pluralidade de dados manipulados de rede social (528).
12. MEIO LEGÍVEL POR COMPUTADOR, de acordo com a reivindicação 11, caracterizado pelo fato de que as operações ainda compreendem: no esquema de compartilhamento secreto sem o inicializador de confiança: - obter, através da plataforma de recomendação e de classificação de itens, um vetor dos dados de característica do usuário (518); - gerar, através da plataforma de recomendação e de classificação de itens, os primeiros dados manipulados de característica do usuário com base no vetor dos dados de característica do usuário (518) e no segundo número de variáveis aleatórias; - transmitir, através da plataforma de recomendação e de classificação de itens para a plataforma de rede social, os primeiros dados manipulados de característica do usuário;
- receber, através da plataforma de recomendação e de classificação de itens a partir da plataforma de rede social, os primeiros dados manipulados de rede social (528) computados com base nos dados de rede social e no primeiro número de variáveis aleatórias; e - gerar, através da plataforma de recomendação e de classificação de itens, um dos dados manipulados de característica do usuário com base em dois ou mais dos primeiros dados manipulados de característica do usuário, os primeiros dados manipulados de rede social (528) ou o segundo número de variáveis aleatórias.
13. MEIO LEGÍVEL POR COMPUTADOR, de acordo com a reivindicação 11, caracterizado pelo fato de que a computação de um produto dos dados de característica do usuário (518) e dos dados de rede social computando uma soma de um de uma pluralidade de dados manipulados de característica do usuário e um da pluralidade de dados manipulados de rede social (528) sem os dados de rede social compreende: para cada entrada no produto dos dados de característica do usuário (518) e dos dados de rede social, computando um da pluralidade de dados manipulados de característica do usuário e um da pluralidade de dados manipulados de rede social (528) sem os dados de rede social.
14. MEIO LEGÍVEL POR COMPUTADOR, de acordo com a reivindicação 10, caracterizado pelo fato de que as operações ainda compreendem: - identificar (406) os dados da característica do item que compreendem uma pluralidade de características de item contribuindo para as classificações respectivas da pluralidade de itens em relação à pluralidade de usuários, em que um produto dos dados da característica do usuário e dos dados da característica do item resultam em uma estimativa dos dados de classificação (516); e
- atualizar (414) os dados da característica do item com base nos dados de classificação (516), nos dados de característica do usuário (518) e na pluralidade de dados manipulados de rede social (528).
15. SISTEMA IMPLEMENTADO POR COMPUTADOR (500), caracterizado pelo fato de que compreende: - um ou mais computadores; e - um ou mais dispositivos de memória de computador (507) interoperacionalmente acoplada com um ou mais computadores e possuindo as instruções de armazenamento de meios tangíveis, não transitórios, legíveis por máquina, que quando executadas por um ou mais computadores, realizam as operações que compreendem: - identificar, através de uma plataforma de classificação e de notificação de itens, os dados de classificação (516) que compreende as classificações respectivas de uma pluralidade de itens em relação a uma pluralidade de usuários; - identificar, através de uma plataforma de recomendação e de classificação de itens, os dados de característica do usuário (518) que compreendem uma pluralidade de características do usuário contribuindo para as classificações respectivas da pluralidade de itens em relação à pluralidade de usuários; - receber, a partir de uma plataforma de rede social através da plataforma de recomendação e de classificação de itens por meio de um esquema de compartilhamento secreto sem um inicializador de confiança, uma pluralidade de dados manipulados de rede social (528) computados com base em dados de rede social e um primeiro número de variáveis aleatórias, em que os dados de rede social indicam as relações sociais entre quaisquer dois da pluralidade de usuários, em que, no esquema de compartilhamento secreto sem o inicializador de confiança, a plataforma de rede social compartilha com a plataforma de recomendação e de classificação de itens a pluralidade de dados manipulados de rede social (528) sem revelar os dados de rede social; e - atualizar, através da plataforma de recomendação e de classificação de itens, os dados de característica do usuário (518) com base nos dados de classificação (516) e na pluralidade de dados manipulados de rede social (528).
16. SISTEMA IMPLEMENTADO POR COMPUTADOR (500), de acordo com a 15, caracterizado pelo fato de - que, no esquema de compartilhamento secreto sem o inicializador de confiança, a plataforma de recomendação e de classificação de itens compartilha com a plataforma de rede social uma pluralidade de dados manipulados de característica do usuário sem revelar os dados de característica do usuário (518), - que a pluralidade de dados manipulados de característica do usuário são computados com base nos dados de característica do usuário (518) e uma segunda pluralidade de variáveis aleatórias; e - que a atualização dos dados de característica do usuário (518) compreende a computação de um produto dos dados de característica do usuário (518) e dos dados de rede social com base na soma de um de uma pluralidade de dados manipulados de característica do usuário e um da pluralidade de dados manipulados de rede social (528).
17. SISTEMA IMPLEMENTADO POR COMPUTADOR (500), de acordo com a reivindicação 16, caracterizado pelo fato que a computação de um produto dos dados de característica do usuário (518) e dos dados de rede social computando uma soma de um de uma pluralidade de dados manipulados de característica do usuário e um da pluralidade de dados manipulados de rede social (528) sem os dados de rede social compreendem: para cada entrada no produto dos dados de característica do usuário (518) e dos dados de rede social,
computando um da pluralidade de dados manipulados de características do usuário e um da pluralidade de dados manipulados de rede social (528) sem os dados de rede social.
18. SISTEMA IMPLEMENTADO POR COMPUTADOR (500), de acordo com a reivindicação 15, caracterizado pelo fato de que as operações ainda compreendem: - identificar dados da característica do item (526) que compreendem uma pluralidade de características de item contribuindo para as classificações respectivas da pluralidade de itens em relação à pluralidade de usuários, em que um produto dos dados da característica do usuário e dos dados da característica do item resultam em uma estimativa dos dados de classificação (516); e - atualizar os dados da característica do item (526) com base nos dados de classificação (516), nos dados de característica do usuário (518) e na pluralidade de dados manipulados de rede social (528).
19. SISTEMA IMPLEMENTADO POR COMPUTADOR (500), de acordo com a reivindicação 18, caracterizado pelo fato de que as operações ainda compreendem: - gerar os dados de classificação previstos da pluralidade de itens em relação à pluralidade de usuários com base no produto dos dados de característica do usuário (518) e dos dados da característica do item (526); - gerar uma recomendação de um item específico para um cliente específico com base nos dados de classificação previstos; e - em que a atualização dos dados de característica do usuário (518) compreende a solução de um problema de optimização para minimizar uma soma ponderada de uma diferença entre os dados de classificação previstos e os dados de classificação (516), os dados de característica do usuário (518) ponderados pelos dados de rede social e um termo de prevenção de superposição.
20. SISTEMA IMPLEMENTADO POR COMPUTADOR (500), de acordo com a reivindicação 19, caracterizado pelo fato de que a solução de um problema de otimização compreende a solução de uma equação: - em que: - Ui representa um vetor dos dados de característica do usuário (518) correspondente ao usuário i; - Vj representa um vetor dos dados da característica do item correspondente ao item j; - Rij representa uma classificação do item j pelo usuário i; - Sik representa uma relação social entre o usuário i e o usuário k; - 𝜆1 representa um peso predefinido associado aos dados de rede social; e - 𝜆2 representa um peso predefinido para evitar a superposição.
Petição 870190058525, de 25/06/2019, pág. 58/63 Plataforma A Plataforma B Usuário ui - Produto vj Usuário ui - Usuário uk Dados de classificação R Dados de rede social S 1/5
Plataforma A Plataforma B Usuário u - Produto v User ui - Usuário uk Dados de classificação R j Dados de redes sociais S Dados de característica do usuário U Dados de característica do produto V Iterações Máximas T
Para t < T: Para t < T: Atualizar dados de Esquema de característica do usuário Compartilhamento Secreto U e dados de característica sem Inicializador Confiável do produto U*diag(S*Im) e U*S V utilizando as Eqs. (3) e (4)
Gerar as recomendações com base em U e V
Plataforma A Plataforma B
Obter o vetor x Obter o vetor y
Enlace K vezes Enlace K vezes
Gerar Gerar Gerar Gerar
Computar Computar Computar Computar Computar Computar
Computar
Computar
Computar Computar
Computar Computar
Identificar, através de uma plataforma de recomendação e classificação de itens, os dados de classificação incluindo as classificações respectivas de um número de itens em relação a um número de usuários Identificar os dados da característica do usuário, incluindo um número de características do usuário que contribuem para as classificações respectivas de um número de itens em relação a um número de usuários Identificar os dados da característica do item, incluindo um número de características do item, contribuindo para as classificações respectivas de um número de itens em relação a um número de usuários.
Receber um número de dados manipulados de rede social a partir de uma plataforma de rede social por meio de um esquema de compartilhamento secreto sem um inicializador confiável Enviar um número de dados manipulados de característica do usuário para a plataforma de rede social sem revelar os dados de característica do usuário Atualizar os dados de característica do usuário com base nos dados de classificação e no número de dados manipulados da rede social Atualizar os dados de característica do item com base nos dados de classificação e nos dados de característica do usuário Gerar os dados de classificação previstos do número de itens em relação ao número de usuários com base no item dos dados de característica do usuário e nos dados de característica do item Gerar uma recomendação de um item específico para um determinado cliente com base nos dados de classificação previstos
Rede
Processador
Base de dados Memória
Dados de classificação
Aplicativo Dados de característica do usuário
Dados de característica do item
Camada de serviço
Dados manipulados de rede social
Fonte de alimentação
BR112019008135-6A 2018-10-17 2018-10-17 Método implementado por computador, meio legível por computador e sistema implementado por computador BR112019008135B1 (pt)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/110688 WO2020077573A1 (en) 2018-10-17 2018-10-17 Secret sharing with no trusted initializer

Publications (2)

Publication Number Publication Date
BR112019008135A2 true BR112019008135A2 (pt) 2021-05-18
BR112019008135B1 BR112019008135B1 (pt) 2022-01-04

Family

ID=66850327

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112019008135-6A BR112019008135B1 (pt) 2018-10-17 2018-10-17 Método implementado por computador, meio legível por computador e sistema implementado por computador

Country Status (16)

Country Link
US (2) US10789377B2 (pt)
EP (2) EP3665583A1 (pt)
JP (1) JP6803980B1 (pt)
KR (1) KR102150816B1 (pt)
CN (2) CN110366722A (pt)
AU (2) AU2018353923B2 (pt)
BR (1) BR112019008135B1 (pt)
CA (2) CA3040669A1 (pt)
ES (1) ES2836207T3 (pt)
MX (1) MX2019004664A (pt)
PH (1) PH12019500891A1 (pt)
PL (1) PL3659292T3 (pt)
RU (1) RU2728522C1 (pt)
SG (2) SG11201903587TA (pt)
WO (2) WO2020077573A1 (pt)
ZA (1) ZA201902550B (pt)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3665583A1 (en) 2018-10-17 2020-06-17 Alibaba Group Holding Limited Secret sharing with no trusted initializer
CN111030811B (zh) * 2019-12-13 2022-04-22 支付宝(杭州)信息技术有限公司 一种数据处理的方法
CN111176582A (zh) * 2019-12-31 2020-05-19 北京百度网讯科技有限公司 矩阵存储方法、矩阵访问方法、装置和电子设备
CN111461858B (zh) * 2020-03-10 2023-02-17 支付宝(杭州)信息技术有限公司 基于隐私保护的连乘计算方法、装置、系统和电子设备
CN111428276B (zh) * 2020-03-19 2022-08-02 腾讯科技(深圳)有限公司 一种数据处理的方法、装置、设备和介质
CN111162896B (zh) * 2020-04-01 2020-06-26 支付宝(杭州)信息技术有限公司 双方联合进行数据处理的方法及装置
CN111506922B (zh) * 2020-04-17 2023-03-10 支付宝(杭州)信息技术有限公司 多方联合对隐私数据进行显著性检验的方法和装置
CN111241570B (zh) * 2020-04-24 2020-07-17 支付宝(杭州)信息技术有限公司 保护数据隐私的双方联合训练业务预测模型的方法和装置
CN111291417B (zh) * 2020-05-09 2020-08-28 支付宝(杭州)信息技术有限公司 保护数据隐私的多方联合训练对象推荐模型的方法及装置
CN112163227B (zh) * 2020-09-02 2022-04-29 湖北工业大学 一种电商平台卖家用户销售额多维统计分析系统及方法
CN112231561B (zh) * 2020-10-14 2024-06-07 深圳前海微众银行股份有限公司 数据处理方法、装置、设备及存储介质
US11379743B2 (en) * 2020-11-02 2022-07-05 Sas Institute Inc. Recommendation system
US11544767B2 (en) * 2020-11-02 2023-01-03 Sas Institute Inc. Recommendation system with implicit feedback
CN112311546B (zh) * 2020-12-25 2021-04-09 鹏城实验室 数据保密判定方法、装置、设备及计算机可读存储介质
CN112560106B (zh) * 2021-02-20 2021-05-18 支付宝(杭州)信息技术有限公司 针对隐私矩阵进行处理的方法、装置和系统
JP2024081261A (ja) 2022-12-06 2024-06-18 富士通株式会社 プログラム、算出方法および情報処理装置
CN116383848B (zh) * 2023-04-04 2023-11-28 北京航空航天大学 一种三方安全计算防作恶方法、设备及介质
US11743524B1 (en) 2023-04-12 2023-08-29 Recentive Analytics, Inc. Artificial intelligence techniques for projecting viewership using partial prior data sources

Family Cites Families (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7788123B1 (en) * 2000-06-23 2010-08-31 Ekhaus Michael A Method and system for high performance model-based personalization
US20040133574A1 (en) * 2003-01-07 2004-07-08 Science Applications International Corporaton Vector space method for secure information sharing
JP2007510947A (ja) * 2003-11-03 2007-04-26 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 多数当事者の効率的な乗算のための方法及び装置
US20090197681A1 (en) 2008-01-31 2009-08-06 Microsoft Corporation System and method for targeted recommendations using social gaming networks
US8407286B2 (en) * 2008-05-15 2013-03-26 Yahoo! Inc. Method and apparatus for utilizing social network information for showing reviews
US8068426B2 (en) * 2008-05-29 2011-11-29 Massachusetts Institute Of Technology Feedback-based online network coding
US20100076850A1 (en) * 2008-09-22 2010-03-25 Rajesh Parekh Targeting Ads by Effectively Combining Behavioral Targeting and Social Networking
US8364713B2 (en) * 2009-01-20 2013-01-29 Titanium Fire Ltd. Personal data manager systems and methods
US8489515B2 (en) * 2009-05-08 2013-07-16 Comcast Interactive Media, LLC. Social network based recommendation method and system
US9460092B2 (en) * 2009-06-16 2016-10-04 Rovi Technologies Corporation Media asset recommendation service
US20110060738A1 (en) * 2009-09-08 2011-03-10 Apple Inc. Media item clustering based on similarity data
EP2507758A4 (en) * 2009-12-04 2013-11-27 Ericsson Telefon Ab L M SYSTEM AND METHOD FOR DATA PROTECTION OF USER INFORMATION IN A RECOMMENDATION SYSTEM
US20110246500A1 (en) * 2010-03-30 2011-10-06 Praphul Chandra Storing and querying of user feedback in a personal repository accessible to a personal computing device
US8812591B2 (en) * 2011-06-15 2014-08-19 Facebook, Inc. Social networking system data exchange
US9536268B2 (en) 2011-07-26 2017-01-03 F. David Serena Social network graph inference and aggregation with portability, protected shared content, and application programs spanning multiple social networks
EP2549423A1 (en) * 2011-07-22 2013-01-23 Axel Springer Digital TV Guide GmbH Automatic determination of the relevance of recommendations in a social network
US20130054481A1 (en) * 2011-08-23 2013-02-28 Infosys Limited System and method for sharing, analyzing and consolidating medical data in a social network
US20130097056A1 (en) * 2011-10-13 2013-04-18 Xerox Corporation Methods and systems for recommending services based on an electronic social media trust model
EP2590126A1 (en) * 2011-11-01 2013-05-08 Nederlandse Organisatie voor toegepast -natuurwetenschappelijk onderzoek TNO Recommender system for providing recommendations to groups of users
KR20160102573A (ko) 2011-12-19 2016-08-30 인텔 코포레이션 스마트 장치 지원 상거래
US9043250B2 (en) * 2012-01-10 2015-05-26 Telcordia Technologies, Inc. Privacy-preserving aggregated data mining
US10311403B2 (en) * 2012-06-04 2019-06-04 Apple Inc. Providing feedback via a social network from a media distribution platform
CN104620267A (zh) * 2012-06-21 2015-05-13 汤姆逊许可公司 用于推断用户人口统计的方法和装置
WO2014023432A1 (en) * 2012-08-09 2014-02-13 Livestudies Srl Apparatus and method for a collaborative environment using distributed touch sensitive surfaces
CN102932100B (zh) * 2012-10-16 2016-09-21 四川电力科学研究院 一种并行加扰的方法及装置
CN105637798A (zh) * 2013-03-04 2016-06-01 汤姆逊许可公司 用于隐私保护计数的方法和系统
US10733194B2 (en) * 2013-03-08 2020-08-04 Warren Young Systems and methods for providing a review platform
US20140288999A1 (en) 2013-03-12 2014-09-25 Correlor Technologies Ltd Social character recognition (scr) system
US20150066689A1 (en) * 2013-08-27 2015-03-05 Jon Anthony ASTORE Method and system for providing social media ecosystem compensation
WO2015061696A1 (en) * 2013-10-25 2015-04-30 Peep Mobile Digital Social event system
CN103713938A (zh) * 2013-12-17 2014-04-09 江苏名通信息科技有限公司 虚拟化环境下基于OpenMP的多GPU协同计算方法
CN103995823A (zh) 2014-03-25 2014-08-20 南京邮电大学 一种基于社交网络的信息推荐方法
US10235403B2 (en) * 2014-07-08 2019-03-19 Palo Alto Research Center Incorporated Parallel collective matrix factorization framework for big data
EP3195522B1 (en) * 2014-08-01 2019-08-21 National ICT Australia Limited Generating shares of secret data
CN104156436B (zh) 2014-08-13 2017-05-10 福州大学 一种社交云媒体协同过滤推荐方法
US9483311B2 (en) * 2014-09-15 2016-11-01 International Business Machines Corporation Logical data shuffling
US20180293283A1 (en) * 2014-11-14 2018-10-11 Marin Litoiu Systems and methods of controlled sharing of big data
US10289733B2 (en) * 2014-12-22 2019-05-14 Rovi Guides, Inc. Systems and methods for filtering techniques using metadata and usage data analysis
US9706180B2 (en) * 2015-03-23 2017-07-11 Panasonic Intellectual Property Management Co., Ltd. Projection display apparatus
US10341701B2 (en) * 2015-04-21 2019-07-02 Edge2020 LLC Clustering and adjudication to determine a recommendation of multimedia content
CN104966125B (zh) 2015-05-06 2018-07-24 同济大学 一种社交网络的物品评分及推荐方法
US20160381158A1 (en) * 2015-06-29 2016-12-29 Google Inc. Automatic Invitation Delivery System
JP2017034531A (ja) * 2015-08-04 2017-02-09 富士通株式会社 動画像符号化装置及び動画像符号化方法
CN105550211A (zh) 2015-12-03 2016-05-04 云南大学 一种融合社交网络和项目内容的协同推荐系统
IL243026A0 (en) * 2015-12-10 2016-02-29 Rokach Lior Designing recommendation systems based on hidden context
US20180373793A1 (en) * 2015-12-16 2018-12-27 Thomson Licensing Methods and apparatuses for processing biometric responses to multimedia content
CN105677701A (zh) * 2015-12-24 2016-06-15 苏州大学 一种基于不经意传输的社会化推荐方法
US11367149B2 (en) * 2016-01-15 2022-06-21 Carnegie Mellon University Pattern identification in time-series social media data, and output-dynamics engineering for a dynamic system having one or more multi-scale time-series data sets
US10708234B2 (en) * 2016-03-24 2020-07-07 International Business Machines Corporation System, method, and recording medium for preventing back propogation of data protection
RU2613530C1 (ru) 2016-04-19 2017-03-16 Игорь Юрьевич Скворцов Самонастраивающаяся интерактивная система, способ и считываемый компьютером носитель данных обмена комментариями между пользователями
WO2017200510A1 (ru) 2016-05-18 2017-11-23 Евгэн Мыхайловыч ВЫСОЦЬКЫЙ Обработка персональных и совокупных предпочтений пользователей (варианты)
US20180218426A1 (en) * 2017-01-27 2018-08-02 Xerox Corporation Systems and methods for privacy preserving recommendation of items
RU2649797C1 (ru) 2017-06-14 2018-04-04 Общество С Ограниченной Ответственностью "Центр Разработки И Внедрения Инновационных Технологий" Интерактивная система, способ и считываемый компьютером носитель данных представления рекламного контента
US10521225B2 (en) * 2017-06-29 2019-12-31 Oracle International Corporation Matrix multiplication at memory bandwidth
DE112018002942T5 (de) * 2017-07-06 2020-03-05 Robert Bosch Gmbh Verfahren und System zur datenschutzwahrenden Social-Media-Werbung
RU2666336C1 (ru) 2017-08-01 2018-09-06 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для рекомендации медиаобъектов
CN108228833B (zh) 2018-01-04 2021-08-03 浙江大学 一种利用用户倾向性学习解决社区项目推荐任务的方法
CN108418810A (zh) * 2018-02-08 2018-08-17 中国人民解放军国防科技大学 一种基于Hadamard矩阵的秘密分享方法
CN108596774B (zh) * 2018-04-24 2021-10-01 山东师范大学 基于深层次网络嵌入特征的社会化信息推荐算法及系统
EP3665583A1 (en) 2018-10-17 2020-06-17 Alibaba Group Holding Limited Secret sharing with no trusted initializer
JP7109501B2 (ja) 2020-06-05 2022-07-29 東芝ライフスタイル株式会社 冷蔵庫

Also Published As

Publication number Publication date
EP3659292A4 (en) 2020-06-03
EP3659292B8 (en) 2020-12-02
EP3665583A4 (en) 2020-06-17
EP3659292A1 (en) 2020-06-03
AU2019257397A1 (en) 2020-05-07
SG11201903587TA (en) 2020-05-28
MX2019004664A (es) 2022-05-12
CN110366722A (zh) 2019-10-22
JP6803980B1 (ja) 2020-12-23
WO2020077573A1 (en) 2020-04-23
SG11201910155SA (en) 2020-05-28
CN110546642A (zh) 2019-12-06
US10789377B2 (en) 2020-09-29
AU2019257397B2 (en) 2020-10-01
US11386212B2 (en) 2022-07-12
WO2020077959A1 (en) 2020-04-23
BR112019008135B1 (pt) 2022-01-04
PH12019500891A1 (en) 2019-06-17
CN110546642B (zh) 2023-06-02
ES2836207T3 (es) 2021-06-24
CA3040669A1 (en) 2020-04-17
EP3659292B1 (en) 2020-09-30
US20200125745A1 (en) 2020-04-23
JP2021508064A (ja) 2021-02-25
KR20200045441A (ko) 2020-05-04
CA3059610A1 (en) 2020-04-17
RU2728522C1 (ru) 2020-07-30
KR102150816B1 (ko) 2020-09-02
AU2018353923B2 (en) 2021-05-06
EP3665583A1 (en) 2020-06-17
US20200320605A1 (en) 2020-10-08
ZA201902550B (en) 2020-12-23
AU2018353923A1 (en) 2020-05-07
PL3659292T3 (pl) 2021-07-05

Similar Documents

Publication Publication Date Title
BR112019008135A2 (pt) método implementado por computador, meio legível por computador e sistema implementado por computador
Chiregi et al. A new method for trust and reputation evaluation in the cloud environments using the recommendations of opinion leaders' entities and removing the effect of troll entities
US10672058B2 (en) Secret sharing with a trusted initializer
US20200134034A1 (en) Recommendation systems implementing separated attention on like and dislike items for personalized ranking
US20200394534A1 (en) Multi task oriented recommendation system for benchmark improvement
US10484342B2 (en) Accuracy and security of data transfer to an online user account
US20180075246A1 (en) Securely and efficiently sharing data exchange records
US11847246B1 (en) Token based communications for machine learning systems
US20210241231A1 (en) Automatic Assignment of Tasks to Users in Collaborative Projects
Ghosh Securing Loosely-Coupled Collaborations in a SaaS Cloud through Risk Estimation and Access Conict Mediation

Legal Events

Date Code Title Description
B25B Requested transfer of rights rejected

Owner name: ADVANCED NEW TECHNOLOGIES CO., LTD. (KY)

Free format text: INDEFERIDO O PEDIDO DE TRANSFERENCIA CONTIDO NA PETICAO 870200160150 DE 22/12/2020, EM VIRTUDE DO PEDIDO JA ESTAR EM NOME DO INTERESSADO FINAL.

B25B Requested transfer of rights rejected

Owner name: ADVANCED NEW TECHNOLOGIES CO., LTD. (KY)

Free format text: INDEFERIDO O PEDIDO DE TRANSFERENCIA CONTIDO NA PETICAO 870200160652 DE 23/12/2020, EM VIRTUDE DO PEDIDO JA ESTAR EM NOME DO INTERESSADO.

B09A Decision: intention to grant [chapter 9.1 patent gazette]
B09W Correction of the decision to grant [chapter 9.1.4 patent gazette]

Free format text: O PRESENTE PEDIDO TEVE UM PARECER DE DEFERIMENTO NOTIFICADO NA RPI NO 2651 DE 26/10/2021. ATRAVES DA MENSAGEM FALE CONOSCO 979595, A REQUERENTE SOLICITA CORRIGIR O QUADRO 1 DO PARECER DE DEFERIMENTO, UMA VEZ QUE NO QUADRO REIVINDICATORIO DO QUADRO 1 DO PARECER DE DEFERIMENTO A DEPOSITANTE CONSTATOU UM ERRO MATERIAL EM RELACAO A INDICACAO DE DEPENDENCIA DA REIVINDICACAO 15. DIANTE DISTO, CONCLUO PELA RETIFICACAO DO PARECER DE DEFERIMENTO, DEVENDO INTEGRAR A CARTA PATENTE O QUE CONSTAM NO QUADRO 1 DESTE PARECER.

B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 17/10/2018, OBSERVADAS AS CONDICOES LEGAIS.