СПОСОБЫ И СЕРВЕРЫ ДЛЯ ХРАНЕНИЯ ДАННЫХ, СВЯЗАННЫХ С ПОЛЬЗОВАТЕЛЯМИ И ЦИФРОВЫМИ ЭЛЕМЕНТАМИ РЕКОМЕНДАТЕЛЬНОЙ СИСТЕМЫ

1. Способ хранения данных, связанных с пользователями рекомендательной системы и с цифровыми элементами, рекомендуемыми в рекомендательной системе, способной предоставлять цифровые элементы в качестве рекомендации контента пользователям рекомендательной системы, который выполняется сервером, связанным с нераспределенным хранилищем данных и с распределенным хранилищем данных, содержащим множество узлов, и включает в себя:
обучение сервером модели матричной факторизации на основе первых данных о взаимодействиях пользователь-элемент, указывающих на взаимодействия между пользователями и элементами цифрового контента, которые произошли до первого момента времени, при этом модель матричной факторизации обучается прогнозированию данных о взаимодействиях пользователь-элемент, отсутствующих в первый момент времени;
в ходе первой итерации этапа использования модели матричной факторизации:
формирование сервером, использующим обученную модель матричной факторизации, первых векторных представлений пользователей для соответствующих пользователей и первых векторных представлений элементов для соответствующих цифровых элементов, при этом первые векторные представления пользователей и первые векторные представления элементов представляют собой выходные данные обученной модели матричной факторизации;
сохранение сервером первых векторных представлений пользователей в сочетании с первым значением, указывающим на первую итерацию этапа использования модели матричной факторизации, в нераспределенном хранилище данных, и первых векторных представлений элементов в сочетании с первым значением в распределенном хранилище данных, при этом первые векторные представления элементов и первые векторные представления пользователей сохраняются в сочетании с первым значением, указывающим на то, что первые векторные представления элементов и первые векторные представления пользователей сформированы в ходе общей итерации этапа использования модели матричной факторизации;
повторное обучение сервером модели матричной факторизации на основе вторых данных о взаимодействиях пользователь-элемент, указывающих на взаимодействия между пользователями и элементами цифрового контента, которые произошли до второго момента времени, более позднего, чем первый момент времени, при этом модель матричной факторизации повторно обучается прогнозированию данных о взаимодействиях пользователь-элемент, отсутствующих во второй момент времени;
в ходе второй итерации этапа использования модели матричной факторизации:
формирование сервером, использующим повторно обученную модель матричной факторизации, вторых векторных представлений пользователей для соответствующих пользователей и вторых векторных представлений элементов для соответствующих цифровых элементов, при этом вторые векторные представления пользователей и вторые векторные представления элементов представляют собой выходные данные повторно обученной модели матричной факторизации;
сохранение сервером вторых векторных представлений пользователей в сочетании со вторым значением, указывающим на вторую итерацию этапа использования модели матричной факторизации, в нераспределенном хранилище данных в дополнение к первым векторным представлениям пользователей, и вторых векторных представлений элементов в сочетании со вторым значением в распределенном хранилище данных вместо соответствующих первых векторных представлений элементов путем замены соответствующих первых векторных представлений элементов, при этом вторые векторные представления элементов и вторые векторные представления пользователей сохраняются в сочетании со вторым значением, указывающим на то, что вторые векторные представления элементов и вторые векторные представления пользователей сформированы в ходе общей итерации этапа использования модели матричной факторизации;
удаление сервером первых векторных представлений пользователей, связанных с первым значением, из нераспределенного хранилища данных в третий момент времени, когда вторые векторные представления элементов сохранены в каждом узле из множества узлов распределенного хранилища данных так, чтобы в третий момент времени вторые векторные представления пользователей хранились в нераспределенном хранилище данных вместо первых векторных представлений пользователей и вторых векторных представлений пользователей.
2. Способ по п. 1, отличающийся тем, что он дополнительно включает в себя контроль сервером процесса сохранения вторых векторных представлений элементов в распределенном хранилище данных.
3. Способ по п. 1, отличающийся тем, что он дополнительно включает в себя определение сервером третьего момента времени, когда вторые векторные представления элементов сохранены в каждом узле из множества узлов распределенного хранилища данных.
4. Способ по п. 3, отличающийся тем, что он дополнительно включает в себя получение сервером из распределенного хранилища данных подтверждения отказоустойчивого хранения вторых векторных представлений элементов, а третий момент времени соответствует моменту времени получения сервером этого подтверждения.
5. Способ по п. 1, отличающийся тем, что сохранение вторых векторных представлений пользователей выполняется в течение первого интервала времени, а сохранение вторых векторных представлений элементов выполняется в течение второго интервала времени, при этом первый интервал времени существенно меньше второго интервала времени.
6. Способ по п. 5, отличающийся тем, что первый интервал времени определяется моментом времени, когда сервер начинает сохранение вторых векторных представлений пользователей в нераспределенном хранилище данных, и моментом времени, когда сервер завершает сохранение вторых векторных представлений пользователей в нераспределенном хранилище данных, а второй интервал времени определяется моментом времени, когда сервер начинает сохранение вторых векторных представлений элементов в распределенном хранилище данных, и третьим моментом времени, когда сервер завершает сохранение вторых векторных представлений элементов.
7. Способ по п. 1, отличающийся тем, что модель матричной факторизации представляет собой модель на основе сингулярного разложения.
8. Способ по п. 1, отличающийся тем, что нераспределенное хранилище данных представляет собой хранилище данных ключ-значение.
9. Способ по п. 1, отличающийся тем, что нераспределенное хранилище данных реализовано в виде одного физического устройства хранения данных.
10. Способ по п. 1, отличающийся тем, что в четвертый момент времени, между вторым моментом времени и третьим моментом времени, способ дополнительно включает в себя:
получение сервером указания на запрос рекомендации контента для электронного устройства, связанного с пользователем;
получение сервером из распределенного хранилища данных целевого векторного представления элемента, связанного с цифровым элементом, представляющим собой потенциально рекомендуемый элемент для пользователя, при этом целевое векторное представление элемента представляет собой первое векторное представление элемента для этого элемента или второе векторное представление элемента для этого элемента, а векторное представление элемента связано с целевым значением, представляющим собой первое значение или второе значение;
выбор сервером из нераспределенного хранилища данных связанного с пользователем целевого векторного представления пользователя из числа первого векторного представления пользователя, связанного с пользователем и хранящегося в сочетании с первым значением, и второго векторного представления пользователя, связанного с пользователем и хранящегося в сочетании со вторым значением, при этом выбор включает в себя:
определение сервером соответствия целевого значения векторного представления элемента первому значению или второму значению,
выбор первого векторного представления пользователя в качестве целевого векторного представления пользователя, если целевое значение соответствует первому значению,
выбор второго векторного представления пользователя, если целевое значение соответствует второму значению; и
формирование сервером ранжирующего признака в виде сочетания целевого векторного представления пользователя и целевого векторного представления элемента, при этом ранжирующий признак подлежит использованию при ранжировании элемента из числа других элементов для этого пользователя.
11. Сервер для хранения данных, связанных с пользователями рекомендательной системы и с цифровыми элементами, рекомендуемыми в рекомендательной системе, выполненной с возможностью предоставления цифровых элементов в качестве рекомендации контента пользователям рекомендательной системы, который связан с нераспределенным хранилищем данных и с распределенным хранилищем данных, содержащим множество узлов, и выполнен с возможностью:
обучения модели матричной факторизации на основе первых данных о взаимодействиях пользователь-элемент, указывающих на взаимодействия между пользователями и элементами цифрового контента, которые произошли до первого момента времени, при этом модель матричной факторизации обучается прогнозированию данных о взаимодействиях пользователь-элемент, отсутствующих в первый момент времени;
в ходе первой итерации этапа использования модели матричной факторизации:
формирования с использованием обученной модели матричной факторизации первых векторных представлений пользователей для соответствующих пользователей и первых векторных представлений элементов для соответствующих цифровых элементов, при этом первые векторные представления пользователей и первые векторные представления элементов представляют собой выходные данные обученной модели матричной факторизации;
сохранения первых векторных представлений пользователей в сочетании с первым значением, указывающим на первую итерацию этапа использования модели матричной факторизации, в нераспределенном хранилище данных, и первых векторных представлений элементов в сочетании с первым значением в распределенном хранилище данных, при этом первые векторные представления элементов и первые векторные представления пользователей сохраняются в сочетании с первым значением, указывающим на то, что первые векторные представления элементов и первые векторные представления пользователей сформированы в ходе общей итерации этапа использования модели матричной факторизации;
повторного обучения модели матричной факторизации на основе вторых данных о взаимодействиях пользователь-элемент, указывающих на взаимодействия между пользователями и элементами цифрового контента, которые произошли до второго момента времени, более позднего, чем первый момент времени, при этом модель матричной факторизации повторно обучается прогнозированию данных о взаимодействиях пользователь-элемент, отсутствующих во второй момент времени;
в ходе второй итерации этапа использования модели матричной факторизации:
формирования с использованием повторно обученной модели матричной факторизации вторых векторных представлений пользователей для соответствующих пользователей и вторых векторных представлений элементов для соответствующих цифровых элементов, при этом вторые векторные представления пользователей и вторые векторные представления элементов представляют собой выходные данные повторно обученной модели матричной факторизации;
сохранения вторых векторных представлений пользователей в сочетании со вторым значением, указывающим на вторую итерацию этапа использования модели матричной факторизации, в нераспределенном хранилище данных в дополнение к первым векторным представлениям пользователей, и вторых векторных представлений элементов в сочетании со вторым значением в распределенном хранилище данных вместо соответствующих первых векторных представлений элементов путем замены соответствующих первых векторных представлений элементов, при этом вторые векторные представления элементов и вторые векторные представления пользователей сохраняются в сочетании со вторым значением, указывающим на то, что вторые векторные представления элементов и вторые векторные представления пользователей сформированы в ходе общей итерации этапа использования модели матричной факторизации; и
удаления первых векторных представлений пользователей, связанных с первым значением, из нераспределенного хранилища данных в третий момент времени, когда вторые векторные представления элементов сохранены в каждом узле из множества узлов распределенного хранилища данных так, чтобы в третий момент времени вторые векторные представления пользователей хранились в нераспределенном хранилище данных вместо первых векторных представлений пользователей и вторых векторных представлений пользователей.
12. Сервер по п. 11, отличающийся тем, что он дополнительно выполнен с возможностью контроля процесса сохранения вторых векторных представлений элементов в распределенном хранилище данных.
13. Сервер по п. 11, отличающийся тем, что он дополнительно выполнен с возможностью определения третьего момента времени, когда вторые векторные представления элементов сохранены в каждом узле из множества узлов распределенного хранилища данных.
14. Сервер по п. 13, отличающийся тем, что он дополнительно выполнен с возможностью получения из распределенного хранилища данных подтверждения отказоустойчивого хранения вторых векторных представлений элементов, при этом третий момент времени соответствует моменту времени получения сервером этого подтверждения.
15. Сервер по п. 11, отличающийся тем, что он дополнительно выполнен с возможностью сохранения вторых векторных представлений пользователей в течение первого интервала времени и сохранения вторых векторных представлений элементов в течение второго интервала времени, при этом первый интервал времени существенно меньше второго интервала времени.
16. Сервер по п. 15, отличающийся тем, что первый интервал времени определяется моментом времени, когда сервер начинает сохранение вторых векторных представлений пользователей в нераспределенном хранилище данных, и моментом времени, когда сервер завершает сохранение вторых векторных представлений пользователей в нераспределенном хранилище данных, а второй интервал времени определяется моментом времени, когда сервер начинает сохранение вторых векторных представлений элементов в распределенном хранилище данных, и третьим моментом времени, когда сервер завершает сохранение вторых векторных представлений элементов.
17. Сервер по п. 11, отличающийся тем, что модель матричной факторизации представляет собой модель на основе сингулярного разложения.
18. Сервер по п. 11, отличающийся тем, что нераспределенное хранилище данных представляет собой хранилище данных ключ-значение.
19. Сервер по п. 11, отличающийся тем, что нераспределенное хранилище данных реализовано в виде одного физического устройства хранения данных.
20. Сервер по п. 11, отличающийся тем, что он дополнительно выполнен с возможностью выполнения в четвертый момент времени, между вторым моментом времени и третьим моментом времени, следующих действий:
получение указания на запрос рекомендации контента для электронного устройства, связанного с пользователем;
получение из распределенного хранилища данных целевого векторного представления элемента, связанного с цифровым элементом, представляющим собой потенциально рекомендуемый элемент для пользователя, при этом целевое векторное представление элемента представляет собой первое векторное представление элемента для этого элемента или второе векторное представление элемента для этого элемента, а векторное представление элемента связано с целевым значением, представляющим собой первое значение или второе значение;
выбор из нераспределенного хранилища данных связанного с пользователем целевого векторного представления пользователя из числа первого векторного представления пользователя, связанного с пользователем и хранящегося в сочетании с первым значением, и второго векторного представления пользователя, связанного с пользователем и хранящегося в сочетании со вторым значением, при этом для выполнения выбора сервер выполнен с возможностью:
определения соответствия целевого значения векторного представления элемента первому значению или второму значению,
выбора первого векторного представления пользователя в качестве целевого векторного представления пользователя, если целевое значение соответствует первому значению,
выбора второго векторного представления пользователя, если целевое значение соответствует второму значению; и
формирование ранжирующего признака в виде сочетания целевого векторного представления пользователя и целевого векторного представления элемента, при этом ранжирующий признак подлежит использованию при ранжировании элемента из числа других элементов для этого пользователя.