Способ и устройство для обучения алгоритма машинного обучения (MLA) по созданию рекомендаций содержимого в системе рекомендаций и способ и устройство для создания рекомендуемого содержимого с помощью алгоритма машинного обучения
METHOD AND APPARATUS FOR TRAINING MACHINE LEARNING ALGORITHM (MLA) FOR CREATING CONTENT RECOMMENDATIONS IN A RECOMMENDATION SYSTEM AND A METHOD AND APPARATUS FOR CREATING RECOMMENDED CONTENT USING A MACHINE LEARNING ALGORITHM

ОБЛАСТЬ ТЕХНИКИ
[001] Настоящая технология относится к системам рекомендаций в целом и, конкретнее к способу и устройству для обучения алгоритма машинного обучения (mla) по созданию рекомендаций содержимого в системе рекомендаций и способу и устройству для создания рекомендуемого содержимого с помощью алгоритма машинного обучения.
УРОВЕНЬ ТЕХНИКИ
[002] Различные глобальные или локальные сети связи (интернет, всемирная паутина, локальные сети и подобные им) предлагают пользователю большой объем информации. Информация включает в себя контекстуальные разделы, такие как, среди прочего, новости и текущие события, карты, информация о компаниях, финансовая информация и ресурсы, информация о траффике, игры и информация развлекательного характера. Пользователи используют множество клиентских устройств (настольный компьютер, портативный компьютер, ноутбук, смартфон, планшеты и подобные им) для получения доступа к богатому информационному контенту (например, изображениям, аудио- и видеофайлам, анимированным изображениям и прочему мультимедийному контенту подобных сетей).
[003] Объем доступной информации на различных интернет-ресурсах экспоненциально вырос за последние несколько лет. Были разработаны различные решения, которые позволяют обычному пользователю находить информацию, которую он(а) ищет. Примером такого решения является поисковая система. Примеры поисковых систем включают в себя такие поисковые системы как GOOGLE™, YANDEX™, YAHOO!™ и другие. Пользователь может получить доступ к интерфейсу поисковой системы и подтвердить поисковый запрос, связанный с информацией, которую пользователь хочет найти в Интернете. В ответ на поисковый запрос поисковые системы предоставляют ранжированный список результатов поиска. Ранжированный список результатов поиска создается на основе различных алгоритмов ранжирования, которые реализованы в конкретной поисковой системе, и которые используются пользователем, производящим поиск. Общей целью таких алгоритмов ранжирования является представление наиболее релевантных результатов вверху ранжированного списка, а менее релевантных результатов - на менее высоких позициях ранжированного списка результатов поиска (а наименее релевантные результаты поиска будут расположены внизу ранжированного списка результатов поиска).
[004] Поисковые системы обычно являются хорошим поисковым инструментом в том случае, когда пользователю заранее известно, что именно он(а) хочет найти. Другими словами, если пользователь заинтересован в получении информации о наиболее популярных местах в Италии (т.е. поисковая тема известна), пользователь может ввести поисковый запрос: «Наиболее популярные места в Испании». Поисковая система предоставит ранжированный список интернет-ресурсов, которые потенциально являются релевантными по отношению к поисковому запросу. Пользователь далее может просматривать ранжированный список результатов поиска для того, чтобы получить информацию, в которой он заинтересован, в данном случае - о посещаемых местах в Испании. Если пользователь по какой-либо причине не удовлетворен представленными результатами, пользователь может произвести вторичный поиск, уточнив запрос, например «наиболее популярные места в Испании летом», «наиболее популярные места на юге Испании», «Наиболее популярные места в Испании для романтичного отдыха».
[005] Существует и другой подход, в котором пользователю предоставляется возможность обнаруживать содержимое и, конкретнее, позволяется отображать и/или рекомендовать содержимое, в поиске которого пользователь не был явно заинтересован. В некоторым смысле, подобные системы рекомендуют пользователю содержимое без отдельного поискового запроса, на основе явных или неявных интересов пользователя.
[006] Примерами таких систем являются система рекомендаций FLIPBOARD™, которая агрегирует и рекомендует содержимое из различных социальных сетей. Система рекомендаций FLIPBOARD предоставляет содержимое в «журнальном формате», где пользователь может «пролистывать» страницы с рекомендуемым/агрегированным содержимым. Системы рекомендаций собирают содержимое из социальных медиа и других веб-сайтах, представляет его в журнальном формате, и позволяют пользователям «пролистывать» ленты социальных новостей и ленты веб-сайтов, которые поддерживают партнерские отношения с компанией, что позволяет эффективно «рекомендовать» содержимое пользователю, даже если пользователь явно не выражал свой интерес в конкретном содержимом.
[007] Другим примером системы рекомендаций является система Яндекс.Дзэн™. Система рекомендаций Яндекс.Дзэн™ рекомендует цифровое содержимое (например, статьи, новости и видео в персонализированной ленте на начальном экране Яндекс.Браузера). Когда пользователь просматривает содержимое, рекомендованное сервером Яндекс.Дзэн, сервер получает явную (спросив пользователя о том, хочет ли он(а) видеть больше подобного содержимого в своей ленте) или неявную (путем наблюдения за взаимодействием пользователя с содержимым) обратную связь. С помощью обратной связи с пользователем, сервер Яндекс.Дзэн постоянно улучшает рекомендации содержимого, которые предоставляются данному пользователю.
[008] Для создания ранжированных результатов поиска в поисковой системе или списка рекомендуемых ресурсов в обычной системе рекомендаций, соответствующие системы используют алгоритмы машинного обучения для выбора результатов поиска и/или рекомендаций содержимого. Существуют различные алгоритмы машинного обучения, известные в данной области техники, и использующиеся в поисковых системах и системах рекомендаций. Как известно, обычные алгоритмы машинного обучения сначала «обучаются» с помощью обучающей выборки (которая является помеченной или не помеченной) для создания формулы алгоритма машинного обучения, которая далее применяется для определения во время работы выходных данных на основе входных данных системы.
[009] В обычной системе рекомендаций, алгоритм машинного обучения системы рекомендаций выбирает набор потенциальных рекомендуемых элементов из набора потенциальных ресурсов для рекомендуемых элементов (для конкретного пользователя). Обычно, алгоритм машинного обучения, который связан с подобной системой рекомендаций, получает (в течение некоторого времени) знания о различных потенциальных ресурсах элементов содержимого, предыдущие взаимодействия пользователя с различными потенциальными ресурсами элементов содержимого (а также созданные рекомендации), и использует это знание для создания рекомендации для конкретного пользователя системы рекомендаций.
[0010] Одним из алгоритмов, которые используются для создания рекомендаций содержимого, является совместная фильтрация. Совместная фильтрация основывается на оценках релевантности, которые вычисляются на основе предыдущих взаимодействий множества пользователей с множеством цифровых элементов. Эти взаимодействия могут быть связаны с явной или неявной пользовательской обратной связью, которая используется для создания данной оценки релевантности для данного взаимодействия данного пользователя с данным цифровым элементом.
[0011] Для создания систем рекомендации, набор данных с оценками релевантности, который связан с различными потенциально рекомендуемыми цифровыми элементами, используется как матрица для обработки. Эта матрица обычно является небольшой (т.е. не с каждым цифровым элементом происходило взаимодействие достаточного количества пользователей, и не каждый пользователь взаимодействовал с каждым потенциально рекомендуемым цифровым элементом). Обычный традиционный подход включает в себя разложение матрицы для заполнения отсутствующих оценок релевантности.
[0012] В линейной алгебре, разложение матрицы может выполняться с помощью Сингулярного разложения (или, для краткости, SVD). В соответствии с алгоритмом SVD, любая матрица может быть представлена как разложение по формуле:
[0013] В результате применения алгоритма сингулярного разложения, обычная матрица оценок релевантности (которые основаны на взаимодействиях пользователь-цифровой элемент) может быть разделена на матрицу пользователей и матрицу цифровых элементов.
[0014] При создании системы рекомендаций обычно используется приблизительное разложение матрицы. Есть два обычных подхода к выполнению приблизительного разложения матрицы: градиентный спуск и чередующиеся наименьшие квадраты (ALS). Следовательно, подход ALS позволяет учитывать как явную так и неявную обратную связь для систем рекомендаций.
[0015] В широком смысле, подход ALS может быть представлен следующим образом. Матрица оценок релевантности  представлена как R≈UV+T. В соответствии с обычным подходом ALS, значения начальных матриц U и V выбираются случайным образом и заполняются нулями. Подход ALS далее состоит из двух этапов: этап U фиксирует V и настраивает U, этап V фиксирует U и настраивает V. После каждой итерации, разложение U и V приближается к R.
[0016] Патентная заявка US 2015/0052003 описывает способ предоставления персонализированных рекомендаций содержимого с помощью масштабируемого разложения матрицы со случайностью. Другие варианты осуществления соответствующих систем и способов также описываются.
[0017] Патентная заявка US 8,983,888 описывает способ эффективного разложения матрицы в системе рекомендаций. Данные использования для большого набора пользователей, относящиеся к набору элементов, предоставляются в матрице R. Для снижения вычислительных мощностей, матрица использования дискретизируется для представления приведенной матрицы R'. R' разлагают на матрицу U' пользователей и матрицу V элементов. Векторы пользователей в U' и V устанавливаются в начальное состояние, а затем с помощью итераций обновляются, чтобы подойти к оптимальному решению. Приведенная матрица может быть разложена с помощью вычислительных ресурсов, например, одного компьютерного устройства. Следовательно, полная матрица U пользователей образуется путем фиксирования V и аналитической минимизации ошибки в уравнении UV=R+ошибка. Вычисления этого аналитического решения могут быть распределены среди набора вычислительных устройств, например, с помощью техники map-and-reduce (фреймворк компании Google, используемый для параллельных вычислений над очень большими наборами данных в компьютерных кластерах). Каждое вычислительное устройство решает уравнение для различных соответствующих подмножеств пользователей.
[0018] Патентная заявка US 8,676,736 описывает систему и способ предоставления персонализированных рекомендуемых элементов в системе передачи данных, которая включает в себя сервер и множество клиентских устройств. На сервере, множество векторов рейтинга пользователей получают от множества клиентских устройств и агрегируют в матрицу рейтинга, которая затем будет разложена на матрицу характеристик пользователей и матрицу характеристик элементов, и получившиеся матрицы характеристик пользователей и характеристик элементов аппроксимируют матрицу рейтинга пользователей. Разложение включает в себя этапы алгоритмов ALS1 или IALS2, включая: инициализацию матрицы характеристик пользователей и матрицы характеристик элементов с заранее определенными начальными значениями; альтернативную оптимизацию матрицы характеристик пользователей и матрицы характеристик элементов до тех пор пока не будет достигнуто финальное состояние. Матрица характеристик элементов передается от сервера по меньшей мере одному клиентскому устройству, и вектор прогнозируемого действия создается как продукт соответствующего вектора характеристики пользователей и матрицы характеристик элементов. По меньшей мере один элемент выбирается для рекомендации пользователю среди элементов, связанных с прогнозируемым вектором рейтинга.
[0019] Статья, озаглавленная "Fast ALS-based Matrix Factorization for Explicit and Implicit Frrdback Datasets" («Быстрое разложение матрицы на основе чередования наименьших квадратов для явных и неявных наборов данных об обратной связи») под авторством Пилжи и пр., представленная на конференции RecSys 26-30 сентября 2010 года (Барселона, Испания) описывает алгоритм ALS как алгоритм разложения для явной и неявной обратной связи на основе систем рекомендаций.
РАСКРЫТИЕ ТЕХНОЛОГИИ
[0020] Задачей предлагаемой технологии является устранение по меньшей мере некоторых недостатков, присущих известному уровню техники. Варианты осуществления настоящей технологии могут предоставлять и/или расширять границы настоящих подходов и/или способы достижения целей и задач настоящей технологии.
[0021] Варианты осуществления настоящей технологии были разработаны на предположении изобретателей о том, что алгоритмы машинного обучения (или специальные алгоритмы, используемые для обучения алгоритмов машинного обучения), используемые для выбора рекомендаций содержимого, могут потреблять очень много вычислительных ресурсов компьютера. Не ограничиваясь какой-либо конкретной теорией, разработчики настоящей технологии верят, что случайный выбор изначальных матриц для результатов аппроксимации чередования наименьших квадратов (ALS-аппроксимации) в общем процессе является операцией, которая занимает много времени и вычислительных ресурсов. То же самое применимо к начальному варианту с нулями для начальных матриц при ALS-аппроксимации.
[0022] В широком смысле, варианты осуществления настоящей технологии нацелены на оптимизацию ALS-аппроксимации разложения матрицы для системы рекомендаций. Конкретнее, варианты осуществления настоящей технологии были разработаны на основе оценки разработчиков о том, что когда используется ALS-алгоритм, изначальная матрица элементов может быть заполнена с помощью векторов элементов, которые, по меньшей мере частично, представляют фактические цифровые элементы и представляют собой по меньшей мере аппроксимацию до набора латентных факторов цифровых элементов. Технический эффект по меньшей мере некоторых вариантов осуществления настоящей технологии заключается в том, что алгоритм чередования наименьших квадратов потребует меньшего числа итераций для приблизительного разложения. В некоторых вариантах осуществления настоящей технологии, технический эффект может заключаться в том, что для выполнения приблизительного разложения потребуется меньше времени. В некоторых других вариантах осуществления настоящей технологии, технический эффект может заключаться в том, что для выполнения приблизительного разложения потребуется меньше вычислительной мощности. Иными словами, технический результат заключается в оптимизации процесса обучения алгоритма машинного обучения посредством ускорения матричного разложения и снижения требуемой вычислительной мощности.
[0023] В широком смысле, сервер (например, сервер системы рекомендаций) сначала получает журнал взаимодействий пользователей со множеством цифровых элементов. В некоторых вариантах осуществления настоящей технологии, множество цифровых элементов может быть текстовым, например, статьи, книги, другие тексты и так далее. Журналы содержат указания на взаимодействия пользователей со множеством цифровых элементов (или, точнее, указание на то, что некоторые пользователи взаимодействовали с соответствующими цифровыми элементами, а также на природу их взаимодействия). В некоторых вариантах осуществления настоящей технологии, взаимодействие может включать в себя явную обратную связь от пользователя в отношении цифрового элемента (например, «лайк»), в других вариантах осуществления настоящей технологии взаимодействие может не содержать явную обратную связь от пользователя. Тем не менее, взаимодействие пользователя может содержать неявную обратную связь от пользователя (например, количество времени, которое провел пользователь, взаимодействуя с цифровым содержимым, число «репостов» цифрового элемента пользователем, число комментариев, которые оставил пользователь в связи с цифровым элементом и так далее).
[0024] Сервер далее преобразует указание на взаимодействия пользователей в матрицу оценок релевантности пользователь-элемент. Оценки релевантности пользователь-элемент могут быть созданы на основе указания на множество пользователей и конкретный цифровой элемент. Тип взаимодействия пользователя никак не ограничивается и может представлять собой (без установления ограничений): время, проведенное во взаимодействии с цифровым элементом, загрузку цифрового элемента, репост цифрового элемента, добавление в закладки цифрового элемента, оставление комментария, связанного с цифровым элементом, оставление «лайка» цифровому элементу и обновление цифрового элемента. На основе указания на взаимодействия пользователей, сервер определяет, насколько релевантен данный цифровой источник для данного пользователя (данный пользователь обладает данным профилем пользователя).
[0025] Сервер далее выполняет разложение матрицы оценок релевантности пользователь-элемент. Конкретнее, сервер может использовать алгоритм сингулярного разложения (SVD) - для разделения матрицы оценок релевантности пользователь-элемент на матрицу пользователей и матрицу элементов. Варианты осуществления настоящей технологии выполняют алгоритм ALS для разложения матрицы оценок релевантности пользователь-элемент. В соответствии с вариантами осуществления настоящей технологии, во время инициализации первичных матриц для алгоритма ALS, первоначальная матрица элементов заполняется векторами элементов, которые представляют фактические цифровые элементы. В тех вариантах осуществления технологии, где цифровые элементы являются текстовыми, векторы элементов представляют собой текст текстовых цифровых элементов.
[0026] Векторы элементов текстовых цифровых элементов могут быть созданы с помощью способов встраивания слов. Тип способа встраивания слов никак не ограничен, и некоторые примеры могут включать в себя, без установки ограничений: алгоритмы word2vec или латентное размещение Дирихле (LDA). В общем случае, выбранный один или несколько алгоритмов встраивания слов выполнены с возможностью создавать вектор элементов таким образом, что векторы элементов цифровых элементов, которые обладают похожими текстами, являются по сути похожими. Другими словами, выбранный один или несколько алгоритмов встраивания слов обеспечивают сопоставление похожих текстовых цифровых элементов в похожих векторах элементов (т.е. векторы элементов, которые близки друг к другу в многомерном пространстве, которое используется для сопоставления цифровых документов и векторов элементов).
[0027] Инициализация матрицы пользователей с векторами пользователей может выполняться обычным образом, т.е. с помощью случайных значений для начальных векторов пользователей, с помощью нулей в качестве начальных векторов пользователей и так далее.
[0028] Сервер далее с итерациями оптимизирует матрицу пользователей и матрицу элементов. После оптимизации, сервер сохраняет оптимизированную матрицу элементов.
[0029] Одним объектом настоящей технологии является способ обучения алгоритма машинного обучения выбору рекомендуемого содержимого для пользователя электронного устройства, способ выполняется на сервере рекомендаций, доступном электронному устройству через сеть интернет, сервер рекомендаций выполняет алгоритм машинного обучения после обучения. Способ включает в себя: получение указания на множество взаимодействий пользователь-элемент, каждое взаимодействие связано с пользователем и цифровым элементом; на основе множества взаимодействий пользователь-элемент, создание матрицы оценок релевантности пользователь-элемент; разложение матрицы оценок релевантности пользователь-элемент на матрицу пользователей и матрицу элементов, причем разложение включает в себя: инициализацию матрицы элементов с помощью векторов элементов, векторы элементов были созданы таким образом, что цифровые элементы с похожим содержимым обладают похожими векторами элементов, инициализацию матрицы пользователей с помощью векторов пользователей; итеративную оптимизацию матрицы пользователей и матрицы элементов; сохранение оптимизированной матрицы элементов.
[0030] В некоторых вариантах осуществления способа, способ далее включает в себя: при получении от электронного устройства запроса на рекомендуемое содержимое, получение профиля пользователя, связанного с электронным устройством; и выбор по меньшей мере одного рекомендуемого элемента содержимого, выбор осуществляется на основе профиля пользователя и оптимизированной матрицы элементов.
[0031] В некоторых вариантах осуществления способа, выбор включает в себя восстановление матрицы пользователь-элемент оценок с помощью оптимизированной матрицы элементов и профиля пользователя для создания восстановленной матрицы пользователь-элемент.
[0032] В некоторых вариантах осуществления способа, каждая пара пользователь-элемент восстановленной матрицы пользователь-элемент связана с соответствующей оценкой релевантности пользователь-элемент, соответствующая оценка релевантности пользователь-элемент представляет релевантность данного цифрового элемента для пользователя.
[0033] В некоторых вариантах осуществления способа, профиль пользователя является вектором, созданном на основе истории просмотра пользователя.
[0034] В некоторых вариантах осуществления способа, инициализация матрицы пользователей с помощью векторов пользователей включает в себя заполнение матрицы пользователей с помощью случайных значений векторов пользователей.
[0035] В некоторых вариантах осуществления способа, инициализация матрицы пользователей с помощью векторов пользователей включает в себя заполнение матрицы пользователей с помощью значений векторов пользователей, равных нулю.
[0036] В некоторых вариантах осуществления способа, после итерационной оптимизации матрица пользователей опускается.
[0037] В некоторых вариантах осуществления способа, цифровой элемент представляет собой текстовый цифровой элемент и причем векторы элементов были созданы с помощью способа встраивания слов.
[0038] В некоторых вариантах осуществления способа, способ далее включает в себя создание векторов элементов с помощью способа встраивания слов, способ встраивания слов представляет собой по меньшей мере один из: word2vec или латентное размещение Дирихле (LDA).
[0039] В некоторых вариантах осуществления способа, разложение выполняется с помощью анализа сингулярного разложения SVD).
[0040] В некоторых вариантах осуществления способа, разложение далее включает в себя анализ разложения, анализ разложения выполняется с помощью алгоритма чередования наименьших квадратов (ALS).
[0041] В некоторых вариантах осуществления способа, получение указания на множество взаимодействий пользователь-элемент включает в себя получение указания на множество взаимодействий пользователь-элемент из историй просмотра пользователей.
[0042] В некоторых вариантах осуществления способа, взаимодействие пользователя-элемент представляет собой: время, проведенное во взаимодействии с цифровым элементом, загрузку цифрового элемента, репост цифрового элемента, добавление в закладки цифрового элемента, оставление комментария, связанного с цифровым элементом, оставление «лайка» цифровому элементу и обновление цифрового элемента.
[0043] В некоторых вариантах осуществления способа, итеративная оптимизация матрицы пользователей и матрицы элементов выполняется до тех пора не будет достигнуто заранее определенное значение заранее определенной величины.
[0044] В некоторых вариантах осуществления способа, заранее определенная величина представляет собой одно из: Среднеквадратичное отклонение (RMSE) и средняя абсолютная ошибка (MAR).
[0045] Еще одним объектом настоящего технического решения является сервер. Сервер включает в себя: носитель данных: сетевой интерфейс, выполненный с возможностью связи через сеть передачи данных; процессор, функционально соединенный с носителем данных и сетевым интерфейсом, процессор выполнен с возможностью осуществлять: получение указания на множество взаимодействий пользователь-элемент, каждое взаимодействие связано с пользователем и цифровым элементом; на основе множества взаимодействий пользователь-элемент, создание матрицы оценок релевантности пользователь-элемент; разложение матрицы оценок релевантности пользователь-элемент на матрицу пользователей и матрицу элементов, причем разложение включает в себя: инициализацию матрицы элементов с помощью векторов элементов, векторы элементов были созданы таким образом, что цифровые элементы с похожим содержимым обладают похожими векторами элементов, инициализацию матрицы пользователей с помощью векторов пользователей; итеративную оптимизацию матрицы пользователей и матрицы элементов; сохранение оптимизированной матрицы элементов в носителе данных. В контексте настоящего описания «сервер» подразумевает под собой компьютерную программу, работающую на соответствующем оборудовании, которая способна получать запросы (например, от клиентских устройств) по сети и выполнять эти запросы или инициировать выполнение этих запросов. Оборудование может представлять собой один физический компьютер или одну физическую компьютерную систему, но ни то, ни другое не является обязательным для данной технологии. В контексте настоящей технологии использование выражения «сервер» не означает, что каждая задача (например, полученные команды или запросы) или какая-либо конкретная задача будет получена, выполнена или инициирована к выполнению одним и тем же сервером (то есть одним и тем же программным обеспечением и/или аппаратным обеспечением); это означает, что любое количество элементов программного обеспечения или аппаратных устройств может быть вовлечено в прием/передачу, выполнение или инициирование выполнения любого запроса или последствия любого запроса, связанного с клиентским устройством, и все это программное и аппаратное обеспечение может быть одним сервером или несколькими серверами, оба варианта включены в выражение «по меньшей мере один сервер».
[0046] В контексте настоящего описания «клиентское устройство» подразумевает под собой аппаратное устройство, способное работать с программным обеспечением, подходящим к решению соответствующей задачи. Таким образом, примерами клиентских устройств (среди прочего) могут служить персональные компьютеры (настольные компьютеры, ноутбуки, нетбуки и т.п.) смартфоны, планшеты, а также сетевое оборудование, такое как маршрутизаторы, коммутаторы и шлюзы. Следует иметь в виду, что устройство, ведущее себя как клиентское устройство в настоящем контексте, может вести себя как сервер по отношению к другим клиентским устройствам. Использование выражения «клиентское устройство» не исключает возможности использования множества клиентских устройств для получения/отправки, выполнения или инициирования выполнения любой задачи или запроса, или же последствий любой задачи или запроса, или же этапов любого вышеописанного способа.
[0047] В контексте настоящего описания «база данных» подразумевает под собой любой структурированный набор данных, не зависящий от конкретной структуры, программного обеспечения по управлению базой данных, аппаратного обеспечения компьютера, на котором данные хранятся, используются или иным образом оказываются доступны для использования. База данных может находиться на том же оборудовании, выполняющем процесс, на котором хранится или используется информация, хранящаяся в базе данных, или же база данных может находиться на отдельном оборудовании, например, выделенном сервере или множестве серверов.
[0048] В контексте настоящего описания «информация» включает в себя информацию любую информацию, которая может храниться в базе данных. Таким образом, информация включает в себя, среди прочего, аудиовизуальные произведения (изображения, видео, звукозаписи, презентации и т.д.), данные (данные о местоположении, цифровые данные и т.д.), текст (мнения, комментарии, вопросы, сообщения и т.д.), документы, таблицы, списки слов и т.д.
[0049] В контексте настоящего описания «компонент» подразумевает под собой программное обеспечение (соответствующее конкретному аппаратному контексту), которое является необходимым и достаточным для выполнения конкретной(ых) указанной(ых) функции(й).
[0050] В контексте настоящего описания «используемый компьютером носитель компьютерной информации» подразумевает под собой носитель абсолютно любого типа и характера, включая ОЗУ, ПЗУ, диски (компакт диски, DVD-диски, дискеты, жесткие диски и т.д.), USB флеш-накопители, твердотельные накопители, накопители на магнитной ленте и т.д.
[0051] В контексте настоящего описания слова «первый», «второй», «третий» и и т.д. используются в виде прилагательных исключительно для того, чтобы отличать существительные, к которым они относятся, друг от друга, а не для целей описания какой-либо конкретной взаимосвязи между этими существительными. Так, например, следует иметь в виду, что использование терминов «первый сервер» и «третий сервер» не подразумевает какого-либо порядка, отнесения к определенному типу, хронологии, иерархии или ранжирования (например) серверов/между серверами, равно как и их использование (само по себе) не предполагает, что некий "второй сервер" обязательно должен существовать в той или иной ситуации. В дальнейшем, как указано здесь в других контекстах, упоминание «первого» элемента и «второго» элемента не исключает возможности того, что это один и тот же фактический реальный элемент. Так, например, в некоторых случаях, «первый» сервер и «второй» сервер могут являться одним и тем же программным и/или аппаратным обеспечением, а в других случаях они могут являться разным программным и/или аппаратным обеспечением.
[0052] Каждый вариант осуществления настоящей технологии преследует по меньшей мере одну из вышеупомянутых целей и/или объектов, но наличие всех не является обязательным. Следует иметь в виду, что некоторые объекты данной технологии, полученные в результате попыток достичь вышеупомянутой цели, могут не удовлетворять этой цели и/или могут удовлетворять другим целям, отдельно не указанным здесь.
[0053] Дополнительные и/или альтернативные характеристики, аспекты и преимущества вариантов осуществления настоящего технического решения станут очевидными из последующего описания, прилагаемых чертежей и прилагаемой формулы изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0054] Для лучшего понимания настоящей технологии, а также других ее аспектов и характерных черт, сделана ссылка на следующее описание, которое должно использоваться в сочетании с прилагаемыми чертежами, где:
[0055] На Фиг. 1 представлена система, подходящая для реализации неограничивающих вариантов осуществления настоящей технологии.
[0056] На Фиг. 2 представлен снимок экрана с рекомендательным интерфейсом, выполненным в соответствии с неограничивающим вариантом осуществления настоящей технологии, рекомендательный интерфейс представлен на экране электронного устройства системы, показанной на Фиг. 1, электронное устройство выполнено в виде смартфона.
[0057] На Фиг. 3 представлено множество взаимодействии пользователь-элемент (каждое взаимодействие пользователь-элемент связано с пользователем и цифровым элементом, множество взаимодействии пользователь-элемент обрабатывается системой по Фиг. 1 в соответствии с некоторыми неограничивающими вариантами осуществления настоящей технологии.
[0058] На Фиг. 4 представлено схематическое представление матрицы оценок релевантности пользователь-элемент, матрица оценок релевантности пользователь-элемент, созданная сервером системы по Фиг. 1, с помощью множества взаимодействий пользователь-элемент, аналогичных тем, что представлены на Фиг. 3, матрица оценок релевантности пользователь-элемент реализована в соответствии с неограничивающими вариантами осуществления настоящей технологии.
[0059] На Фиг. 5 представлена принципиальная схема процесса разложения матрицы оценок релевантности пользователь-элемент на матрицу пользователей и матрицу элемента, процесс выполняется сервером системы, представленной на Фиг. 1, в соответствии с некоторыми неограничивающими вариантами осуществления настоящей технологии.
[0060] На Фиг 6 представлена блок-схема способа обучения алгоритма машинного обучения, способ выполняется сервером, изображенным на Фигуре 1 в соответствии с некоторыми неограничивающими вариантами осуществления настоящей технологии.
ОСУЩЕСТВЛЕНИЕ
[0061] На Фиг. 1 представлена принципиальная схема системы 100, выполненной в соответствии с вариантами осуществления настоящей технологии, не ограничивающими ее объем. Важно иметь в виду, что нижеследующее описание системы 100 представляет собой описание показательных вариантов осуществления настоящей технологии. Таким образом, все последующее описание представлено только как описание иллюстративного примера настоящей технологии. Это описание не предназначено для определения объема или установления границ настоящей технологии. Некоторые полезные примеры модификаций системы 100 также могут быть охвачены нижеследующим описанием. Целью этого является также исключительно помощь в понимании, а не определение объема и границ настоящей технологии. Эти модификации не представляют собой исчерпывающий список, и специалистам в данной области техники будет понятно, что возможны и другие модификации. Кроме того, это не должно интерпретироваться так, что там, где это еще не было сделано, т.е. там, где не были изложены примеры модификаций, никакие модификации невозможны, и/или что то, что описано, является единственным вариантом осуществления этого элемента настоящего технического решения. Как будет понятно специалисту в данной области техники, это, скорее всего, не так. Кроме того, следует иметь в виду, что система 100 представляет собой в некоторых конкретных проявлениях достаточно простой вариант осуществления настоящей технологии, и в подобных случаях этот вариант представлен здесь с целью облегчения понимания. Как будет понятно специалисту в данной области техники, многие варианты осуществления настоящей технологии будут обладать гораздо большей сложностью.
[0062] В общем случае, система 100 выполнена с возможностью предоставлять рекомендации содержимого пользователю 102 системы 100. Пользователь 102 может являться подписчиком сервиса рекомендаций, который предоставляет система 100. Однако, подписка не обязана быть оплачиваемой или явной. Например, пользователь 102 может стать подписчиком путем скачивания рекомендательного предложения из система 100, путем регистрации и предоставления сочетания логина/пароля, путем регистрации и предоставления предпочтений пользователя и так далее. Поэтому любой вариант системы, выполненный с возможностью создавать рекомендации содержимого для данного пользователя, может быть адаптирован специалистом для выполнения вариантов осуществления настоящей технологии после того, как специалистом было прочитано настоящее описание. Кроме того, система 100 может быть описана с помощью примера системы 100, которая является системой рекомендаций (следовательно, система 100 может упоминаться как «система 100 рекомендаций» или «система 100 предсказаний» или «система 100 обучения»). Тем не менее, варианты осуществления настоящей технологии могут также применяться к другим типам систем 100, как будет более подробно описано далее.
[0063] Система 100 содержит электронное устройство 104, электронное устройство 104 связано с пользователем 102. Таким образом, электронное устройство 104 может иногда упоминаться как «клиентское устройство», «устройство конечного пользователя» или «клиентское электронное устройство». Следует отметить, что тот факт, что электронное устройство 104 связано с пользователем 102, не подразумевает какого-либо конкретного режима работы, равно как и необходимости входа в систему, быть зарегистрированным, или чего-либо подобного.
[0064] Варианты электронного устройства 104 конкретно не ограничены, но в качестве примера электронного устройства 104 могут использоваться персональные компьютеры (настольные компьютеры, ноутбуки, нетбуки и т.п.), устройства беспроводной связи (смартфоны, мобильные телефоны, планшеты и т.п.), а также сетевое оборудование (маршрутизаторы, коммутаторы или шлюзы). Электронное устройство 104 содержит аппаратное и/или прикладное программное, и/или системное программное обеспечение (или их комбинацию), как известно в области техники, чтобы выполнять рекомендательное приложение 106. В общем случае, задачей рекомендательного приложения 106 является позволить пользователю получать (или каким-либо иным способом иметь доступ) к рекомендациям содержимого, которые предоставлены системой 100, как будет более подробно описано далее.
[0065] Реализация рекомендательного приложения 106 никак конкретно не ограничена. Одним из примеров выполнения рекомендательного приложения 106 является доступ пользователем на веб-сайт, соответствующий системе рекомендаций, для получения доступа к рекомендательному приложению 106. Например, рекомендательное приложение 106 может быть вызвано путем ввода (или копирования-вставки или выбора ссылки) URL, связанного с сервисом рекомендаций. Альтернативно, рекомендательное приложение 106 может являться приложением, скачанным из так называемого магазина приложений, например, APPSTORE™ или GOOGLEPLAY™, и установленным/используемым на электронном устройстве 104. Важно иметь в виду, что рекомендательное приложение 106 может быть вызвано с помощью любых других средств. В других дополнительных вариантах осуществления технологии, функции приложения 106 рекомендаций могут быть встроены в другое приложение, например, приложение браузера (не показано) и так далее. Например, приложение 106 рекомендаций может выполняться как часть браузерного приложения, например, когда пользователь 102 в первый раз запускает браузерное приложение, может выполняться функциональность приложения 106 рекомендаций.
[0066] В общем случае, рекомендательное приложение 106 включает в себя рекомендательный интерфейс 108, причем рекомендательный интерфейс 108 отображается на экране (отдельно не пронумерован) электронного устройства 104. На Фиг. 2 представлен снимок экрана с рекомендательным интерфейсом 108, реализованным в соответствии с неограничивающим вариантом осуществления настоящей технологии (пример рекомендательного интерфейса 108 представлен на экране электронного устройства 104, который реализован в виде смартфона).
[0067] В некоторых вариантах осуществления настоящей технологии, рекомендательный интерфейс 108 отображается, когда пользователь 102 электронного устройства 104 активирует (т.е. запускает, использует, запускает в фоновом режиме и так далее) рекомендательное приложение 106. Альтернативно, рекомендательный интерфейс 108 может быть представлен, когда пользователь 102 открывает новое окно браузера и/или активирует новую вкладку в браузерном приложении. Например, в некоторых вариантах осуществления настоящей технологии, рекомендательный интерфейс 108 может активировать «домашний экран» в браузерном приложении.
[0068] Рекомендательный интерфейс 108 включает в себя поисковый интерфейс 202. Поисковый интерфейс 202 включает в себя интерфейс 204 поискового запроса. Интерфейс 204 поискового запроса может быть реализован как «омнибокс», что позволяет вводить поисковый запрос для проведения поиска или сетевой адрес (например, Единый Указатель Ресурсов (URL)) для идентификации ресурса (например, веб-сайта), который будет вызван. Тем не менее, интерфейс 204 поискового запроса может быть реализован для получения одного или обоих из: записи поискового запроса на выполнение поиска или сетевого адреса (например, Единый Указатель Ресурсов (URL)) для идентификации ресурса (например, веб-сайта), который будет вызван.
[0069] Рекомендательный интерфейс 108 дополнительно включает в себя интерфейс 206 ссылок. Интерфейс 206 ссылок включает в себя множество фрагментов 208 - восемь из которых представлены на Фиг. 2 - только два пронумерованы на Фиг. 2 - первый фрагмент 210 и второй фрагмент 212.
[0070] Используя, например, первый фрагмент 210 и второй фрагмент 212 - каждый из множества фрагментов 208 включает в себя (или действует как) ссылку на (i) веб-сайт, отмеченный как «избранное» или как-либо иначе отмеченный пользователем 102, (ii) ранее посещенный веб-сайт или (iii) тому подобное. Множество фрагментов 208 в представленном варианте осуществления визуально представлено пользователю 102 в виде квадратных кнопок с логотипом и/или названием представленного ресурса, логотип и название позволяют пользователю 102 идентифицировать, на какой ресурс ведет каждый из множества фрагментов (отдельно не пронумеровано). Тем не менее, важно иметь в виду, что визуальное представление некоторых или всех из множества фрагментов 208 может быть иным. Таким образом, некоторые или все из множества фрагментов 208 могут быть реализованы как кнопки других форм, как список гиперссылок и так далее.
[0071] Например, первый фрагмент 210 включает в себя ссылку на веб-сайт TRAVELZOO™, а второй фрагмент 212 включает в себя ссылку на веб-сайт персонального живого журнала. Излишне говорить, что число и содержимое индивидуальных фрагментов из множества фрагментов 208 никак конкретно не ограничено.
[0072] Например, число фрагментов во множестве фрагментов 208 может быть выбрано заранее поставщиком рекомендательного приложения 106. В некоторых вариантах осуществления настоящей технологии, число фрагментов во множестве фрагментов 208 выбирается заранее на основе размера и/или разрешения экрана электронного устройства 104, которое выполняет рекомендательное приложение 106. Например, первое число фрагментов может быть выбрано заранее для электронного устройства 104, которое реализовано как смартфон, второе число фрагментов может быть выбрано заранее для электронного устройства 104, которое реализовано как планшет, и третье число фрагментов может быть выбрано заранее для электронного устройства 104, которое реализовано как ноутбук или настольный компьютер.
[0073] Рекомендательный интерфейс 108 дополнительно включает в себя набор 214 рекомендованного содержимого. Набор 214 рекомендованного содержимого включает в себя один или несколько элементов рекомендаций содержимого, например, первый элемент 216 рекомендаций содержимого и второй элемент 218 рекомендаций содержимого (второй элемент 218 рекомендаций содержимого только частично виден на Фиг. 2). Естественно, набор 214 рекомендаций содержимого может обладать большим числом элементов рекомендаций содержимого. В рамках варианта осуществления, представленного на Фиг. 2, и тех вариантов осуществления технологии, где присутствует более одного элемента рекомендованного содержимого, пользователь 102 может прокручивать через набор 214 рекомендованного содержимого. Прокрутка может осуществляться любыми подходящими способами. Например, пользователь 102 может прокручивать содержимое набора 214 рекомендованного содержимого путем активации мыши (не показано), клавиши клавиатуры (не показано) или взаимодействия с сенсорным экраном (не показано) соответствующего электронного устройства 104.
[0074] Пример, приведенный на Фиг. 2 является одним возможным вариантом осуществления рекомендательного интерфейса 108. Другой вариант осуществления рекомендательного интерфейса 108, а также описание того, как пользователь 102 может взаимодействовать с рекомендательным интерфейсом 108, представлено в находящейся в совместном владении российской патентной заявке, озаглавленной «ИСПОЛЯЕМЫИ НА КОМПЬЮТЕРЕ СПОСОБ СОЗДАНИЯ РЕКОМЕНДАТЕЛЬНОГО ИНТЕРФЕЙСА СОДЕРЖИМОГО», поданной 12 мая 2016 под номером 2016118519; содержимое которой включено здесь полностью посредством ссылки.
[0075] То, как именно создается набор 214 рекомендованного содержимого, будет более подробно описано далее.
[0076] Возвращаясь к описанию Фиг. 1, электронное устройство 104 функционально соединено с сетью ПО передачи данных для получения доступа к рекомендательному серверу 112. В некоторых вариантах осуществления настоящей технологии, не ограничивающих ее объем, сеть 110 передачи данных может представлять собой Интернет. В других вариантах осуществления настоящего технического решения, сеть 110 передачи данных может быть реализована иначе - в виде глобальной сети передачи данных, локальной сети передачи данных, частной сети передачи данных и т.п. Линия передачи данных (отдельно не пронумерована) между электронным устройством 104 и сетью 110 передачи данных реализована таким образом, что она будет зависеть, среди прочего, от того, как реализовано электронное устройство 104. В качестве примера, но не ограничения, в данных вариантах осуществления настоящей технологии в случаях, когда электронное устройство 104 представляет собой беспроводное устройство связи (например, смартфон), линия передачи данных представляет собой беспроводную сеть передачи данных (например, среди прочего, линия передачи данных 3G, линия передачи данных 4G, беспроводной интернет Wireless Fidelity или коротко WiFi, Bluetooth и т.п.). В тех примерах, где электронное устройство 104 представляет собой портативный компьютер, линия связи может быть как беспроводной (беспроводной интернет Wireless Fidelity или коротко WiFi, Bluetooth и т.п) так и проводной (соединение на основе сети Ethernet).
[0077] Рекомендательный сервер 112 может представлять собой обычный компьютерный сервер. В примере варианта осуществления настоящего технического решения, рекомендательный сервер 112 может представлять собой сервер Dell™ PowerEdge™, на котором используется операционная система Microsoft™ Windows Server™. Излишне говорить, что рекомендательный сервер 112 может представлять собой любое другое подходящее аппаратное, прикладное программное, и/или системное программное обеспечение или их комбинацию. В представленном варианте осуществления настоящей технологии, не ограничивающем ее объем, рекомендательный сервер 112 является одиночным сервером. В других вариантах осуществления настоящего технического решения, не ограничивающих ее объем, функциональность рекомендательного сервера 112 изображения может быть разделена, и может выполняться с помощью нескольких серверов.
[0078] Рекомендательный сервер 112 включает в себя модуль 114 обработки Модуль 114 обработки соединен или иным образом имеет доступ к модулю 116 выбора рекомендуемого содержимого. Модуль 116 выбора рекомендуемого содержимого имеет доступ к устройству 118 хранения данных. Модуль 114 обработки дополнительно связан с модулем 115 обнаружения содержимого. Работа рекомендательного сервера 112 и его компонентов будет более подробно описана далее.
[0079] Также с сетью ПО передачи данных соединено множество сетевых ресурсов, включая первый сетевой ресурс 124, второй сетевой ресурс 126 и множество дополнительных сетевых ресурсов 128. Первый сетевой ресурс 124, второй сетевой ресурс 126 и множество дополнительных сетевых ресурсов 128 являются сетевыми ресурсами, доступными электронному устройству 104 (а также другим электронным устройствам, потенциально присутствующим в системе 100) через сеть ПО передачи данных. Соответствующее содержимое первого сетевого ресурса 124, второго сетевого ресурса 126 и множества дополнительных сетевых ресурсов 128 никак конкретно не ограничено.
[0080] Данный первый сетевой ресурс 124, второй сетевой ресурс 126 и множество дополнительных сетевых ресурсов 128 может содержать (или, другими словами, размещать) цифровое содержимое (т.е. один или несколько цифровых элементов из одного или нескольких цифровых элементов, обладающих одним или несколькими типами цифрового содержимого). В некоторых вариантах осуществления настоящей технологии, содержимое цифрового элемента может включать в себя, среди прочего: аудио содержимое для потокового вещания или загрузки, видео содержимое для потокового вещания или загрузки, новости, блоки, информацию о различных государственных институтах, информацию об интересных местах, тематически кластеризованное содержимое (например, содержимое, релевантное для тех, кто заинтересован в кикбоксинге), другое мультимедийное содержимое и так далее.
[0081] В других вариантах осуществления настоящей технологии, содержимое цифровых элементов, размещенное на первом сетевом ресурсе 124, втором сетевом ресурсе 126 и множестве дополнительных сетевых ресурсов 128, является текстовым. Примеры текстовых элементов содержимого включают в себя, без установления ограничений: новости, статьи, блоги, информацию о различных государственных институтах, информацию об интересных местах, тематически кластеризованное содержимое (например, содержимое, релевантное для тех, кто заинтересован в кикбоксинге) и так далее. Следует отметить, что термин «текстовое» содержимое не означает, что данный цифровой элемент включает в себя только текст и исключает другие типы мультимедийных элементов. Напротив, данный текстовый цифровой элемент включает в себя текстовые элементы, а также потенциально другой тип мультимедийных элементов. Например, данный текстовый цифровой элемент содержимого, который является статьей, может содержать текст и фотографии. В качестве другого примера, текстовый цифровой элемент содержимого, который является блогом, может содержать текст и встроенные видео элементы.
[0082] Содержимое потенциально «доступно» для электронного устройства 104 различными способами. Например, пользователь 102 электронного устройства 104 может использовать браузерное приложение (не показано) и ввести Универсальный Указатель Ресурса (URL), связанный с одним из первого сетевого ресурса 124, второго сетевого ресурса 126 и множества дополнительных сетевых ресурсов 128. Альтернативно, пользователь 102 электронного устройства 104 может выполнить поиск с помощью поисковой системы (не показано), чтобы изучить содержимое одного или нескольких из первого сетевого ресурса 124, второго сетевого ресурса 126 и множества дополнительных сетевых ресурсов 128. Как было упомянуто ранее, это удобно в том случае, если пользователь 102 заранее знает, в каком именно содержимом пользователь 102 заинтересован.
[0083] В соответствии с вариантами осуществления настоящей технологии, рекомендательное приложение 106 может рекомендовать элементы содержимого, доступные с одного из первого сетевого ресурса 124, второго сетевого ресурса 126 и множества дополнительных сетевых ресурсов 128, пользователю 102, элементы содержимого, о которых пользователь 102 может заранее не знать. Рекомендательный сервер 112 выполнен с возможностью осуществлять выбор содержимого для одного или нескольких рекомендуемых элементов, которые будут представлены пользователю 102 через рекомендательное приложение 106. Конкретнее, модуль 114 обработки выполнен с возможностью (i) получать от электронного устройства 104 запрос на рекомендации 150 содержимого и (ii) в ответ на запрос, создавать сообщение 152 рекомендаций содержимого, специально настроенное для пользователя 102, связанного с электронным устройством 104. Модуль 114 обработки может далее координировать выполнение различных процедур, описанных здесь как выполняемые модулем 115 обнаружения содержимого, и модуль 116 выбора рекомендуемого содержимого, например.
[0084] В некоторых вариантах осуществления настоящей технологии, запрос на рекомендации 150 содержимого может быть создан в ответ на предоставление пользователем 102 явного указания на его/ее желание получать рекомендации содержимого. Например, рекомендательный интерфейс 108 может предоставлять кнопку (или другой активируемый элемент), который позволит пользователю 102 выражать свое желание получить новые или обновленные рекомендации содержимого. В качестве неограничивающего примера, рекомендательный интерфейс 108 может предоставить активируемую кнопку, на которой написано «запросить рекомендации содержимого». В рамках этих вариантов осуществления технологии, запрос на рекомендации 150 содержимого может считаться «явным запросом» в том смысле, что пользователь 102 явно выражает запрос на рекомендации содержимого.
[0085] В других вариантах осуществления настоящей технологии, запрос на рекомендации 150 содержимого может быть создан в ответ на явное указание от пользователя 102 на желание пользователя получить рекомендации содержимого. В некоторых вариантах осуществления настоящей технологии, запрос на рекомендации 150 содержимого может быть создан в ответ на то, что пользователь 102 запускает рекомендательное приложение 106.
[0086] Альтернативно, в тех вариантах осуществления настоящей технологии, где рекомендательное приложение 106 реализовано в виде браузера (например, браузер GOOGLE™, браузер YANDEX™, a YAHOO!™ браузер или любое другое собственное или коммерчески доступное браузерное приложение), запрос на рекомендации 150 содержимого может быть создан в ответ на то, что пользователь 102 открывает браузерное приложение и может быть создано, например, без выполнения пользователем 102 каких-либо действий, кроме активации браузерного приложения. В качестве другого примера, запрос на рекомендации 150 содержимого может быть создан в ответ на открытие пользователем 102 новой вкладки в уже открытом браузерном приложении, и могут быть созданы, например, без выполнения пользователем 102 каких-либо действий, кроме активации новой вкладки браузера. Другими словами, запрос на рекомендации 150 содержимого может быть создан даже без знания пользователя 102 о том, что он может быть заинтересован в получении рекомендации содержимого.
[0087] В качестве другого примера, запрос на рекомендацию 150 содержимого может быть создан в ответ на выбор пользователем 102 конкретного элемента браузерного приложения, и могут быть созданы, например, без выполнения пользователем 102 каких-либо действий, кроме активации/выбора конкретного элемента браузерного приложения.
[0088] Примеры конкретного элемента браузерного приложения включают в себя, без установления ограничений:
• Адресную строку строки браузерного приложения
• Поисковую строку браузерного приложения и/или поисковую строку веб-сайта поисковой системы, доступного в браузерном приложении
• Омнибокс (связанные адрес и поисковая строка браузерного приложения)
• Панель избранных или недавно посещенных сетевых ресурсов
• Любую другую заранее определенную область интерфейса браузерного приложения или сетевого ресурса, отображенного в браузерном приложении
[0089] В некоторых вариантах осуществления настоящей технологии, модуль 115 обнаружения содержимого может быть выполнен с возможностью осуществлять работу «поискового робота». Другими словами, модуль 115 обнаружения содержимого может выполнять работу робота, который «посещает» множество ресурсов (например, первый сетевой ресурс 124, второй сетевой ресурс 126 и множество дополнительных сетевых ресурсов 128) и каталогизирует один или несколько цифровых элементов, размещенных на соответствующем одном из первого сетевого ресурса 124, второго сетевого ресурса 126 и множества дополнительных сетевых ресурсов 128. В некоторых вариантах осуществления настоящей технологии, модуль 115 обнаружения содержимого может каталогизировать цифровые элементы в инвертированный индекс, сопоставляя данный цифровой элемент для составления списка ключевых слов, связанных с данным цифровым элементом.
[0090] Как часть функции поискового робота, модуль 116 выбора рекомендуемого содержимого выполнен с возможностью содержать (на устройстве 118 сохранения данных) информацию, представляющую новые найденные сетевые ресурсы и/или новое найденное доступное содержимое, доступное на них. В некоторых вариантах осуществления настоящей технологии, модуль 116 выбора рекомендуемого содержимого может быть выполнен с возможностью поддерживать инвертированный индекс на устройстве 118 хранения данных, но модуль 116 выбора рекомендуемого содержимого может организовать информацию, представляющую новые найденные сетевые ресурсы и/или новое найденное содержимое, доступное на них, в структуру данных, отличную от инвертированного индекса.
[0091] В других вариантах осуществления настоящей технологии, вместо соответствующего выполнения модуля 115 обнаружения содержимого, сервер 112 рекомендаций может делить функции модуля 115 обнаружения содержимого с другим сервером (не представлен) и/или другим сервисом (не представлен). Например, функции модуля 115 обнаружения содержимого могут быть разделены с сервером поисковой системы (не показано), который выполняет сервис поисковой системы. Когда модуль 115 обнаружения содержимого просматривает и индексирует новые ресурсы, которые могут потенциально содержать текстовые или другие цифровые элементы, модуль 115 обнаружения содержимого может также индексировать подобные новые обнаруженные (или обновленные) цифровые элементы для целей процедур сервера 112 рекомендаций, которые описаны здесь.
[0092] Модуль 116 выбора рекомендуемого содержимого может быть выполнен с возможностью выполнять один или несколько алгоритмов машинного обучения (MLA). В некоторых вариантах осуществления настоящей технологии, один или несколько алгоритмов машинного обучения могут представлять собой любой подходящий алгоритм машинного обучения с учителем или полуконтролируемого обучения, такой как, например:
• Искусственная нейронная сеть
• Байесовская статистика
• Гауссовский процесс регрессии
• Деревья решений
• И так далее
[0093] В общем случае, модуль 116 выбора рекомендуемого содержимого выполняет один или несколько MLA для анализа индексированных элементов содержимого (т.е. те, которые обнаруживаются и индексируются модулем 115 обнаружения содержимого) для выбора одного или нескольких элементов содержимого в качестве рекомендуемого содержимого для пользователя 102.
[0094] Следует отметить, что, несмотря на то, что модуль 115 обнаружения содержимого и модуль 116 выбора рекомендуемого содержимого были описаны как отдельные элементы, каждый из которых выполняет соответствующие функции, в других вариантах осуществления настоящей технологии, функции, выполняемые модулем 115 обнаружения содержимого и модулем 116 выбора рекомендуемого содержимого, могут выполняться одним элементом (например, модулем 114 обработки). Альтернативно, функции, выполняемые модулем 115 обнаружения содержимого и модулем 116 выбора рекомендуемого содержимого, могут быть распределены между большим числом модулей, чем те, что показаны на Фиг. 1, и могут выполняться как часть нескольких копий сервера 112 рекомендаций.
[0095] Кроме того, каждый из модуля 115 обнаружения содержимого и модуля 116 выбора рекомендуемого содержимого может выполнять дополнительные функции (т.е. отличные от соответствующих описанных здесь функций).
[0096] Продолжая с Фиг. 1 и ссылаясь на Фиг. 3, в соответствии с вариантами осуществления настоящей технологии, модуль 116 выбора рекомендуемого содержимого выполнен с возможностью получать указание на множество взаимодействий 140 пользователь-элемент, каждое взаимодействие пользователь-элемент из множества взаимодействий 140 пользователь-элемент связано с пользователем 142 и цифровым элементом 144.
[0097] В некоторых вариантах осуществления настоящей технологии, модуль 116 выбора рекомендуемого содержимого выполнен с возможностью получать указание на множество взаимодействий 140 пользователь-элемент от устройства 118 хранения данных. В некоторых вариантах осуществления настоящей технологии, указание на множество взаимодействий 140 пользователь-элемент может отслеживаться и сохраняться на устройстве 118 хранения данных модулем 115 обнаружения содержимого. Например, модуль 115 обнаружения содержимого может быть выполнен с возможностью загрузки журналов с сервера поисковой системы (не показано), журналов с сервера бразуера (не показано) и так далее. В широком смысле, указание на множество взаимодействий 140 пользователь-элемент может быть основано на журналах браузерной активности пользователей, журналах поисковой активности пользователей, сочетании их обоих и так далее.
[0098] В альтернативных вариантах осуществления настоящей технологии, модуль 116 выбора рекомендуемого содержимого выполнен с возможностью получать указание на множество взаимодействий 140 пользователь-элемент из внешнего источника (не показано), например, журнал поисковой системы (не показано), журнал веб-бразуера (не показано) и так далее.
[0099] В некоторых вариантах осуществления настоящей технологии, цифровой элемент 144 может представлять собой один из множества цифровых элементов 163. В общем случае, любой одиночный цифровой элемент 144 из множества цифровых элементов 163 может включать в себя любое цифровое содержимое (например, видео, аудио, текст, их сочетание и т.д.). В конкретном неограничивающем варианте осуществления технологии, любой одиночный цифровой элемент 144 из множества цифровых элементов 163 может включать в себя текстовое содержимое, например, статьи, книги, другие тексты и так далее.
[00100] В некоторых вариантах осуществления настоящей технологии, пользователь 142 может представлять собой одного из множества пользователей 148 (включая пользователя 102).
[00101] Данное указание на множество взаимодействий 140 пользователь-элемент может включать в себя одно или несколько из: время, проведенное во взаимодействии с цифровым элементом 144, загрузку цифрового элемента 144, репост цифрового элемента 144, добавление в закладки цифрового элемента 144, оставление комментария, связанного с цифровым элементом 144, оставление «лайка» цифровому элементу 144 и обновление цифрового элемента 144.
[00102] Следует отметить, что данный цифровой элемент 144 из множества цифровых элементов может взаимодействовать с рядом пользователей 142 из множества пользователей 148. Подобным образом, данный пользователь 142 из множества пользователей 148 может взаимодействовать с более чем одним цифровым элементом 144 из множества цифровых элементов 163. Естественно, данный пользователь 142 из множества пользователей 148 взаимодействовать с одним цифровым элементом 144 из множества цифровых элементов 163 более одного раза.
[00103] Также может быть, что данный пользователь 142 из множества пользователей 148 может не взаимодействовать со всеми цифровыми элементами 144 из множества цифровых элементов 163. Аналогичным образом, может быть так, что данный цифровой элемент 144 из множества цифровых элементов может не взаимодействовать со всеми пользователями 142 из множества пользователей 148.
[00104] Модуль 116 выбора рекомендуемого содержимого далее выполнен с возможностью, на основе множества взаимодействий 140 пользователь-элемент, для определения того, насколько релевантен данный цифровой элемент 144 для данного пользователя 142. Конкретнее, модуль 116 выбора рекомендуемого содержимого выполнен, на основе множества взаимодействий 140 пользователь-элемент, для создания матрицы оценок релевантности пользователь-элемент.
[00105] Со ссылкой на Фиг. 4 представлена принципиальная схема матрицы 400 оценок релевантности пользователь-элемент. Представленная матрица 400 оценок релевантности пользователь-элемент включает в себя множество столбцов 404 и множество строк 402. Каждый столбец из множества столбцов 404 связан с данным цифровым элементом 144 из множества цифровых элементов 163. Каждая строка из множества строк 402 связана с данным пользователем 142 из множества пользователей 148.
[00106] Перекрытие между данной строкой из множества строк 402 и данным столбцов из множества столбцом 404 хранит оценку релевантности пользователь-элемент соответствующего данного пользователя 142 из множества пользователей 148 и соответствующего данного цифрового элемента 144 из множества цифровых элементов 163. Например, конкретная строка 408 связана с пользователем «Пользователь 3», конкретный столбец 406 связан с цифровым элементом «Элемент 3», и конкретная ячейка 410 содержит оценку релевантности «5», указывающую на взаимодействия пользователя «Пользователь 3» с цифровым элементом «Элемент 3», которое указывает на оценку релевантности «5». То, как создается оценка релевантности модулем 116 выбора рекомендуемого содержимого, никак конкретно не ограничено. Например, модуль 116 выбора рекомендуемого содержимого может создавать оценку релевантности пользователь-элемент с помощью явных оценок пользователей (например, данный цифровой элемент 144 может быть оценен пользователями 142 по заранее определенной шкале, например, 1-5, 1-10, А-С и так далее). Альтернативно, оценка релевантности пользователь-элемент может быть вычислена на основе взвешенного алгоритма. Альтернативно, оценки релевантности пользователь-элемент могут быть определены алгоритмом машинного обучения (не показан) путем анализа одного или нескольких измерений взаимодействия пользователя (например, время задержки, число репостов и так далее).
[00107] Данная ячейка 412 и данная ячейка 414 не содержат никаких значений. Таким образом, можно утверждать, что пользователь «Пользователь 1» не взаимодействовал с цифровым элементом «Элемент 4» (в результате данная ячейка 412 является пустой) и что пользователь «Пользователь 3» не взаимодействовал с цифровым элементом «Элемент 6» (в результате данная ячейка 414 является пустой). Таким образом, на представленной Фиг. 4 представлено как матрица 400 оценок релевантности пользователь-элемент может быть «разреженной». Чтобы избежать сомнений в трактовке, термин «разреженная» описывает факт того, что некоторые ячейки (т.е. данная ячейка 422, данная ячейка 414 среди прочих) являются пустыми (т.е. не содержащими оценки релевантности пользователь-элемент). Пустота ячеек является признаком отсутствия взаимодействий пользователь-элемент между соответствующим пользователем и соответствующим цифровым элементом.
[00108] Модуль 116 выбора рекомендуемого содержимого далее выполнен с возможностью подвергать разложению матрицу 400 оценок релевантности пользователь-элемент на матрицу пользователей и матрицу элементов. На Фиг. 5 представлена схема разложения матрицы 400 оценок релевантности пользователь-элемент на матрицу 502 пользователей и матрицу 504 элементов. В некоторых вариантах осуществления настоящей технологии, модуль 116 выбора рекомендуемого содержимого может выполнять алгоритм SVD для разложения матрицы 400 оценок релевантности пользователь-элемент на матрицу 502 пользователей и матрицу 504 элементов. Конкретнее, алгоритм алгоритм сингулярного разложения (SVD) может использовать вышеупомянутую Формулу 1 для разделения матрицы 400 оценок релевантности пользователь-элемент на матрицу 502 пользователей и матрицу 504 элементов.
[00109] В некоторых вариантах осуществления настоящей технологии, для выполнения анализа разложения, модуль 116 выбора рекомендуемого содержимого может выполнять алгоритм ALS для разложения матрицы 400 оценок релевантности пользователь-элемент. В некоторых вариантах осуществления настоящей технологии, алгоритм ALS использует Формулу 2 для представления матрицы 400 оценок релевантности пользователь-элемент.
[00110] В соответствии с вариантами осуществления способов алгоритма ALS с помощью Формулы 2, первоначальная версия матрицы 502 пользователей (обозначена как «U») и первоначальная версия матрицы 504 элементов (обозначена как «V») создаются (т.е. «инициализация» выполняется модулем 116 выбора рекомендуемого содержимого).
[00111] Матрица 502 пользователей (обозначена как «U») может быть инициализирована в соответствии с известными способами. Например, модуль 116 выбора рекомендуемого содержимого может инициализировать матрицу 502 пользователей с помощью значений векторов пользователей, которые либо случайным образом заполняются, либо заполняются нулями (или же комбинацией обоих подходов). Другими словами, модуль 116 выбора рекомендуемого содержимого может создавать изначальные значения векторов пользователей для матрицы 502 пользователей в виде случайных чисел или нулей (или комбинации обоих подходов).
[00112] В соответствии с вариантами осуществления настоящей технологии, модуль 116 выбора рекомендуемого содержимого далее выполнен с возможностью инициализировать матрицу 504 элементов с помощью векторов элементов, векторы элементов были созданы таким образом, чтобы цифровые элементы с похожим содержимым обладали похожими векторами элементов. Следует учитывать, что в некоторых вариантах осуществления настоящей технологии, цифровой элемент 144 может представлять собой текстовый цифровой элемент 144. В этих вариантах осуществления настоящей технологии, модуль 116 выбора рекомендуемого содержимого далее выполнен с возможностью инициализировать матрицу 504 элементов с помощью векторов элементов, векторы элементов были созданы таким образом, чтобы элементы с похожим содержимым обладали похожими векторами элементов. В некоторых вариантах осуществления настоящей технологии, модуль 116 выбора рекомендуемого содержимого выполнен с возможностью создавать векторы элементов с помощью техники встраивания слов. Без установления ограничений, используемая техника встраивания слов может представлять собой по меньшей мере одно из word2vec или техники латентного размещения Дирихле (LDA).
[00113] Модуль 116 выбора рекомендуемого содержимого далее выполнен с возможностью итерационно оптимизировать первоначальную версию матрицу 502 пользователей и первоначальную версию матрицы 504 элементов. Для этого модуль 116 выбора рекомендуемого содержимого выполнен с возможностью итерационно: (i) сначала фиксировать матрицу 502 пользователей и настраивать матрицу 504 элементов и (ii) далее фиксировать матрицу 504 элементов и настраивать матрицу 502 пользователей («одна итерация»). После каждой итерации, разложение матрицы 502 пользователей и матрицы 504 элементов становится ближе к матрице 400 оценок релевантности пользователь-элемент. В некоторых вариантах осуществления настоящей технологии, модуль 116 выбора рекомендуемого содержимого выполнен с возможностью итерационную оптимизацию до тех пор пока не будет получено заранее определенное значение заранее определенной метрики. В конкретном варианте осуществления технологии, заранее определенная метрика представляет собой среднеквадратичное отклонение (RJVISE). Заранее определенное значение RMSE, которое инициирует завершение выполнения итеративной оптимизации, может быть определено эмпирически. В альтернативных вариантах осуществления настоящей технологии заранее определенная метрика представляет собой среднюю абсолютную ошибку (MAR). Заранее определенное значение MAR, которое инициирует завершение выполнения итеративной оптимизации, может быть определено эмпирически.
[00114] После завершения оптимизации матрицы 504 элементов (для получения оптимизированной матрицы 504 элементов), модуль 116 выбора рекомендуемого содержимого выполнен с возможностью сохранять оптимизированную матрицу 504 элементов в устройстве 118 хранения данных. Модуль 116 выбора рекомендуемого содержимого может быть далее выполнен с возможностью опускать матрицу 502 пользователей.
[00115] В соответствии с вариантами осуществления настоящей технологии, таким образом сохраненная оптимизированная матрица 504 элементов может быть использована модулем 116 выбора рекомендуемого содержимого для выбора рекомендуемого содержимого для пользователя 102.
[00116] Конкретнее, при получении от электронного устройства 104 запроса на рекомендацию 150 содержимого, модуль 116 выбора рекомендуемого содержимого выполнен с возможностью получать профиль пользователя, связанный с электронным устройством 104. В конкретном варианте осуществления технологии, модуль 116 выбора рекомендуемого содержимого получает профиль профиля пользователя, связанный с электронным устройством 104 от устройства 118 хранения данных. В других вариантах осуществления настоящей технологии, модуль 116 выбора рекомендуемого содержимого выполнен с возможностью получать профиль пользователя, связанный с электронным устройством 104 из другого источника (не показано), например, путем таргетирования базы данных профилей и так далее.
[00117] В некоторых вариантах осуществления способа, профиль пользователя является вектором, созданном на основе истории просмотров пользователя. То, как именно модуль 116 выбора рекомендуемого содержимого создает вектор на основе истории просмотра пользователя, никак конкретно не ограничено. В качестве примера, подобная техника описана в находящейся на рассмотрении российской патентной заявке, озаглавленной «СПОСОБ И СИСТЕМА ОБРАБОТКИ УКАЗАНИЙ НА АКТИВНОСТЬ, СВЯЗАННУЮ С ПОЛЬЗОВАТЕЛЕМ» под номером 2015111633, которая была подана 31 апреля 2015 года; содержимое заявки включено полностью в настоящую заявку посредством ссылки.
[00118] Далее, на основе профиля пользователя, модуль 116 выбора рекомендуемого содержимого выбирает по меньшей мере один рекомендуемый элемент содержимого. Следует отметить, что модуль 116 выбора рекомендуемого содержимого выбирает элемент рекомендуемого содержимого с помощью оптимизированной матрицы 504 элементов, которая хранится в устройстве 118 хранения данных.
[00119] Конкретнее, модуль 116 выбора рекомендуемого содержимого выполнен с возможностью восстанавливать матрицу 400 оценок релевантности пользователь-элемент с помощью оптимизированной матрицы 504 элементов и профиля пользователя для создания восстановленной матрицы 400 оценок релевантности пользователь-элемент. В соответствии с вариантами осуществления настоящей технологии, модуль 116 выбора рекомендуемого содержимого восстанавливает восстановленную матрицу 400 оценок релевантности пользователь-элемент, таким образом, каждая пара пользователь-элемент из матрицы 400 оценок релевантности пользователь-элемент связана с соответствующей оценкой релевантности пользователь-элемент, соответствующая оценка релевантности пользователь-элемент представляет собой релевантность данного цифрового элемента 144 для данного пользователя 142 (в данном случае, пользователь 102)..
[00120] То, как именно модуль 116 выбора рекомендуемого содержимого выбирает конкретный цифровой элемент 114 для пользователя 102, никак конкретно не ограничено. Пример алгоритма машинного обучения, который может быть использован модулем 116 выбора рекомендаций содержимого, описан в находящейся на рассмотрении российской патентной заявке, озаглавленной: «СПОСОБ И УСТРОЙСТВО СОЗДАНИЯ СПИСКА рекомендаций содержимого» (англ. "METHOD AND APPARATUS FOR GENERATING A RECOMMENDED CONTENT LIST") под номером 2015136684, поданной 22 августа 2015 года; содержимое которой включено здесь полностью посредством ссылки.
[00121] Естественно, модуль 116 выбора рекомендуемого содержимого может выбирать более одного цифрового элемента 114 для пользователя 102. Например, модуль 116 выбора рекомендуемого содержимого может выбирать множество цифровых элементов 144 для использования в качестве подмножества рекомендуемых цифровых элементов 144 для пользователя 102. После того как модуль 116 выбора рекомендаций содержимого создает подмножество элементов содержимого для данного пользователя 102, модуль 116 выбора рекомендаций содержимого создает сообщение 152 рекомендаций содержимого и передает его электронному устройству 104.
[00122] Когда электронное устройство 104 получает сообщение 152 рекомендаций содержимого, рекомендательное приложение 106 обрабатывает его содержимое и отображает элементы рекомендаций содержимого на интерфейсе 108 рекомендаций. То, как именно реализован интерфейс 108 рекомендаций, никак конкретно не ограничено -может быть использован интерфейс 108 рекомендаций, представленный на Фиг. 2. В другом примере, интерфейс 108 рекомендаций может быть реализован как описанный в находящейся на рассмотрении российской патентной заявке, озаглавленной: «СПОСОБ И СИСТЕМА ВЗАИМОДЕЙСТВИЯ С ЭЛЕМЕНТОМ СОДЕРЖИМОГО ПОТОКА СОДЕРЖИМОГО» (англ."МЕТНОD OF AND SYSTEM FOR INTERACTING WITH A CONTENT ELEMENT OF A CONTENT STREAM") под номером 2015141291, поданной 29 сентября 2015 года; содержимое которой включено здесь полностью посредством ссылки.
[00123] С учетом описанной архитектуры и приведенных примеров, возможно выполнять способ обучения алгоритма машинного обучения (MLA) для выбора рекомендаций содержимого для пользователя электронного устройства.
[00124] На Фиг. 6 представлена блок-схема способа 600, реализованного в соответствии с неограничивающими вариантами осуществления настоящей технологии. Способ 600 может выполняться на рекомендательном сервере 112 и, конкретнее, с помощью модуля 116 выбора рекомендуемого содержимого.
[00125] 602 - получение указания на множество взаимодействий пользователь-элемент, каждое взаимодействие пользователь-элемент связано с пользователем и цифровым элементом
[00126] Способ 600 начинается на этапе 602, где модуль 116 выбора рекомендуемого содержимого получает указание на множество взаимодействий 140 пользователь-элемент, каждое взаимодействие 140 пользователь-элемент связано с пользователем 142 и цифровым элементом 144.
[00127] В некоторых вариантах осуществления способа 600, этап получения указания на множество взаимодействий 140 пользователь-элемент включает в себя получение указания на множество взаимодействий пользователь-элемент из историй просмотра пользователей. Взаимодействие пользователя-элемент представляет собой: время, проведенное во взаимодействии с цифровым элементом, загрузку цифрового элемента, репост цифрового элемента, добавление в закладки цифрового элемента, оставление комментария, связанного с цифровым элементом, оставление «лайка» цифровому элементу и обновление цифрового элемента.
[00128] 604 - на основе множества взаимодействий пользователь-элемент, создание матрицы оценок релевантности пользователь-элемент
[00129] На этапе 604, модуль 116 выбора рекомендуемого содержимого, на основе множества взаимодействий 140 пользователь-элемент, создает матрицу 400 оценок релевантности пользователь-элемент.
[00130] 606 - разложение матрицы оценок релевантности пользователь-элемент на матрицу пользователей и матрицы элементов, разложение включает в себя: инициализацию матрицы элементов с помощью векторов элементов, векторы элементов были созданы таким образом, что цифровые элементы с похожим содержимым обладают похожими векторами элементов, инициализация матрицы пользователей с помощью векторов пользователей.
[00131] На этапе 606, модуль 116 выбора рекомендуемого содержимого осуществляет разложение матрицы 400 оценок релевантности пользователь-элемент на матрицу 502 пользователей и матрицу 504 элементов. В соответствии с вариантами осуществления настоящей технологии, этап разложения включает в себя: инициализацию матрицы 504 элементов с помощью векторов элементов, векторы элементы были созданы таким образом, чтобы цифровые элементы с похожим содержимым обладали похожими векторами элементов. Модуль 116 выбора рекомендуемого содержимого далее инициализирует матрицу 502 пользователей с помощью векторов пользователей.
[00132] В некоторых вариантах осуществления способа 600, инициализация матрицы 502 пользователей с помощью векторов пользователей включает в себя заполнение матрицы 502 пользователей с помощью случайных начальных значений векторов пользователей.
[00133] В некоторых вариантах осуществления способа 600, этап инициализации матрицы пользователей с помощью векторов пользователей включает в себя заполнение матрицы пользователей с помощью значений векторов пользователей, равных нулю.
[00134] В некоторых вариантах осуществления способа 600, цифровой элемент представляет собой текстовый цифровой элемент и векторы элементов были созданы с помощью способа встраивания слов. Этап создания векторов элемента может быть осуществлен с помощью способа встраивания слов, способ встраивания слов представляет собой по меньшей мере один из: word2vec или латентное размещение Дирихле (LDA).
[00135] В некоторых вариантах осуществления способа 600, этап разложения выполняется с помощью анализа сингулярного разложения (SVD). Разложение далее включает в себя анализ разложения, анализ разложения выполняется с помощью алгоритма чередования наименьших квадратов (ALS).
[00136] 608 - итеративная оптимизация матрицы пользователей и матрицы элементов.
[00137] На этапе 608, модуль 116 выбора рекомендуемого содержимого итерационно оптимизирует матрицу 502 пользователей и матрицу 504 элементов.
[00138] В некоторых вариантах осуществления способа 600, этап итеративной оптимизация матрицы 502 пользователей и матрицы 503 элементов выполняется до тех пора не будет достигнуто заранее определенное значение заранее определенной величины. Заранее определенная метрика может представлять собой (не устанавливая ограничений): Среднеквадратичное отклонение (RMSE) или среднюю абсолютную ошибку (MAR).
[00139] 610 - сохранение оптимизированной матрицы элементов
[00140] На этапе 610, модуль 116 выбора рекомендуемого содержимого сохраняет оптимизированную матрицу 504 элементов.
[00141] В некоторых вариантах осуществления способа 600, после итерационной оптимизации матрица 502 пользователей опускается.
[00142] Использование оптимизированной матрицы 504 элементов для выбора рекомендуемого цифрового элемента 144
[00143] Как было упомянуто ранее, после того как модуль 116 выбора рекомендуемого содержимого сохраняет матрицу 504 оптимизированного элемента, матрица 504 оптимизированного элемента может быть использована для создания рекомендуемого цифрового элемента 144 для пользователя 102. Для этого, способ 600 далее включает в себя: при получении от электронного устройства 104 запроса на рекомендуемое содержимое 150, получение профиля пользователя, связанного с электронным устройством 104; и выбор по меньшей мере одного рекомендуемого элемента 144 содержимого, выбор осуществляется на основе профиля пользователя и оптимизированной матрицы 504 элементов.
[00144] В некоторых вариантах осуществления способа, этап выбора включает в себя восстановление матрицы 400 оценок релевантности пользователь-элемент с помощью оптимизированной матрицы 504 элементов и профиля пользователя для создания восстановленной матрицы 400 оценок релевантности пользователь-элемент.
[00145] В некоторых вариантах осуществления способа, каждая пара пользователь-элемент восстановленной матрицы 400 оценок релевантности пользователь-элемент связана с соответствующей оценкой релевантности пользователь-элемент, соответствующая оценка релевантности пользователь-элемент представляет релевантность данного цифрового элемента 144 для пользователя 102.
[00146] В некоторых вариантах осуществления способа, профиль пользователя является вектором, созданном на основе истории просмотра пользователя.
[00147] Важно иметь в виду, что не все упомянутые здесь технические результаты могут проявляться в каждом варианте осуществления настоящей технологии. Например, варианты осуществления настоящей технологии могут быть выполнены без проявления некоторых технических результатов, другие могут быть выполнены с проявлением других технических результатов или вовсе без них.
[00148] Модификации и улучшения вышеописанных вариантов осуществления настоящей технологии будут ясны специалистам в данной области техники. Предшествующее описание представлено только в качестве примера и не устанавливает никаких ограничений. Таким образом, объем настоящей технологии ограничен только объемом прилагаемой формулы изобретения.
[00149] Варианты осуществления настоящей технологии могут быть кратко изложены в пронумерованных пунктах.
[00150] ПУНКТ 1 Способ (600) обучения алгоритма машинного обучения выбору рекомендуемого содержимого для пользователя (102) электронного устройства (104), способ выполняется на сервере (112) рекомендаций, доступном электронному устройству через сеть (ПО) передачи данных, сервер рекомендаций выполняет алгоритм машинного обучения после обучения; способ включает в себя:
[00151] получение (602) указания на множество взаимодействий (140) пользователь-элемент, каждое взаимодействие пользователь-элемент связано с пользователем (142) и цифровым элементом (144);
[00152] на основе множества взаимодействий пользователь-элемент, создание (604) матрицы (400) оценок релевантности пользователь-элемент;
[00153] разложение (606) матрицы оценок релевантности пользователь-элемент на матрицу (502) пользователей и матрицы (504) элементов, разложение включает в себя:
[00154] инициализацию матрицы элементов с помощью векторов элементов, векторы элементы были созданы таким образом, чтобы цифровые элементы с похожим содержимым обладали похожими векторами элементов,
[00155] инициализацию матрицы пользователей с помощью векторов пользователей;
[00156] итеративную оптимизацию (608) матрицы пользователей и матрицы элементов;
[00157] сохранение (610) оптимизированной матрицы элементов.
[00158] ПУНКТ 2 Способ по п. 1, дополнительно включающий в себя:
[00159] при получении от электронного устройства запроса на рекомендуемое содержимое (150),
[00160] получение профиля пользователя, связанного с электронным устройством; и
[00161] выбор по меньшей мере одного рекомендуемого элемента (144) содержимого, выбор осуществляется на основе профиля пользователя и оптимизированной матрицы элементов.
[00162] ПУНКТ 3 Способ по п. 2, в котором выбор включает в себя восстановление матрицы пользователь-элемент оценок с помощью оптимизированной матрицы элементов и профиля пользователя для создания восстановленной матрицы пользователь-элемент.
[00163] ПУНКТ 4 Способ по п. 3, в котором каждая пара пользователь-элемент восстановленной матрицы пользователь-элемент связана с соответствующей оценкой релевантности пользователь-элемент, соответствующая оценка релевантности пользователь-элемент представляет релевантность данного цифрового элемента для пользователя.
[00164] ПУНКТ 5 Способ по п. 2, в котором профиль пользователя является вектором, созданном на основе истории просмотра пользователя.
[00165] ПУНКТ 6 Способ по любому из пп. 1-5, в котором инициализация матрицы пользователей с помощью векторов пользователей включает в себя заполнение матрицы пользователей с помощью случайных значений векторов пользователей.
[00166] ПУНКТ 7 Способ по любому из пп. 1-5, в котором инициализация матрицы пользователей с помощью векторов пользователей включает в себя заполнение матрицы пользователей с помощью первоначальных значений векторов пользователей, равных нулю.
[00167] ПУНКТ 8 Способ по любому из пп. 1-7, в котором после упомянутой итерационной оптимизации, матрица пользователей опускается.
[00168] ПУНКТ 9 Способ по любому из пп. 1-8, в котором цифровой элемент представляет собой текстовый цифровой элемент и причем векторы элементов были созданы с помощью способа встраивания слов.
[00169] ПУНКТ 10 Способ по п. 9, который далее включает в себя создание векторов элементов с помощью способа встраивания слов, способ встраивания слов представляет собой по меньшей мере один из: word2vec или латентное размещение Дирихле (LDA).
[00170] ПУНКТ 11 Способ по любому из пп. 1-10, в котором разложение выполняется с помощью анализа сингулярного разложения (SVD).
[00171] ПУНКТ 12 Способ по п. 11, в котором разложение далее включает в себя анализ разложения, который выполняется с помощью алгоритма чередования наименьших квадратов (ALS).
[00172] ПУНКТ 13 Способ по любому из пп. 1-12, в котором упомянутое получение указания на множество взаимодействий пользователь-элемент включает в себя получение указания на множество взаимодействий пользователь-элемент из историй просмотра пользователей.
[00173] ПУНКТ 14 Способ по п. 13, в котором взаимодействие пользователя-элемент представляет собой: время, проведенное во взаимодействии с цифровым элементом, загрузку цифрового элемента, репост цифрового элемента, добавление в закладки цифрового элемента, оставление комментария, связанного с цифровым элементом, оставление «лайка» цифровому элементу и обновление цифрового элемента.
[00174] ПУНКТ 15 Способ по любому из пп. 1-14, в котором итеративная оптимизация матрицы пользователей и матрицы элементов выполняется до тех пора не будет достигнуто заранее определенное значение заранее определенной величины.
[00175] ПУНКТ 16 Способ по п. 15, в котором заранее определенная метрика представляет собой одно из следующего: Среднеквадратичное отклонение (RMSE) и средняя абсолютная ошибка (MAR).
[00176] ПУНКТ 17 Сервер (112), включающий в себя:
[00177] носитель (118) данных;
[00178] сетевой интерфейс, выполненный с возможностью соединения по сети передачи данных;
[00179] процессор (114), функционально соединенный с носителем данных и сетевым интерфейсом, причем процессор выполнен с возможностью выполнять способ по любому из пп. 1-16.
13. Способ по п. 1, в котором упомянутое получение указания на множество взаимодействий пользователь-элемент включает в себя получение указания на множество взаимодействий пользователь-элемент из историй просмотра пользователей.
14. Способ по п. 13, в котором взаимодействие пользователя-элемент представляет собой: время, проведенное во взаимодействии с цифровым элементом, загрузку цифрового элемента, репост цифрового элемента, добавление в закладки цифрового элемента, оставление комментария, связанного с цифровым элементом, оставление «лайка» цифровому элементу и обновление цифрового элемента.
15. Способ по п. 1, в котором итеративная оптимизация матрицы пользователей и матрицы элементов выполняется до тех пора не будет достигнуто заранее определенное значение заранее определенной величины.
16. Способ по п. 15, в котором заранее определенное значение заранее определенной величины представляет собой одно из следующего: Среднеквадратичное отклонение (RMSE) и средняя абсолютная ошибка (MAR).
17. Сервер включает в себя:
носитель данных;
сетевой интерфейс, выполненный с возможностью соединения по сети передачи данных;
процессор, функционально соединенный с носителем данным и сетевым интерфейсом, процессор выполняется с возможностью осуществлять:
получение указания на множество взаимодействий пользователь-элемент, каждое взаимодействие пользователь-элемент связано с пользователем и цифровым элементом; на основе множества взаимодействий пользователь-элемент, создание матрицы оценок релевантности пользователь-элемент;
разложение матрицы оценок релевантности пользователь-элемент на матрицу пользователей и матрицы элементов, разложение включает в себя:
инициализацию матрицы элементов с помощью векторов элементов, векторы элементы были созданы таким образом, чтобы цифровые элементы с похожим содержимым обладали похожими векторами элементов, инициализацию матрицы пользователей с помощью векторов пользователей;
итеративную оптимизацию матрицы пользователей и матрицы элементов,
сохранение оптимизированной матрицы элементов  в носителе данных.