IP Library Granted Patent US 11,651,041
Granted Patent B2
US 11,651,041 · App. 16/575,139 · Granted May 16, 2023

Method and system for storing a plurality of documents

Inventors: Aleksey Valerievich Shlyunkin (Kareliya Resp., RU); Nikita Denisovich Uvarov (Troitsk, RU); Aleksandr Alekseevich Boymel (Moskovskaya obl., RU); Aleksandr Nikolaevich Gotmanov (Moskovskaya obl., RU)
Assignee: YANDEX EUROPE AG
G06F16/90328G06F16/909G06F16/9038G06F16/90335G06K9/6223G06N20/00
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,651,041
App. No.
16/575,139
Granted
May 16, 2023
Kind
B2
Abstract

A method and server for storing documents in a database system is disclosed. The method includes acquiring document data associated with the documents. For each document, a Machine Learning Algorithm is employed to generate respective document vectors based on the respective document data. The method also includes storing the documents as groups of documents in the database system. Each group of documents is associated with a respective group vector. A given group of documents has documents associated with document vectors that are in a spatial proximity to the respective group vector.

Claims (67)

1. A method of storing a plurality of documents in a database system, the database system being communicatively coupled to a server, the database system comprising a plurality of database servers, the method executable by the server, the method comprising:

acquiring, by the server, document data associated with respective documents from the plurality of documents;

for each document from the plurality of documents, generating, by the server employing a Machine Learning Algorithm (MLA), a respective document vector based on the respective document data,

the MLA having been trained:

based on a given training document-query pair associated with a respective relevance score, the relevance score being indicative of a relevance of a training document in the given training pair to a training query in the given training pair,

to generate (i) a training document vector for the training document and (ii) a training query vector for the training query,

such that a proximity value between (i) the training document vector of the training document and (ii) the training query vector of the training query is representative of the relevance score;

grouping, by the server, the plurality of documents such that a given group of documents has documents associated with document vectors that are in a spatial proximity to a respective group vector; and

storing, by the server, the groups of documents such that any two database servers of the plurality of database servers that are geographically close to each other store groups of documents respectively associated with group vectors that are more similar to each other than group vectors of those groups of documents that are stored on any other two database servers of the plurality of database servers that are geographically farther from each other than the two database servers.

2. The method of claim 1 , wherein the spatial proximity is indicative of the documents in the given group of documents being similar to one another.

3. The method of claim 1 , wherein the method further comprises:

determining, by the server, the respective group vector for each group of documents based on the document vectors associated with the plurality of documents.

4. The method of claim 1 , wherein the groups of documents comprise K number of groups, K being a pre-determined number.

5. The method of claim 1 , wherein the MLA is a Neural Network (NN).

6. The method of claim 1 , wherein the grouping comprises:

executing, by the server, a K-means-type algorithm onto the document vectors associated with the plurality of documents thereby determining the group vectors and the respectively associated groups of documents of the plurality of documents.

7. The method of claim 1 , wherein the method further comprises:

receiving, by the server, a current query from an electronic device communicatively coupled to the server, the current query for providing the electronic device with a current document being relevant to the current query;

receiving, by the server, query data associated with the current query;

for the current query, generating, by the server, a current query vector for the current query based on the query data associated with the current query;

determining, by the server, a most similar group vector to the current query vector amongst the group vectors, the most similar group vector being associated with a target group of documents; and

accessing, by the server, the database system for retrieving documents from the target group of documents.

8. The method of claim 7 , wherein the accessing the database system comprises not retrieving documents from other groups of documents other than the target group of documents.

9. The method of claim 1 , wherein the database system is configured to host a database separated into a plurality of shards, and wherein the storing the groups of documents comprises:

storing, by the server, the groups of documents as respective shards of the database in the database system, each shard being associated with the respective group vector.

10. The method of claim 9 , wherein the database system comprises a plurality of database servers, and wherein the storing the groups of documents as the respective shards comprises:

storing, by the server, the plurality of shards of the database on the plurality of database servers of the database system.

11. The method of claim 10 , wherein a given database server of the plurality of database servers stores more than one of the plurality of shards.

12. The method of claim 10 , wherein more than one database servers of the plurality of database servers store a given shard from the plurality of shards.

13. The method of claim 10 , wherein:

any two database servers of the plurality of database servers that are geographically close store shards having group vectors that are more similar to each other than group vectors of shards that are stored on any other two database servers of the plurality of database servers that are geographically farther from each other than the two database servers.

14. The method of claim 10 , wherein the method further comprises:

receiving, by the server, a current query from an electronic device communicatively coupled to the server, the current query for providing the electronic device with a current document being relevant to the current query;

receiving, by the server, query data associated with the current query;

for the current query, generating, by the server, a current query vector for the current query based on the query data associated with the current query;

determining, by the server, a most similar group vector to the current query vector amongst the group vectors, the most similar group vector being associated with a target shard from the plurality of shards; and

accessing, by the server, a target database server from the plurality of database servers for retrieving documents of the target shard, the target database server storing the target shard.

15. The method of claim 14 , wherein the accessing the target database server comprises:

not accessing, by the server, other database servers of the database system other than the target database server.

16. The method of claim 14 , wherein the method further comprises determining the target database server:

based on a geographical location of the electronic device and the plurality of database servers.

17. A server for storing a plurality of documents in a database system, the database system being communicatively coupled to the server, the database system comprising a plurality of database servers, the server being configured to:

acquire document data associated with respective documents from the plurality of documents;

for each document from the plurality of documents, generate by employing a Machine Learning Algorithm (MLA), a respective document vector based on the respective document data,

the MLA having been trained:

based on a given training document-query pair associated with a respective relevance score, the relevance score being indicative of a relevance of a training document in the given training pair to a training query in the given training pair,

to generate (i) a training document vector for the training document and (ii) a training query vector for the training query,

such that a proximity value between (i) the training document vector of the training document and (ii) the training query vector of the training query is representative of the relevance score;

group, by the server, the plurality of documents such that a given group of documents has documents associated with document vectors that are in a spatial proximity to a respective group vector; and

store, by the server, the groups of documents such that any two database servers of the plurality of database servers that are geographically close to each other store groups of documents respectively associated with group vectors that are more similar to each other than group vectors of those groups of documents that are stored on any other two database servers of the plurality of database servers that are geographically farther from each other than the two database servers.

18. A method of storing a plurality of documents in a database system, the database system being communicatively coupled to a server, the method executable by the server, the method comprising:

acquiring, by the server, document data associated with respective documents from the plurality of documents;

for each document from the plurality of documents, generating, by the server employing a Machine Learning Algorithm (MLA), a respective document vector based on the respective document data, the MLA having been trained:

based on a given training document-query pair associated with a respective relevance score, the relevance score being indicative of a relevance of a training document in the given training pair to a training query in the given training pair,

to generate (i) a training document vector for the training document and (ii) a training query vector for the training query, such that a proximity value between (i) the training document vector of the training document and (ii) the training query vector of the training query is representative of the relevance score;

storing, by the server, the plurality of documents as groups of documents in the database system, each group of documents being associated with a respective group vector,

a given group of documents having documents associated with document vectors that are in a spatial proximity to the respective group vector,

wherein the database system is configured to host a database separated into a plurality of shards, and wherein the storing the groups of documents comprises:

storing, by the server, the groups of documents as respective shards of the database in the database system, each shard being associated with the respective group vector,

wherein the database system comprises a plurality of database servers, and wherein the storing the groups of documents as the respective shards comprises:

storing, by the server, the plurality of shards of the database on the plurality of database servers of the database system,

wherein the plurality of database servers are physically located in more than one geographic locations, and

wherein any two database servers of the plurality of database servers that are geographically close store shards having group vectors that are more similar to each other than group vectors of shards that are stored on any other two database servers of the plurality of database servers that are geographically farther from each other than the two database servers.

19. The server of claim 17 , wherein the database system is configured to host a database separated into a plurality of shards, and wherein when storing the groups of documents, the server is configured to:

store the groups of documents as respective shards of the database in the database system, each shard being associated with the respective group vector.

20. The server of claim 19 , wherein the database system comprises a plurality of database servers, and wherein when storing the groups of documents as the respective shards, the server is configured to:

store the plurality of shards of the database on the plurality of database servers of the database system.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 9, 2024
From: DIRECT CURSUS TECHNOLOGY L.L.C
To: Y.E. HUB ARMENIA LLC
Reel/Frame 068534/0537 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 15, 2023
From: YANDEX EUROPE AG
To: DIRECT CURSUS TECHNOLOGY L.L.C
Reel/Frame 065692/0720 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 3, 2020
From: SHLYUNKIN, ALEKSEY VALERIEVICH; UVAROV, NIKITA DENISOVICH; BOYMEL, ALEKSANDR ALEKSEEVICH; GOTMANOV, ALEKSANDR NIKOLAEVICH
To: YANDEX.TECHNOLOGIES LLC
Reel/Frame 051697/0463 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 3, 2020
From: YANDEX.TECHNOLOGIES LLC
To: YANDEX LLC
Reel/Frame 051697/0625 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 3, 2020
From: YANDEX LLC
To: YANDEX EUROPE AG
Reel/Frame 051697/0734 →
Priority Claims (1)
RU 2018146458 · Dec 26, 2018 · national
Continuity (1)
Related Publication 20200210484A1 · Jul 2, 2020