Способ и сервер для представления пользователю интересующих точек на карте
METHOD AND SERVER FOR PROVISION OF USER WITH POINTS OF INTEREST ON MAP

Область техники, к которой относится изобретение
[1] Способ и сервер, описанные здесь, предназначены для формирования карт, в частности, реализованы способ и сервер для представления интересующих точек пользователю в картографическом приложении.
Уровень техники
[2] В связи с ростом интереса к картам как к средству визуализации, сложность и объем информации, отображаемой на картах, неуклонно растут. Большое количество разнообразных данных сложно показывать на электронной карте или встраивать в нее без затруднения восприятия карты пользователем из-за большого объема отображаемых на ней данных.
[3] Эта проблема особенно актуальна для картографических и геолокационных сервисов, где увеличение подробности информации и практически неограниченное количество ее источников существенно затрудняют отображение информации на карте в логичном, понятном и, что важнее всего, полезном для пользователей формате.
[4] Кроме того, некоторым пользователям для их конкретных целей не нужна вся отображаемая информация. При этом проблема заключается в том, что передача всей отображаемой информации может занимать значительное время, особенно если в ней присутствуют динамические или интерактивные элементы. Например, пользователю, изучающему план центра города, могут быть показаны не все интересующие его точки (POI, Point Of Interest) из-за наличия множества компаний, музеев и других интересных мест, и пользователь может пропустить что-то полезное (особенно если пользователь точно не знает, что ищет).
[5] В частности, картографические приложения и веб-браузеры обычно загружают по сети картографические данные на клиентское устройство в ответ на запрос пользователя, желающего видеть карту. При традиционном способе загрузки данных клиентское устройство запрашивает по сети данные у удаленного сервера, который в ответ передает клиентскому устройству все картографические данные одновременно.
[6] Обычно картографические данные можно хранить в блоках, называемых «листами карты», при этом с увеличением масштаба растет количество листов карты. Удаленный сервер передает клиентскому устройству все листы для показа и/или сохранения в клиентском устройстве конкретного места или области на карте. Клиентское устройство также может запрашивать дополнительную информацию для встраивания в интерактивные карты (например, дополнительные ресурсы и интерфейсы прикладного программирования (API, Application Programming Interface). Тем не менее с увеличением количества листов и дополнительных данных, используемых для отображения интерактивной карты, увеличивается время их получения и отображения, особенно если сеть работает медленно или нестабильно.
[7] Иногда пользователю трудно воспринимать большое количество информации о точках POI на листах карты в определенном масштабе.
Generating bounding boxes for labels placement
[8] В патенте US 9443494 B1 (, выдан 13.09.2016 компании Amazon Technologies Inc.) указано, что в ответ на поисковый запрос компьютерное устройство может получать от картографической поисковой системы данные, описывающие географическую область. Каждая надпись на карте состоит из одного или нескольких текстовых символов. Для каждой надписи на карте можно создать рамку с заданным соотношением ширины и высоты. Ширина рамки вдвое больше ее высоты, а площадь равна площади надписи на карте. Можно выбирать надписи для отображения на интерактивной географической карте. Можно формировать интерактивную географическую карту с выбранными надписями, описывающими объекты, расположенные в этой географической области. Каждая выбранная надпись размещается в рамке.
Footprint based business label placement
[9] В патенте US 9779545 B1 (, выдан 03.10.2017 компании Microsoft Technology Licensing LLC), описано размещение названий компаний на обозначениях зданий, отображаемых на цифровой карте. При оптимальном расположении названия компаний целиком находятся в пределах обозначений зданий и не перекрывают друг друга. Эта технология формирует исходную композицию надписей и рассчитывает затраты на ее создание. Оптимальная композиция имеет нулевые затраты. Чем меньше ненулевые затраты, тем ближе композиция к оптимальной. Технология позволяет формировать и анализировать композиции для поиска приемлемого варианта.
Labeling a significant location based on contextual data
[10] В патентной заявке US 20170357381 A1 (, опубликована 14.12.2017, компания Apple Inc.) описана реализация компьютерных способов, команд на машиночитаемых носителях информации и компьютерных систем для определения и маркировки важных мест по контекстным данным, включая определение местоположения компьютерного устройства и определение метки для этого местоположения на основе контекстных данных, связанных с этим важным местом. Это местоположение может соответствовать важному для пользователя устройства месту.
Раскрытие изобретения
[11] Целью настоящей технологии является устранение некоторых недостатков, характерных для уровня техники.
[12] Варианты осуществления настоящей технологии разработаны с учетом понимания разработчиками того, что иногда избыточное количество точек POI затрудняет восприятие пользователем карты (например, представляющей центр города). Вне зависимости от того, знает пользователь, что именно он ищет или нет, большой объем отображаемой информации не позволяет пользователю эффективно изучать карту, так что пользователь может упустить из виду конкретную важную для него точку POI. Разработчики обнаружили, что иногда представление на карте полной информации о точках POI не только загромождает графический интерфейс, но и вносит задержки в процесс отображения информации. Эти факторы могут раздражать пользователя, а также приводить к неэффективному использованию вычислительных ресурсов клиентского устройства, поскольку для обнаружения нужного объекта пользователь вынужден многократно перемещаться по карте и направлять новые поисковые запросы поисковому механизму.
[13] Разработчики настоящей технологии также учли, что поставщики услуг (такие как Google™, Yahoo™ и Yandex™) предлагают пользователям различные облачные, рекламные, картографические, почтовые, аудио- и видеосервисы, календари, переводчики, социальные сети, интернет-магазины, облачные хранилища и другие сервисы. Поставщики услуг обычно имеют доступ к журналам, в которых регистрируется информация о действиях пользователей в различных сервисах (отправка запросов, просмотр документов, переходы по ссылкам и т.д.), а также информация о местоположении пользователей.
[14] По мнению разработчиков, информация о действиях пользователей позволяет улучшать представление точек POI на карте путем персонализации предложений точек POI, а также отображать подмножество из всех доступных точек POI в соответствии с масштабом карты.
[15] В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии разработчики учли, что данные о действиях пользователя в одном или нескольких сервисах (в том числе в картографическом сервисе) могут отражать его интерес к отображаемым на карте объектам (например, ресторанам, музеям или магазинам) и на их основе можно формировать признаки, указывающие на предпочтения соответствующего пользователя. Алгоритм машинного обучения (MLA, Machine Learning Algorithm) может представлять признаки пользователя в форме вектора в многомерном пространстве. Можно также извлекать признаки (например, категории) точек POI и представлять их в виде векторов точек POI в том же многомерном пространстве. Затем можно вычислять расстояние между вектором пользователя и векторами точек POI в многомерном пространстве, указывающее (по меньшей мере частично) на релевантность точки POI данному пользователю. С помощью этой информации можно ранжировать множество точек POI для данного пользователя картографического сервиса с целью его отображения (по меньшей мере частичного) на карте определенного масштаба.
[16] Таким образом, настоящая технология направлена на реализацию способа и сервера для представления точек POI на карте в картографическом сервисе.
[17] Согласно первому аспекту настоящей технологии реализован компьютерный способ представления пользователю точек POI в картографическом приложении, выполняемом на клиентском устройстве, связанном с пользователем и подключенном к серверу, обеспечивающему картографический сервис. Способ выполняется сервером и включает в себя получение сервером от клиентского устройства запроса на отображение некоторого местоположения на карте в картографическом приложении. Способ также включает в себя получение сервером множества точек POI на основе карты и данного местоположения. Способ также включает в себя получение сервером множества веб-сервисов, связанного с данным пользователем и содержащего по меньшей мере картографический сервис, на основе запроса. Способ также включает в себя получение сервером для по меньшей мере некоторых веб-сервисов из множества веб-сервисов данных о прежних действиях пользователя для данного пользователя в соответствующем веб-сервисе, при этом данные о прежних действиях пользователя по меньшей мере частично указывают на предпочтения данного пользователя относительно множества точек POI. Способ также включает в себя ранжирование сервером множества точек POI на основе данных о прежних действиях пользователя для получения ранжированного множества точек POI. Способ также включает в себя передачу сервером на клиентское устройство карты, содержащей по меньшей мере подмножество из ранжированного множества точек POI, для отображения данному пользователю на дисплее клиентского устройства.
1
[18] В некоторых вариантах осуществления настоящего способа он перед передачей карты (1 Выделенное добавлено по контексту для обеспечения ясности изложения.) включает в себя определение сервером для каждого масштаба из множества масштабов в картографическом приложении количества точек POI в подмножестве точек POI для отображения на карте.
[19] В некоторых вариантах осуществления настоящего способа подмножество из ранжированного множества точек POI соответствует количеству точек POI при текущем масштабе.
[20] В некоторых вариантах осуществления настоящего способа подмножество из ранжированного множества точек POI соответствует количеству точек POI при запрошенном масштабе.
[21] В некоторых вариантах осуществления настоящего способа определение множества веб-сервисов, связанного с данным пользователем, включает в себя определение профиля пользователя, связанного с данным пользователем, на основе запроса.
[22] В некоторых вариантах осуществления настоящего способа он включает в себя анализ профиля пользователя для определения по меньшей мере одного параметра, используемого при ранжировании точек POI.
[23] В некоторых вариантах осуществления настоящего способа множество веб-сервисов содержит по меньшей мере одно из следующего: сервис электронной почты, сервис заказа такси, сервис совместных поездок, навигационный сервис и сервис браузера.
[24] В некоторых вариантах осуществления настоящего способа каждая точка POI из множества точек POI имеет по меньшей мере один признак, являющийся по меньшей мере одним из следующего: название, описание, категория и местоположение, а получение данных о прежних действиях пользователя по меньшей мере частично основано на прежних действиях пользователя для данного пользователя в отношении по меньшей мере одного признака в соответствующем веб-сервисе.
[25] В некоторых вариантах осуществления настоящего способа он перед получением множества точек POI включает в себя формирование алгоритмом MLA, выполняемом на сервере, векторного представления каждой точки POI из множества точек POI в многомерном пространстве на основе по меньшей мере одного признака. Способ перед ранжированием множества точек POI также включает в себя формирование алгоритмом MLA вектора пользователя в многомерном пространстве на основе данных о прежних действиях пользователя для данного пользователя в отношении по меньшей мере одного признака во множестве веб-сервисов. Ранжирование по меньшей мере частично основано на расстояниях между вектором данного пользователя и векторным представлением каждой соответствующей точки POI из множества точек POI.
[26] В некоторых вариантах осуществления настоящего способа он перед ранжированием множества точек POI включает в себя получение сервером множества векторов пользователей, ранее сформированных алгоритмом MLA, при этом каждый вектор пользователя связан с соответствующим пользователем множества веб-сервисов и сформирован на основе прежних действий соответствующего пользователя в отношении по меньшей мере одного признака. Способ также включает в себя определение алгоритмом MLA расстояния между вектором данного пользователя и каждым вектором пользователя из множества векторов пользователей. Алгоритмом MLA выбирает по меньшей мере один вектор пользователя с минимальным расстоянием до вектора данного пользователя. Ранжирование по меньшей мере частично основано на расстояниях между по меньшей мере одним вектором пользователя и векторным представлением каждой соответствующей точки POI из множества точек POI.
[27] В некоторых вариантах осуществления настоящего способа подмножество из ранжированного множества точек POI содержит по меньшей мере одну точку POI, для которой отсутствуют данные о прежних действиях пользователя для данного пользователя.
[28] В некоторых вариантах осуществления настоящего способа алгоритм MLA является нейронной сетью (NN, Neural Network).
[29] В некоторых вариантах осуществления настоящего способа алгоритм MLA является глубокой структурированной семантической моделью (DSSM, Deep Structured Semantic Model).
[30] В некоторых вариантах осуществления настоящего способа данные о прежних действиях пользователя содержат по меньшей мере одно из следующего: количество «кликов» по точке POI из множества точек POI и количество посещений точки POI из множества точек POI.
2
[31] В некоторых вариантах осуществления настоящего способа получение сервером данных (2 Выделенное слово добавлено по контексту для обеспечения ясности изложения) для по меньшей мере некоторых веб-сервисов из множества веб-сервисов включает в себя получение данных для каждого веб-сервиса из множества веб-сервисов.
[32] Согласно второму аспекту настоящей технологии реализован сервер для представления пользователю точек POI в картографическом приложении, выполняемом на клиентском устройстве, связанном с пользователем и подключенном к серверу, обеспечивающему картографический сервис. Сервер содержит процессор и энергонезависимый машиночитаемый носитель информации с командами, при выполнении которых процессор способен получать от клиентского устройства запрос на отображение некоторого местоположения на карте в картографическом приложении и получать множество точек POI на основе карты и данного местоположения. Процессор также способен определять множество веб-сервисов, связанное с пользователем и содержащее по меньшей мере картографический сервис, на основе запроса. Процессор также способен получать для по меньшей мере некоторых из множества веб-сервисов данные о прежних действиях пользователя для данного пользователя в соответствующем веб-сервисе, при этом данные о прежних действиях пользователя по меньшей мере частично указывают на предпочтения данного пользователя относительно множества точек POI. Процессор также способен ранжировать множество точек POI на основе данных о прежних действиях пользователя для получения ранжированного множества точек POI. Процессор также способен передавать на клиентское устройство карту, содержащую по меньшей мере подмножество из ранжированного множества точек POI, для отображения данному пользователю на дисплее клиентского устройства.
[33] В некоторых вариантах осуществления сервера процессор перед передачей карты способен определять для каждого масштаба из множества масштабов в картографическом приложении соответствующее количество точек POI в подмножестве точек POI для отображения на карте.
[34] В некоторых вариантах осуществления сервера подмножество из ранжированного множества точек POI соответствует количеству точек POI при текущем масштабе.
[35] В некоторых вариантах осуществления сервера подмножество из ранжированного множества точек POI соответствует количеству точек POI при запрошенном масштабе.
[36] В некоторых вариантах осуществления сервера определение множества веб-сервисов, связанного с данным пользователем, включает в себя определение профиля пользователя, связанного с данным пользователем, на основе запроса.
[37] В некоторых вариантах осуществления сервера процессор способен анализировать профиль пользователя для определения по меньшей мере одного параметра, используемого при ранжировании точек POI.
[38] В некоторых вариантах осуществления сервера множество веб-сервисов содержит по меньшей мере одно из следующего: сервис электронной почты, сервис заказа такси, сервис совместных поездок, навигационный сервис и сервис браузера.
[39] В некоторых вариантах осуществления сервера каждая точка POI из множества точек POI имеет по меньшей мере один признак, являющийся по меньшей мере одним из следующего: название, описание, категория и местоположение, а получение данных о прежних действиях пользователя по меньшей мере частично основано на действиях данного пользователя в отношении по меньшей мере одного признака в соответствующем веб-сервисе.
[40] В некоторых вариантах осуществления сервера процессор перед получением множества точек POI способен формировать с использованием алгоритма машинного обучения (MLA), выполняемого на сервере, векторного представления каждой точки POI из множества точек POI в многомерном пространстве на основе по меньшей мере одного признака. Процессор также способен перед ранжированием множества точек POI формировать с использованием алгоритма MLA вектор данного пользователя в многомерном пространстве на основе данных о прежних действиях пользователя для данного пользователя в отношении по меньшей мере одного признака во множестве веб-сервисов. Ранжирование по меньшей мере частично основано на расстояниях между вектором данного пользователя и векторным представлением каждой точки POI из множества точек POI.
[41] В некоторых вариантах осуществления сервера процессор перед получением множества точек POI способен получать множество векторов пользователей, ранее сформированных алгоритмом MLA, при этом каждый вектор пользователя связан с соответствующим пользователем множества веб-сервисов и сформирован на основе прежних действий соответствующего пользователя в отношении по меньшей мере одного признака. Процессор также способен определять с использованием алгоритма MLA расстояние между вектором данного пользователя и каждым вектором пользователя из множества векторов пользователей и выбирать с использованием алгоритма MLA по меньшей мере один вектор пользователя с минимальным расстоянием до вектора данного пользователя. Ранжирование по меньшей мере частично основано на расстояниях между по меньшей мере одним вектором пользователя и векторным представлением каждой соответствующей точки POI из множества точек POI.
[42] В некоторых вариантах осуществления сервера подмножество из ранжированного множества точек POI содержит по меньшей мере одну точку POI, для которой отсутствуют данные о прежних действиях пользователя для данного пользователя.
[43] В некоторых вариантах осуществления сервера алгоритм MLA является нейронной сетью (NN).
[44] В некоторых вариантах осуществления сервера алгоритм MLA является глубокой структурированной семантической моделью (DSSM).
[45] В некоторых вариантах осуществления сервера данные о прежних действиях пользователя содержат по меньшей мере одно из следующего: количество «кликов» по точке POI из множества точек POI и количество посещений точки POI из множества точек POI.
[46] В некоторых вариантах осуществления сервера получение данных для по меньшей мере некоторых веб-сервисов из множества веб-сервисов включает в себя получение данных для каждого веб-сервиса из множества веб-сервисов.
[47] В некоторых вариантах осуществления настоящей технологии обеспечивается формирование и передача команд для немедленного отображения части карты с информацией, которая непосредственно полезна пользователю и/или непосредственно нужна пользователю и/или непосредственно требуется для отображения карты или интерактивных элементов, а получение и/или отображение остального содержимого карты выполняется клиентским устройством позже. Такой подход позволяет экономить вычислительные ресурсы, необходимые для отображения элементов карты на клиентском устройстве.
[48] В контексте настоящего описания термин «интересующая точка» («точка POI») обозначает объект или группу объектов, которые могут представлять интерес для пользователя. Например, к точкам POI могут относиться медицинские, культурные и досуговые центры, достопримечательности, кафе и рестораны, объекты транспортной инфраструктуры (такие как автозаправки) и т.д.
[49] Точка POI может представлять собой как отдельный объект (например, Архангельский собор Кремля, Благовещенский собор Кремля, Царь-пушка и т.д.), так и группу объектов (например, Московский Кремль).
[50] В контексте настоящего описания термин «маркер» обозначает точку на карте, которая указывает на объект или группу объектов (маркер точки POI) либо является центром масс точек POI, объединенных в кластер.
[51] В контексте настоящего описания выражение «маркер точки POI» обозначает точку на карте, которая указывает на объект или группу объектов. Маркер точки POI может содержать информацию об одном или нескольких объектах, например, имя, тип, адрес и контактную информацию. Маркер точки POI может быть точечным объектом и иметь положение на карте и может быть невидимым для пользователя. Маркер может иметь графический символ, указывающий на точку POI и видимый для пользователя.
[52]  В контексте настоящего описания выражение «графический символ» обозначает графическое изображение (маркер) точки POI на карте или кластера, состоящего из нескольких точек POI. Графический символ может являться пространственным объектом, отображаемым и видимым для пользователя. Графический символ может иметь различную геометрическую форму и размер. Графический символ также может включать в себя буквенную, цифровую и буквенно-цифровую информацию. Графические символы могут иметь различные цвета.
[53] В контексте настоящего описания, если явно не указано иное, «сервер» является компьютерной программой, выполняемой соответствующими аппаратными средствами и способной принимать запросы (например, от клиентских устройств) через сеть и выполнять эти запросы или инициировать их выполнение. Аппаратные средства могут представлять собой один физический компьютер или одну компьютерную систему, что не существенно для настоящей технологии. В настоящем контексте выражение «сервер» не означает, что каждая задача (например, принятая команда или запрос) или некоторая конкретная задача принимается, выполняется или запускается одним и тем же сервером (т.е. одними и теми же программными и/или аппаратными средствами). Это выражение означает, что любое количество программных средств или аппаратных средств может принимать, отправлять, выполнять или инициировать выполнение любой задачи или запроса либо результатов любых задач или запросов. Все эти программные и аппаратные средства могут представлять собой один сервер или несколько серверов, причем оба эти случая подразумеваются в выражении «по меньшей мере один сервер».
[54] В контексте настоящего описания, если явно не указано иное, «клиентское устройство» представляет собой любое компьютерное аппаратное средство, способное выполнять программы, подходящие для решения поставленной задачи. Таким образом, некоторые (не имеющие ограничительного характера) примеры клиентских устройств включают в себя персональные компьютеры (настольные, ноутбуки, нетбуки и т.п.), смартфоны и планшеты. Следует отметить, что в данном контексте устройство, функционирующее как клиентское устройство, также может функционировать как сервер для других клиентских устройств. Использование выражения «клиентское устройство» не исключает использования нескольких клиентских устройств для приема, отправки, выполнения или инициирования выполнения любой задачи или запроса либо результатов любых задач или запросов либо шагов любого описанного здесь способа.
[55] В контексте настоящего описания, если явно не указано иное, «база данных» представляет собой любой структурированный набор данных, независимо от его конкретной структуры, программного обеспечения для управления базой данных или компьютерных аппаратных средств для хранения этих данных, их применения или обеспечения их использования иным способом. База данных может располагаться в тех же аппаратных средствах, где реализован процесс, обеспечивающий хранение или использование информации, хранящейся в базе данных, либо база данных может располагаться в отдельных аппаратных средствах, таких как специализированный сервер или множество серверов.
[56] В контексте настоящего описания, если явно не указано иное, выражение «компонент» включает в себя обозначение программного обеспечения (подходящего для определенных аппаратных средств), необходимого и достаточного для выполнения определенной функции или нескольких функций.
[57] В контексте настоящего описания, если явно не указано иное, выражение «пригодный для использования в компьютере носитель информации» означает носители любого рода и вида, включая оперативное запоминающее устройство (ОЗУ), постоянное запоминающее устройство (ПЗУ), диски (CD-ROM, DVD, гибкие диски, жесткие диски и т.д.), USB-накопители, твердотельные накопители, накопители на магнитных лентах и т.д.
[58] В контексте настоящего описания, если явно не указано другое, в качестве указания на информационный элемент может выступать сам информационный элемент, а также указатель, ссылка, гиперссылка или другое косвенное средство, с помощью которого получатель данных может найти место в сети, памяти, базе данных или на ином машиночитаемом носителе информации, откуда можно извлечь этот информационный элемент. Например, указание на документ может включать в себя сам документ (т.е. его содержимое) или указание может представлять собой уникальный дескриптор документа, указывающий на файл в определенной файловой системе, или на какие-либо другие средства для указания получателю данных места в сети, адреса памяти, таблицы в базе данных или другого места, где можно получить доступ к файлу. Специалисту в данной области техники должно быть очевидно, что степень точности, требуемая для такого указания, зависит от объема предварительных пояснений относительно интерпретации информации, которой обмениваются отправитель и получатель данных. Например, если перед началом обмена данными между отправителем и получателем известно, что указание на информационный элемент представляет собой ключ базы данных для элемента в определенной таблице заранее заданной базы данных, содержащей информационный элемент, то для эффективной передачи этого информационного элемента получателю достаточно оправить ключ базы данных, даже если сам информационный элемент не передается между отправителем и получателем данных. Каждый вариант осуществления настоящей технологии относится к по меньшей мере одной из упомянутых выше целей и/или аспектов, но не обязательно ко всем ним. Должно быть понятно, что некоторые аспекты настоящей технологии, связанные с попыткой достижения вышеупомянутой цели, могут не соответствовать этой цели и/или могут соответствовать другим целям, явным образом здесь не упомянутым.
[59] Дополнительные и/или альтернативные признаки, аспекты и преимущества вариантов осуществления настоящей технологии содержатся в дальнейшем описании, в приложенных чертежах и в формуле изобретения.
Краткое описание чертежей
[60] Для лучшего понимания настоящей технологии, других ее аспектов и признаков далее приведено описание со ссылками на следующие приложенные чертежи.
[61] На фиг. 1 приведена схема компьютерной системы в не имеющем ограничительного характера варианте осуществления настоящей технологии.
[62] На фиг. 2 приведена схема сетевой компьютерной среды в не имеющим ограничительного характера варианте осуществления настоящей технологии.
[63] На фиг. 3 приведена схема процедуры рекомендации точек POI в не имеющем ограничительного характера варианте осуществления настоящей технологии.
[64] На фиг. 4 схематически показаны карты различного масштаба с соответствующими подмножествами точек POI, отображаемых согласно не имеющим ограничительного характера вариантам осуществления настоящей технологии.
[65] На фиг. 5 приведена блок-схема способа представления точек POI на карте электронного устройства, реализованного в соответствии с не имеющими ограничительного характера вариантами осуществления настоящей технологии.
[66] На фиг. 6 приведена блок-схема способа формирования множества векторов точек POI, реализованного в соответствии с не имеющими ограничительного характера вариантами осуществления настоящей технологии.
[67] На фиг. 7 приведена с блок-схема способа формирования вектора пользователя, реализованного в соответствии с не имеющими ограничительного характера вариантами осуществления настоящей технологии.
Осуществление изобретения
[68] Представленные здесь примеры и условный язык предназначены для обеспечения лучшего понимания принципов настоящей технологии, а не для ограничения ее объема до таких специально приведенных примеров и условий. Очевидно, что специалисты в данной области техники способны разработать различные способы и устройства, которые явно не описаны и не показаны, но реализуют принципы настоящей технологии в пределах ее существа и объема.
[69] Кроме того, чтобы способствовать лучшему пониманию, последующее описание может содержать упрощенные варианты реализации настоящей технологии. Специалисту в данной области техники должно быть понятно, что другие варианты осуществления данной технологии могут быть значительно сложнее.
[70] В некоторых случаях также приводятся полезные примеры модификаций настоящей технологии. Они способствуют пониманию, но также не определяют объема или границ данной технологии. Представленный перечень модификаций не является исчерпывающим и специалист в данной области техники может разработать и другие модификации в пределах объема настоящей технологии. Кроме того, если в некоторых случаях модификации не описаны, это не означает, что они невозможны и/или что описание содержит единственный вариант реализации соответствующего элемента настоящей технологии.
[71] Более того, описание принципов, аспектов и вариантов реализации настоящей технологии, а также их конкретные примеры предназначены для охвата их структурных и функциональных эквивалентов, независимо от того, известны они в настоящее время или будут разработаны в будущем. Например, специалистам в данной области техники должно быть понятно, что любые описанные структурные схемы соответствуют концептуальным представлениям иллюстративных принципиальных схем, реализующих принципы настоящей технологии. Также должно быть очевидно, что любые блок-схемы, схемы процессов, диаграммы изменения состояния, псевдокоды и т.п. соответствуют различным процессам, которые могут быть представлены на машиночитаемом физическом носителе информации и могут выполняться компьютером или процессором, независимо от того, показан явно или нет такой компьютер или процессор.
[72] Функции различных элементов, показанных на чертежах, включая любой функциональный блок, обозначенный как «процессор», могут реализовываться с использованием специализированных аппаратных средств, а также аппаратных средств, способных выполнять соответствующее программное обеспечение. Если используется процессор, его функции могут выполняться одним выделенным процессором, одним совместно используемым процессором или множеством отдельных процессоров, некоторые из которых могут использоваться совместно. Кроме того, явное использование термина «процессор» или «контроллер» не должно трактоваться как указание исключительно на аппаратные средства, способные выполнять программное обеспечение, и может, помимо прочего, подразумевать аппаратные средства цифрового сигнального процессора (DSP), сетевой процессор, специализированную интегральную схему (ASIC), программируемую вентильную матрицу (FPGA), ПЗУ для хранения программного обеспечения, ОЗУ и энергонезависимое ЗУ. Также могут подразумеваться другие аппаратные средства, общего назначения и/или заказные.
[73] Программные модули или просто модули, реализация которых подразумевается в виде программных средств, могут быть представлены здесь как любое сочетание элементов блок-схемы или других элементов, указывающих на выполнение шагов процесса и/или содержащих их текстовое описание. Такие модули могут выполняться аппаратными средствами, показанными явно или предполагаемыми.
[74] Учитывая вышеизложенные принципы, далее рассмотрены некоторые не имеющие ограничительного характера примеры, иллюстрирующие различные варианты реализации аспектов настоящей технологии.
Описание системы
[75]
Компьютерная система
[76]
[77] На фиг. 1 представлена компьютерная система 100, пригодная для использования в некоторых вариантах осуществления настоящей технологии и содержащая различные элементы аппаратных средств, включая один или несколько одно- или многоядерных процессоров, совместно представленных процессором 110, твердотельный накопитель 120, память 130, которая может представлять собой ОЗУ, сетевой модуль 140 и модуль 150 GPS. Связь между элементами компьютерной системы 100 может осуществляться через одну или несколько внутренних и/или внешних шин (с общим обозначением 102), таких как шина PCI, универсальная последовательная шина, шина FireWire стандарта IEEE 1394, шина SCSI, шина Serial-ATA и т.д., с которыми аппаратные элементы соединены электронным образом. В представленном на фиг. 1 не имеющем ограничительного характера варианте осуществления изобретения связь в компьютерной системе 100 реализована с использованием звездообразной структуры через процессор 110. Тем не менее, в альтернативных вариантах осуществления настоящей технологии связь может быть реализована иначе.
[78] Согласно вариантам осуществления настоящей технологии, твердотельный накопитель 120 хранит программные команды, пригодные для загрузки в память 130 и исполнения процессором 110 с целью отображения информации пользователю компьютерной системы 100, как более подробно описано ниже. Например, программные команды могут входить в состав картографического приложения или навигационного приложения, выполняемого процессором 110. Сетевой модуль 140 и модуль 150 GPS обеспечивают связь между различными компьютерными системами, серверами и/или другими устройствами.
Сетевая компьютерная среда
[79]
[80] На фиг. 2 представлена сетевая компьютерная среда 200, пригодная для использования с некоторыми вариантами осуществления систем и/или способов согласно настоящей технологии. Сетевая компьютерная среда 200 содержит множество 202 электронных устройств, сервер 250 поисковой системы, картографический сервер 260, один или несколько других серверов 270 и сервер 280 отслеживания, подключенные к сети 240 связи посредством соответствующих линий связи (не обозначены).
Множество электронных устройств
[81]
[82] Множество 202 электронных устройств содержит первое электронное устройство 204, второе электронное устройство 210 и третье электронное устройство 216, связанные с первым пользователем 206, вторым пользователем 212 и третьим пользователем 218, соответственно. Несмотря на то, что на фиг. 2 показаны только первое электронное устройство 204, второе электронное устройство 210 и третье электронное устройство 216, к сетевой компьютерной среде 200 может быть подключено любое количество электронных устройств соответствующих пользователей. В некоторых вариантах осуществления количество электронных устройств в сетевой компьютерной среде 200 может достигать десятков или сотен тысяч.
[83] Следует отметить, что несмотря на то, что множество 202 электронных устройств показано как содержащее три электронных устройства, это не является обязательным для каждой реализации настоящей технологии. На практике множество 202 электронных устройств может содержать десятки или сотни тысяч устройств.
[84] На реализацию электронного устройства из множества 202 электронных устройств не накладывается особых ограничений. Например, электронное устройство может быть реализовано в виде беспроводного устройства связи, такого как мобильный телефон (например, смартфон или радиотелефон), автомобильного навигатора (например, TomTom™ или Garmin™), планшета, персонального компьютера и т.п. Тем не менее, на фиг. 2 каждое электронное устройство показано в виде смартфона (несмотря на то, что они не обязательно должны быть реализованы одинаково и что каждое электронное устройство может быть реализовано на основе другого электронного устройства).
[85] Электронное устройство может содержать некоторые или все элементы компьютерной системы 100, представленной на фиг. 1. В некоторых вариантах осуществления изобретения электронное устройство содержит сетевой модуль 140 для обеспечения связи через сеть 240 связи, модуль 150 GPS для приема от спутника 246 системы GPS и передачи на него сигнала 248 системы GPS (т.е. для обеспечения функций GPS электронного устройства), процессор 110, память 130 и интерфейс отображения информации, например, сенсорный экран.
Одно или несколько сервисных приложений
[86]
[87] В состав электронного устройства могут входить оборудование и/или программы и/или микропрограммы для выполнения одного или нескольких сервисныхприложений 220, показанных на фиг. 2 и связанных с третьим электронным устройством 216.
[88] Одно или несколько сервисных приложений 220 включают в себя по меньшей мере картографическое приложение 222. В некоторых вариантах осуществления настоящей технологии одно или несколько сервисных приложений 220 включают в себя картографическое приложение 222 и приложение 224 браузера. В других вариантах осуществления настоящей технологии одно или несколько сервисных приложений 220 включают в себя картографическое приложение 222, приложение 224 браузера, новостное приложение (не обозначено), приложение заказа такси (не обозначено), приложение доставки еды (не обозначено), приложение магазина (не обозначено), приложение социальных сетей (не обозначено), приложение потокового воспроизведения музыки (не обозначено) и т.д.
[89] В конкретном не имеющем ограничительного характера варианте осуществления настоящей технологии роль картографического приложения 222 могут играть приложения Yandex.Maps™ или Yandex.Navigator™, обеспечиваемые ООО «Яндекс» (119021, г. Москва, ул. Льва Толстого, 16). В других вариантах осуществления настоящей технологии доступ к функциям картографического приложения может осуществляться через приложение 224 браузера (например, путем ввода унифицированного указателя ресурса (URL, Uniform Resource Locator) картографического сервиса, обеспечиваемого картографическим приложением 222). В некоторых вариантах осуществления настоящей технологии одно или несколько сервисных приложений 220 сообщают текущее местоположение электронного устройства (например, с использованием сетевого модуля 140 и/или GPS-модуля 150). Электронное устройство также может дополнять информацию GPS с использованием анализа беспроводных сетей, позволяющего определять географическое местоположение по беспроводным сетям (в частности, сетей Wi-Fi) вблизи устройства пользователя.
[90] В не имеющих ограничительного характера вариантах осуществления, где роль картографического приложения 222 выполняет Yandex.Maps™ или Yandex.Navigator™, множество 220 сервисных приложений может включать в себя по меньшей мере одно из следующего: приложение 224 браузера Yandex.Browser™, новостное приложение Yandex.News™, приложение магазина Yandex.Market™, приложение заказа такси Yandex.Taxi™, приложение электронной почты Yandex.Mail™, приложение потокового воспроизведения музыки Yandex.Music™, приложение доставки еды Yandex.Eda™ и т.д. В некоторых вариантах осуществления настоящей технологии, в которых одно или несколько сервисных приложений 220 управляются одной организацией, пользователь (например, третий пользователь 218) может регистрироваться в одном или нескольких сервисных приложениях 220 с использованием одного имени и пароля. В других вариантах осуществления настоящей технологии у пользователя может отсутствовать необходимость регистрироваться в одном или нескольких сервисных приложениях 220 или он может использовать в них различные имена и пароли.
[91] Одно или несколько сервисных приложений 220 также могут включать в себя приложения, не управляемые одной организацией, обеспечивающей вышеупомянутое картографическое приложение 222. Такими приложениями являются социальные сети (например, Vkontakte™ и Facebook™), приложения потокового воспроизведения видео (такие как YouTube™) и музыки Spotify™.
[92] В некоторых вариантах осуществления настоящей технологии каждое сервисное приложение 220 может отслеживать действия пользователей, локально сохранять соответствующую информацию на электронном устройстве конкретного пользователя (например, в памяти 130 третьего электронного устройства 216 третьего пользователя 218) либо передавать ее на сервер 280 отслеживания.
Сеть связи
[93]
[94] Каждое из множества 202 электронных устройств подключается к сети 240 связи посредством линии связи (не обозначена). В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии в качестве сети 240 связи может использоваться сеть Интернет. В других вариантах осуществления настоящей технологии сеть 240 связи может быть реализована иначе - в виде глобальной сети, локальной сети, частной сети и т.п.

[95] На реализацию линии связи (не обозначена) не накладывается конкретных ограничений, она зависит от реализации каждого из множества 202 электронных устройств. В качестве примера, в тех вариантах осуществления настоящей технологии, где каждое из множества 202 электронных устройств реализовано в виде беспроводного устройства (такого как смартфон), линия связи может быть реализована как беспроводная линия связи (например, 3G, 4G, Wireless Fidelity (WiFi), Bluetooth и т.д., но ограничиваясь ими). В тех примерах, где каждое из множества 202 электронных устройств реализовано в виде ноутбука, линия связи может быть реализована как беспроводная линия связи (WiFi, Bluetooth и т.д.) или как проводная линия связи (например, соединение на основе Ethernet).
[96] Сетевая компьютерная среда 200 включает в себя GPS-спутник 246 для передачи множеству 202 электронных устройств и/или приема от него GPS-сигнала 248. В настоящей технологии также могут применяться системы позиционирования, отличные от GPS (например, GLONASS, DORIS, BeiDou или COMPASS).
[97] В общем случае сеть 240 связи может передавать, среди прочего, пакет 242 данных клиента (показан только один пакет) от каждого из первого электронного устройства 204, второго электронного устройства 210 и третьего электронного устройства 216 каждому из сервера 250 поисковой системы, картографического сервера 260, одного или нескольких других серверов 270 и сервера 280 отслеживания, а также пакет 244 данных сервера (показан только один пакет) от каждого из сервера 250 поисковой системы, картографического сервера 260, одного или нескольких других серверов 270 и сервера 280 отслеживания первому электронному устройству 204, второму электронному устройству 210 и третьему электронному устройству 216.
Сервер поисковой системы
[98]
[99] К сети 240 связи также подключен вышеупомянутый сервер 250 поисковой системы. Сервер 250 поисковой системы может быть реализован в виде традиционного компьютерного сервера. В одном примере сервер 250 поисковой системы может быть реализован в виде сервера Dell™ PowerEdge™, работающего под управлением операционной системы Microsoft™ Windows Server™. Очевидно, что сервер 250 поисковой системы также может быть реализован с использованием любых других подходящих аппаратных средств, прикладного программного обеспечения и/или встроенного программного обеспечения либо их сочетания. В представленных не имеющих ограничительного характера вариантах осуществления настоящей технологии сервер 250 поисковой системы представляет собой один сервер. В альтернативных не имеющих ограничительного характера вариантах осуществления настоящей технологии функции сервера 250 поисковой системы могут быть распределены и реализованы несколькими серверами. В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии сервер 250 поисковой системы контролируется или управляется оператором поисковой системы. В альтернативном варианте сервер 250 поисковой системы может контролироваться или управляться поставщиком услуг.
[100] На сервере 250 поисковой системы работает поисковый механизм 252, доступ к которой обеспечивает приложение 224 браузера, выполняемое на первом электронном устройстве 204, втором электронном устройстве 210 и третьем электронном устройстве 216. В некоторых вариантах осуществления настоящей технологии на сервере 250 в качестве поискового механизма 252 может использоваться поисковый механизм Yandex™.
[101] Сервер 250 поисковой системы ведет базу 255 данных поисковых запросов с индексом (не показан).
[102] В общем случае сервер 250 поисковой системы (1) обнаруживает и индексирует документы, доступные в Интернете, (2) выполняет поиск по запросу пользователя электронного устройства, передаваемому в пакете 242 данных клиента, (3) анализирует и ранжирует документы в соответствии с поисковым запросом, (4) группирует документы и формирует страницу результатов поиска (SERP, Search Engine Result Page), передаваемую в пакете 244 данных сервера на электронное устройство из множества 202 электронных устройств, с которого поступил запрос, вызвавший формирование страницы SERP.
[103] На реализацию обнаружения и индексирования документов, поиска, анализа и ранжирования документов на сервере 250 поисковой системы не накладывается особых ограничений. Специалистам должно быть ясно, что ввиду наличия множества путей и средств реализации сервера 250 поисковой системы ряд его структурных элементов не описан в контексте настоящей технологии.
[104] Сервер 250 поисковой системы способен ранжировать обнаруженные документы в индексе, который включает в себя по меньшей мере некоторые доступные для поиска термины запроса.
[105] В качестве примера (но не ограничения) следует отметить, что некоторые из известных способов ранжирования результатов поиска по релевантности основаны на всех или на некоторых из следующих критериев: (1) популярность у пользователей поискового запроса или его результатов; (2) количество полученных результатов; (3) наличие в поисковом запросе определительных терминов (таких как «изображения», «фильмы», «погода» и т.п.); (4) частота отправки другими пользователями поискового запроса с определительными терминами; (5) частота выбора ресурса или результатов вертикального поиска, отображаемых на странице SERP, пользователями, отправляющими схожие запросы. Таким образом, сервер 250 поисковой системы может вычислять и присваивать рейтинг релевантности на основе вышеперечисленных критериев каждому результату поиска, полученному в ответ на запрос пользователя, а также формировать страницу SERP, на которой результаты поиска ранжированы по релевантности. Следует иметь в виду, что ранжирование документов в результатах поиска может выполняться в несколько этапов.
[106] В некоторых вариантах осуществления настоящей технологии сервер 250 поисковой системы может выполнять ранжирование для различных типов поиска, в том числе, для общего поиска и вертикального поиска.
Картографический сервер
[107]
[108] Картографический сервер 260 также подключен к сети 240 связи. Картографический сервер 260 может быть реализован в виде традиционного компьютерного сервера. В примере осуществления настоящей технологии картографический сервер 260 может быть реализован в виде сервера Dell™ PowerEdge™, работающего под управлением операционной системы Microsoft™ Windows Server™. Очевидно, что картографический сервер 260 также может быть реализован с использованием любых других подходящих аппаратных средств, прикладного программного обеспечения и/или встроенного программного обеспечения либо их сочетания. В представленных не имеющих ограничительного характера вариантах осуществления настоящей технологии картографический сервер 260 представляет собой один сервер. В альтернативных не имеющих ограничительного характера вариантах осуществления настоящей технологии функции картографического сервера 260 могут быть распределены и реализованы несколькими серверами.
[109] В общем случае картографический сервер 260 обеспечивает функционирование одного или нескольких картографических сервисов (далее – картографический сервис 262), предоставляющих картографические данные множеству 202 электронных устройств. Картографический сервер 260 подключен к картографической базе 265 данных.
[110] Доступ к картографическому сервису 262, расположенному на картографическом сервере 260, обеспечивается через картографическое приложение 222, приложение 224 браузера или любое другое подходящее приложение, выполняемое на множестве 202 электронных устройств. В некоторых вариантах осуществления настоящей технологии картографический сервис 262 может представлять собой картографический сервис Yandex.Maps™.
[111] В общем случае картографический сервер 260 (1) принимает по сети 240 связи от электронного устройства из множества 202 электронных устройств, связанного с пользователем, запрос карты в виде пакета 242 данных клиента, (2) получает из картографической базы 265 данных картографические данные (один или несколько листов карты, точки POI и интерактивные элементы) для формирования необходимой карты, (3) структурирует полученные картографические данные, в том числе точки POI, для данного пользователя, (4) передает через сеть 240 связи структурированные картографические данные в пакете 244 данных сервера для отображения на электронном устройстве из множества 202 электронных устройств. Картографический сервис 262, обеспечивающий структурирование картографических данных для конкретного пользователя, описан далее.
[112] На фиг. 2 показано, что картографическая база 265 данных подключена непосредственно к картографическому серверу 260, тем не менее, в других вариантах реализации картографическая база 265 данных может быть подключена к картографическому серверу 260 через сеть 240 связи без отклонения от принципов настоящей технологии. Несмотря на то, что здесь картографическая база 265 данных представлена как единое целое, она может быть реализована распределенным образом, например, она может содержать распределенные элементы, каждый из которых выполняет функции получения из базы и сохранения в базе картографических данных. Картографическая база 265 данных может представлять собой структурированный набор данных вне зависимости от его конкретной структуры или от компьютерного оборудования для хранения данных, их формирования или обеспечения их использования иным образом. Картографическая база 265 данных может размещаться в том же оборудовании, что и процесс хранения или использования ее содержимого, либо она может размещаться в отдельном оборудовании, таком как картографический сервер 260. В общем случае картографическая база 265 может принимать картографические данные от сервера 260 для хранения и передавать ему картографические данные для использования.
[113] Например, для хранения содержимого картографической базы 265 данных можно использовать формат YMapsML. В альтернативных вариантах реализации содержимое картографической базы 265 данных можно хранить в формате GML (Geographic Markup Language, географический язык разметки). Формат GML соответствует международному стандарту ISO, а его развитием и поддержкой занимается консорциум OGC (Open Geospatial Consortium).
[114] В картографической базе 265 данных может храниться множество элементов карты, связанных с ее отображением. В общем случае множество элементов карты может содержать все необходимые данные для отображения карты в картографическом приложении 222 на электронном устройстве из множества 202 электронных устройств. В одних вариантах осуществления множество элементов карты может содержать листы карты, данные API и ресурсные данные. В некоторых вариантах осуществления картографическая база 265 данных может хранить данные, связанные с электронным устройством (например, с третьим электронным устройством 216) и с пользователем (например, с третьим пользователем 218).
[115] В общем случае листы карты могут образовывать всю карту определенного масштаба и формировать ее изображение для пользователя на соответствующем электронном устройстве. Каждый лист карты может иметь определенный уровень детализации, от которого зависит информация, отображаемая на этом листе, например, свойства рельефа, соответствующие его масштабу, включая города, поселки, села, здания, автомобильные, железные и пешеходные дороги, озера, реки, леса, достопримечательности, рельеф, трехмерную форму земной поверхности, конкретные элементы рельефа и т.п. Каждый лист карты также может иметь определенный уровень качества, например, графическое разрешение этого листа. Картографическая база 265 данных хранит на листах карты множество 300 точек POI, где каждая конкретная точка 302 POI имеет множество 304 признаков, что подробно описано далее.
[116] В общем случае ресурсные данные могут содержать информацию о статических, динамических и интерактивных элементах, отображаемых на карте. Например, ресурсные данные могут описывать метки, топонимы различных мест и объектов на карте, панель инструментов, панель поиска, боковую панель, различные изображения, географические координаты, адреса и т.д. Достаточно сказать, что ресурсные данные могут содержать данные о некоторых или обо всех ресурсах, необходимых для отображения карты в картографическом приложении 222.
[118] В контексте настоящей технологии картографический сервер 260 позволяет отображать на электронном устройстве пользователя картографического сервиса 262 (например, на третьем электронном устройстве 216 третьего пользователя 218) соответствующее количество точек POI (не показано на фиг. 2) на карте заданного масштаба картографического сервиса 262. Картографический сервер 260, позволяющий отображать карту с точками POI, подробно описан далее.
[119] Картографический сервер 260 способен выполнять алгоритм 268 MLA для определения сходства текстовых строк в непрерывном многомерном пространстве. В контексте настоящей технологии целью алгоритма 268 MLA является проецирование векторов предпочтений первого пользователя 206, второго пользователя 212 и третьего пользователя 218 картографического сервиса 262 (далее - векторов пользователей) в общем низкоразмерном семантическом пространстве, а также векторов, представляющих множество 300 точек POI в картографическом сервисе 262 (далее - векторов точек POI), таким образом, чтобы расстояние между вектором пользователя и вектором точки POI указывало на степень сходства или релевантности этой точки и этого пользователя.
[120] В некоторых вариантах осуществления настоящей технологии алгоритм 268 MLA может представлять собой нейронную сеть (NN, neural network). В других вариантах осуществления настоящей технологии алгоритм 268 MLA может представлять собой глубокую модель семантического сходства (DSSM, Deep Semantic Similarity Model).
[121] Процесс выполнения алгоритма 268 MLA картографическим сервером 260 для определения релевантности точки POI подробно описан далее.
Другие серверы
[122]
[123] В некоторых вариантах осуществления настоящей технологии к сети 240 связи могут быть подключены один или несколько других серверов 270 (показан лишь один из них), на которых размещен или реализован соответствующий сервис. В примере осуществления настоящей технологии один или несколько других серверов 270 могут быть реализованы в виде сервера Dell™ PowerEdge™, работающего под управлением операционной системы Microsoft™ Windows Server™. Очевидно, что один или несколько других серверов 270 также могут быть реализованы с использованием любых других подходящих аппаратных средств, прикладного программного обеспечения и/или встроенного программного обеспечения либо их сочетания. В представленных не имеющих ограничительного характера вариантах осуществления настоящей технологии каждый из других серверов 270 представляет собой один сервер. В альтернативных не имеющих ограничительного характера вариантах осуществления настоящей технологии функции одного или нескольких других серверов 270 могут быть распределены и реализованы несколькими серверами. В других, не имеющих ограничительного характера вариантах осуществления настоящей технологии функции одного или нескольких других серверов 270 могут быть реализованы в виде одного сервера.
[124] Как указано выше, в не имеющем ограничительного характера примере один или несколько других серверов 270 могут использоваться для размещения и/или для предоставления каждому электронному устройству из множества 202 электронных устройств одного или нескольких других сервисов 272 (изображен лишь один из них), доступных посредством одного или нескольких сервисных приложений 220 на каждом электронном устройстве из множества 202 электронных устройств, например, сервиса электронной почты, сервиса социальных сетей, сервиса потокового воспроизведения видео, сервиса потокового воспроизведения музыки, сервиса заказа такси, сервиса совместных поездок, онлайн-магазина и т.д.
[125] Один или несколько других серверов 270 содержат соответствующие базы 275 данных (показана только одна), где хранятся данные, необходимые для предоставления одного или нескольких других сервисов 272.
Сервер отслеживания
[126]
[127] К сети 240 связи также подключен вышеупомянутый сервер 280 отслеживания. Сервер 280 отслеживания может быть реализован в виде традиционного компьютерного сервера. В примере осуществления настоящей технологии сервер 280 отслеживания может быть реализован в виде сервера Dell™ PowerEdge™, работающего под управлением операционной системы Microsoft™ Windows Server™. Очевидно, что сервер 280 отслеживания также может быть реализован с использованием любых других подходящих аппаратных средств, прикладного программного обеспечения и/или встроенного программного обеспечения либо их сочетания. В представленных не имеющих ограничительного характера вариантах осуществления настоящей технологии сервер 280 отслеживания представляет собой один сервер. В альтернативных не имеющих ограничительного характера вариантах осуществления настоящей технологии функции сервера 280 отслеживания могут быть распределены и реализованы несколькими серверами. В других вариантах осуществления настоящей технологии функции сервера 280 отслеживания могут быть полностью или частично распределены между сервером 250 поисковой системы, картографическим сервером 260 и одним или несколькими другими серверами 270. В некоторых вариантах осуществления настоящей технологии функции сервера 280 отслеживания могут выполняться множеством 202 электронных устройств. В некоторых вариантах осуществления настоящей технологии сервер 280 отслеживания контролируется или управляется оператором поисковой системы. Сервер 280 отслеживания также может контролироваться или управляться другим поставщиком услуг.
[128] Сервер 280 отслеживания ведет базу 285 данных отслеживания, в которой хранится информация о действиях пользователей. На формат этой информации о действиях пользователей не накладывается ограничений, она может сохраняться для отдельных пользователей и для приложений.
[129] В общем случае 280 отслеживания способен: (1) отслеживать и сохранять действия первого пользователя 206, второго пользователя 212 и третьего пользователя 218 в поисковом механизме 252, размещенном на сервере 250 поисковой системы; (2) отслеживать и сохранять действия первого пользователя 206, второго пользователя 212 и третьего пользователя 218 в картографическом сервисе 262, размещенном на картографическом сервере 260; (3) отслеживать и сохранять действия первого пользователя 206, второго пользователя 212 и третьего пользователя 218 в одном или нескольких других сервисах 272, размещенных на одном или нескольких других серверах 270. Сервер 280 отслеживания способен отслеживать местоположение первого пользователя 206, второго пользователя 212 и третьего пользователя 218, при этом отслеживание может осуществляться при взаимодействии пользователя с сервисным приложением из множества 220 сервисных приложений.
[130] В качестве не имеющего ограничительного характера примера, сервер 280 отслеживания может отслеживать действия пользователей в отношении результатов поиска, предоставленных поисковым механизмом 252 сервера 250 поисковой системы в ответ на запросы пользователей (сделанные пользователями электронных устройств из множества 202 электронных устройств). Сервер 280 отслеживания может отслеживать действия пользователей (например, переходы по ссылкам) при выполнении общего и вертикального веб-поиска поисковым механизмом 252, а также сохранять информацию о них в базе 285 данных отслеживания. Сервер 280 отслеживания может отслеживать в отношении заданного пользователя следующую информацию:
- запросы, отправленные поисковому механизму;
- содержимое страниц SERP, сформированных поисковым механизмом при обработке поисковых запросов;
- результаты поиска, выбранные пользователем;
- время пребывания - время, в течение которого пользователь просматривает результат перед возвращением на страницу результатов поиска;
- длинный или короткий «клик» - насколько длительным был просмотр документа пользователем по сравнению с другими документами на странице результатов поиска.
[131] В качестве не имеющего ограничительного характера примера, сервер 280 отслеживания может отслеживать действия пользователей в отношении карты, предоставленной картографическим сервером 260, например, посредством картографического приложения 222 или приложения 224 браузера. В отношении заданного пользователя могут отслеживаться:
- запрошенные местоположения, адреса и города;
- выбранные точки POI;
- посещенные точки POI;
- длительность посещения точек POI.
[132] В качестве не имеющего ограничительного характера примера, сервер 280 отслеживания может отслеживать действия пользователей в одном или нескольких других сервисах 272, предоставляемых одним или несколькими другими серверами 270, например, посредством одного или нескольких сервисных приложений 220. Для заданного пользователя могут отслеживаться:
- веб-сайты в закладках;
- рестораны, в которых пользователь делал заказы;
- продукты, которые покупал пользователь;
- видеоролики и музыка, которые пользователь скачивал или воспроизводил в потоковом режиме.
[133] Следует иметь в виду, что данные о действиях пользователя могут собираться за конкретный период (например, за последние 365 дней или 180 дней).
[134] В некоторых вариантах осуществления настоящей технологии сервер 280 отслеживания может выполнять статистический анализ действий пользователя и определять параметры этих действий.
[135] В некоторых вариантах осуществления настоящей технологии сервер 280 отслеживания может создавать профиль пользователя и/или его электронного устройства на основе отслеженных действий пользователя в поисковом механизме 252 и/или в картографическом сервисе 262 и/или в одном или нескольких других сервисах 272. Сервер 280 отслеживания может создавать групповые профили, при этом профили пользователей, выполнявших схожие действия в поисковом механизме 252 и/или в картографическом сервисе 262 и/или в одном или нескольких других сервисах 272, могут объединяться в одну группу, которая может быть или не быть анонимной.
[136] В контексте настоящей технологии профиль пользователя может указывать на предпочтения данного пользователя относительно категорий, связанных с точками POI в картографическом сервисе 262. Профиль пользователя может формироваться алгоритмом MLA (не показан) путем анализа действий пользователя в базе 285 данных отслеживания с учетом категорий.
[137] В некоторых вариантах осуществления настоящей технологии одно или несколько сервисных приложений 220, управляемых той же организацией, что и картографическое приложение 222, передают серверу 280 отслеживания и/или сохраняют действия и/или геолокационные данные пользователя с указанием идентификатора его устройства или другого средства для последующей идентификации истории его действий или геолокации на беспроводных устройствах, с использованием которых пользователь выполнял действия, составляющие историю его действий.
[138] На фиг. 3 схематически показана процедура 400 рекомендации точки POI конкретному пользователю (например, третьему пользователю 218). Процедура 400 рекомендации точки POI показана в соответствии с не имеющими ограничительного характера вариантами осуществления настоящей технологии.
Процедура рекомендации точки POI
[139]
[140] Картографический сервер 260 способен выполнять процедуру 400 рекомендации точки POI путем выполнения (1) процедуры 410 формирования вектора точки POI, (2) процедуры 430 формирования вектора пользователя, (3) процедуры 440 определения расстояния и (4) процедуры 460 ранжирования точек POI.
Процедура формирования вектора точки POI
[141]
[142] Картографический сервер 260 способен выполнять процедуру 410 формирования вектора точки POI, которая формирует множество 415 векторов точек POI. Каждый вектор 417 точки POI является числовым представлением точки 302 POI из множества 300 точек POI, основанным на множестве 304 признаков точки 302 POI.
[143] Процедура 410 формирования вектора точки POI может выполняться в автономном (офлайн) режиме. Процедура 410 формирования вектора точки POI может выполняться периодически (например, еженедельно) или при получении указания, например, при добавлении новых точек POI в картографическую базу 265 данных.
[144] Процедура 410 формирования вектора точки POI получает из картографической базы 265 данных множество 300 точек POI. В качестве не имеющего ограничительного характера примера множество 300 точек POI может включать в себя все точки POI в конкретной стране, регионе, городе или районе.
[145] Каждая точка 302 POI из множества 300 точек POI имеет множество 304 признаков точки POI.
4
[146] Множество 304 признаков точки 302 POI содержит ее местоположение, которое может быть задано, например, в координатах широты и долготы. В некоторых вариантах осуществления настоящей технологии множество 304 признаков точки POI включает в себя другие признаки, указывающие на местоположение точки 302 POI, в том числе страну, регион, город и район (4 Выделенное слово добавлено по контексту: видимо, оно выпало из текста источника по ошибке.) расположения точки 302 POI.
[147]  Множество 304 признаков точки 302 POI содержит группу или категорию точки 302 POI, которая может быть выражена одноуровневым, двухуровневым или трехуровневым классификатором.
[148] Например, двухуровневый классификатор может иметь следующие заголовки и подзаголовки (элементы классификатора, являющиеся подзаголовками, указаны в скобках):
- коммерция и производство (бизнес-центры, компании, промышленные предприятия и прочие объекты);
- государство и общество (безопасность, государственные органы, аварийные службы, социальные службы);
- культура (библиотеки и архивы, выставочные центры, кинотеатры, концертные залы, культурные центры, музеи, галереи, средства массовой информации, театры);
- здравоохранение (аптеки, больницы, ветеринарные клиники, профилактории, гинекологические клиники, товары для здоровья, медицинские центры, медицинские комиссии, пункты первой помощи, магазины оптики, больницы, роддома, курорты, стоматологические клиники, травмпункты и другие медицинские учреждения);
- наука и образование (научные и образовательные организации);
- отдых (культурные объекты, природные достопримечательности, развлечения, спорт, туризм);
- коммерция (автосалоны, товары для дома, одежда и обувь, продукты питания, специализированные магазины, торговые центры, электроника);
- транспорт (воздушный транспорт, автомобильный транспорт, железнодорожный транспорт, общественный транспорт);
- услуги (автосервисы, бытовые услуги, коммунальные услуги, жилье, рестораны, кафетерии, похоронные услуги, прочие услуги, связь, услуги салонов красоты, финансовые услуги, юридические услуги, страхование);
- населенные пункты (коттеджные поселки, районные центры, садоводства).
[149] Трехуровневые и многоуровневые классификаторы обладают большей степенью детализации благодаря формированию элементов классификации более низкого уровня. Например, таким образом можно детализировать все или некоторые подзаголовки трехуровневого классификатора. Так, подзаголовок «развлечения» может включать в себя классификаторы нижнего уровня: аквапарки, аттракционы, бильярды, боулинг-клубы, зоопарки, игорные заведения, кинотеатры, ночные клубы, парки, сады, зоны отдыха, пейнтбольные и страйкбольные клубы, пляжи, развлекательные центры, цирки и другие увеселительные заведения. Подзаголовок «автосалоны» заголовка «коммерция» может включать в себя такие классификаторы нижнего уровня, как автозапчасти, автодилеры, мотодилеры и прочие автосалоны.
[150] Множество 304 признаков точки 302 POI также может содержать информацию о времени работы и времени пиковой посещаемости, оценках пользователей, средней цене товаров и т.д.
[151] Процедура 410 формирования вектора точки POI создает вектор 417 для каждой точки 302 POI на основе множества 304 ее признаков. На процедуру формирования вектора 417 точки POI не накладывается ограничений и, в общем случае, вектор 417 точки 302 POI является числовым представлением множества 304 признаков точки 302 POI в многомерном пространстве. В некоторых вариантах осуществления настоящей технологии алгоритм 268 MLA может быть обучен формированию вектора 417 точки POI с учетом множества 304 ее признаков.
[152] Картографический сервер 260 отображает множество 415 векторов точки POI. В некоторых вариантах осуществления настоящей технологии картографический сервер 260 способен хранить множество 415 векторов точки POI в картографической базе 265 данных.
Процедура формирования вектора пользователя
[153]
[154] Картографический сервер 260 способен выполнять процедуру 430 формирования вектора пользователя, которая формирует вектор 435 заданного пользователя. В показанном варианте осуществления третий пользователь 218 связан с третьим электронным устройством 216. Вектор 435 пользователя формируется, по меньшей мере частично, с учетом прежних действий 310 третьего пользователя 218.
[155] На выполнение процедуры 430 формирования вектора пользователя картографическим сервером 260 не накладывается ограничений. В общем случае, в результате выполнения процедуры 430 формирования вектора пользователя формируется вектор 435 пользователя с учетом прежних действий 310 третьего пользователя 218, так что вектор 435 пользователя может сопоставляться с векторами точек POI из множества 415 векторов точек POI в многомерном пространстве.
[156] В некоторых вариантах осуществления настоящей технологии картографический сервер 260 может выполнять процедуру формирования вектора 430 для конкретной группы пользователей, например, постоянных пользователей картографического сервиса 262, которые обращаются к картографическому сервису 262 заранее заданное количество раз в неделю. В других вариантах осуществления настоящей технологии картографический сервер 260 может выполнять процедуру формирования вектора 430 для всех пользователей картографического сервиса 262, т.е. для пользователей, установивших картографическое приложение 222 на соответствующие электронные устройства или зарегистрировавшихся в картографическом сервисе 262.
[157] В некоторых вариантах осуществления настоящей технологии процедура 430 формирования вектора пользователя может выполняться в автономном режиме. Процедура 430 формирования вектора пользователя может выполняться периодически (например, еженедельно).
[158] В других вариантах осуществления настоящей технологии картографический сервер 260 получает указание (например, в пакете 242 данных клиента), которое может содержать идентификатор пользователя и может запускать выполнение процедуры 430 формирования вектора пользователя на картографическом сервере 260. В таких вариантах осуществления процедура 430 формирования вектора пользователя определяет множество сервисов (не показаны), связанное с третьим пользователем 218, на основе идентификатора пользователя. С третьим пользователем 218 связан картографический сервис 262 и по меньшей мере одно из следующего: поисковый механизм 252, картографический сервис 262 и один или несколько других сервисов 272.
[159] Процедура 430 формирования вектора пользователя получает из базы 285 данных отслеживания прежние действия 310 третьего пользователя 218 в поисковом механизме 252 и/или в картографическом сервисе 262 и/или в одном или нескольких других сервисах 272, которые выполнялись на третьем электронном устройстве 216 посредством одного или нескольких сервисных приложений 220.
[160] Процедура 430 формирования вектора пользователя анализирует прежние действия 310 пользователя для извлечения множества 420 признаков, указывающего на предпочтения пользователя относительно точек POI. На процедуру извлечения картографическим сервером 260 признаков из прежних действий 310 пользователя не накладывается ограничений.
[161] В других вариантах осуществления настоящей технологии множество 420 признаков пользователя может извлекаться сервером 280 отслеживания заранее и включаться в состав профиля третьего пользователя 218 (не показан), который может храниться, например, в базе 285 данных отслеживания.
5
[162] В простейшем случае процедура 430 формирования вектора пользователя извлекает множество 420 признаков пользователя 218 на основе его прежних действий 310 в отношении по меньшей мере части множества 300 точек POI в картографическом сервисе 262 в течение заранее заданного периода времени. В качестве не имеющего ограничительного характера примера, множество 420 признаков пользователя может содержать информацию о том, посещал ли пользователь 218 (5 В переводе исправлено позиционное обозначение.) данную точку POI, сколько раз он посещал данную точку POI, сколько времени он провел в данной точке POI и т.д. В некоторых вариантах осуществления настоящей технологии, например, где заданная точка POI входит в состав розничной сети магазинов, множество 420 признаков пользователя может содержать информацию о том, посещал ли этот пользователь магазины этой розничной сети в других местах.
[163] К прежним действиям 310 пользователя над точками POI могут относиться «клики» по ним в картографическом сервисе 262, физическое посещение этих точек POI, просмотр веб-сайтов, относящихся к этим точкам POI (например, официальных веб-сайтов) и т.д.
[164] Следует иметь в виду, что процедура 430 формирования вектора пользователя может получать по меньшей мере одно из следующего: текущее местоположение третьего пользователя 218, место проживания третьего пользователя 218 (ранее указанное им или установленное исходя из его прежних местоположений) и место работы третьего пользователя 218, а также может включать во множество 420 признаков пользователя информацию о местоположении.
[165] В некоторых вариантах осуществления настоящей технологии множество 420 признаков пользователя может указывать на прежние действия третьего пользователя 218 в отношении группы или категории точек POI, которая может представлять собой одноуровневый, двухуровневый или трехуровневый классификатор, аналогично классификации точек POI во множестве 304 признаков точек POI. В качестве не имеющего ограничительного характера примера для двухуровневых классификаторов множество 420 признаков может содержать информацию о прежних действиях пользователя в следующих категориях (которые определяются, например, на основе прежних местоположений пользователя):
- коммерция и производство (бизнес-центры, компании, промышленные предприятия и прочие объекты);
- государство и общество (безопасность, государственные органы, аварийные службы, социальные службы);
- культура (библиотеки и архивы, выставочные центры, кинотеатры, концертные залы, культурные центры, музеи, галереи, средства массовой информации, театры);
- здравоохранение (аптеки, больницы, ветеринарные клиники, профилактории, гинекологические клиники, товары для здоровья, медицинские центры, медицинские комиссии, пункты первой помощи, магазины оптики, больницы, роддома, курорты, стоматологические клиники, травмопункты и другие медицинские учреждения);
- наука и образование (научные и образовательные организации);
- отдых (культурные объекты, природные достопримечательности, развлечения, спорт, туризм);
- коммерция (автосалоны, товары для дома, одежда и обувь, продукты питания, специализированные магазины, торговые центры, электроника);
- транспорт (воздушный транспорт, автомобильный транспорт, железнодорожный транспорт, общественный транспорт);
- услуги (автосервисы, бытовые услуги, коммунальные услуги, жилье, рестораны, кафетерии, похоронные услуги, прочие услуги, связь, услуги салонов красоты, финансовые услуги, юридические услуги, страхование);
- населенные пункты (коттеджные поселки, районные центры, садоводства).
[166] В некоторых вариантах осуществления настоящей технологии, где информация о действиях 310 пользователя в одном или нескольких других сервисах 272 содержится в базе 285 данных отслеживания, множество 304 признаков точек POI может быть дополнено информацией о прежних действиях 310 пользователя в одном или нескольких других сервисах 272.
[167] Дополнительно можно использовать историю поиска, связанного с точками POI или их категориями и выполненного третьим пользователем 218 в поисковом механизме 252, например, можно учитывать количество операций поиска третьим пользователем 218 в поисковом механизме 252 научной информации, медицинской информации, сведений о товарах или компаниях и т.д.
[168] Прежние покупки пользователя в приложении магазина или в приложении доставки еды могут указывать на его предпочтения, например, в отношении конкретных производителей товаров, ресторанов и т.п.
[169] В некоторых вариантах осуществления настоящей технологии информация о прежних действиях 310 пользователя в сервисах может сопоставляться с категориями точек POI, при этом может учитываться, например, что третий пользователь 218 обычно слушает классическую музыку в потоковом аудиосервисе и смотрит документальные фильмы в потоковом видеосервисе, что может указывать на его возможный интерес к культурным центрам.
[170] Картографический сервер 260 формирует вектор 435 пользователя для третьего пользователя 218 на основе множества 420 признаков пользователя.
[171] Картографический сервер 260 создает вектор 435 для третьего пользователя 218. В некоторых вариантах осуществления настоящей технологии картографический сервер 260 хранит вектор 435 пользователя в картографической базе 265 данных.
Процедура определения расстояния
[172]
[173] Картографический сервер 260 способен выполнять процедуру 440 определения расстояния. В некоторых вариантах осуществления настоящей технологии картографический сервер 260 обращается к алгоритму 268 MLA для выполнения процедуры 440 определения расстояния.
[174] В других вариантах осуществления настоящей технологии картографический сервер 260 выполняет процедуру 440 определения расстояния в автономном режиме и сохраняет результат, например, в картографической базе 265 данных.
[175] Картографический сервер 260 получает вектор 435 пользователя, связанного с запросом, например, полученным в пакете 242 данных клиента.
[176] Картографический сервер 260 получает множество 442 векторов точек POI из множества 415 векторов точек POI, хранящегося в картографической базе 265 данных. Множество 442 векторов точек POI может быть получено с учетом текущего местоположения третьего пользователя 218, которое может быть получено в пакете 242 данных клиента.
[177] Целью процедуры 440 определения расстояния является вычисление расстояний 452 между вектором 435 третьего пользователя 218 и каждым вектором 417 точки POI из множества 442 векторов точек POI. Расстояние 457 между вектором 435 пользователя и вектором 417 точки POI может указывать на степень сходства между множеством 420 признаков третьего пользователя 218 и множеством 304 признаков точки 302 POI. В свою очередь, степень сходства может указывать на возможный интерес третьего пользователя 218 к точке 302 POI.
[178] Картографический сервер 260 может выполнять процедуру 440 определения расстояния по указанию, например, в форме запроса карты в пакете 242 данных клиента.
[179] На процедуру определения алгоритмом 268 MLA расстояния 457 между вектором 435 пользователя и каждым вектором 417 точки POI из множества 415 векторов точек POI не накладывается ограничений. В общем случае алгоритм 268 MLA может быть обучен формированию векторов точек POI и вектора пользователя так, чтобы проекция вектора точки POI, соответствующего интересам пользователя, находилась в многомерном пространстве вблизи них.
[180] В качестве не имеющего ограничительного характера примера расстояние 457 между вектором 435 пользователя и вектором 417 точки POI можно определять путем вычисления косинусного сходства, скалярного произведения или любым другим способом измерения сходства между векторами.
6
[181] Следует иметь в виду, что в некоторых вариантах осуществления настоящей технологии картографический сервер 260 может назначать разные весовые коэффициенты некоторым признакам вектора 417 точки POI для учета этих признаков в большей степени при вычислении соответствующего расстояния 457 между вектором 435 пользователя и вектором 417 точки POI. В качестве не имеющего ограничительного характера примера можно увеличивать (по сравнению с другими признаками) вес расстояния от точки 302 POI, входящей в состав вектора 417, до текущего местоположения третьего пользователя 218 или до места его работы или до его дома (входящего в состав вектора 435 (6 В переводе исправлено позиционное обозначение.) пользователя). Следует отметить, что в некоторых случаях третий пользователь 218 может быть заинтересован в карте удаленного места (расположенного за пределами заранее заданного расстояния от текущего местоположения третьего пользователя 218). В таких случаях можно уменьшать вес (например, до нуля) расстояния между текущим местоположением третьего пользователя 218 и местоположением соответствующей точки 302 POI.
[182] В общем случае, чем меньше расстояние 457 между вектором 435 пользователя и вектором 417 точки POI, тем больше сходство между множеством 420 признаков третьего пользователя 218 и множеством 304 признаков точки 302 POI. В свою очередь, это сходство указывает на то, что третий пользователь 218 может искать точку 302 POI, связанную с вектором 417 точки POI, и/или может быть заинтересован в ней.
[183] В продолжение не имеющего ограничительного характера примера с третьим пользователем 218, который посещал музеи, читал статьи о классической музыке и смотрел документальные фильмы, в векторе 435 пользователя признаки, относящиеся к культурным центрам, музыкальным театрам и кинотеатрам, могут иметь большее значение, чем другие признаки. В этом случае расстояние от вектора точки POI, соответствующей музею классической музыки (не показан), до третьего пользователя 218 может быть небольшим.
[184] Картографический сервер 260 может вычислять расстояния 452 между вектором 435 пользователя и каждым вектором 417 точки POI из множества 442.
Процедура ранжирования точек POI
[185]
[186] Далее картографический сервер 260 способен выполнять процедуру 460 ранжирования точек POI для ранжирования множества точек POI (не показано) по расстояниям 452 от каждого вектора точки POI из множества 442 векторов точек POI до вектора 435 пользователя с целью формирования ранжированного множества 470 точек POI.
[187] Для формирования ранжированного множества 470 точек POI картографический сервер 260 может, например, ранжировать множество точек POI (не показано) в порядке возрастания расстояний 452 между вектором 435 пользователя и множеством 442 векторов точек POI, т.е. от меньшего расстояния к большему. В некоторых вариантах осуществления настоящей технологии картографический сервер 260 может ранжировать точки POI (не показаны), например, по категориям или на основе выбора, сделанного пользователем в картографическом приложении 222.
[188] В общем случае процедура ранжирования 460 может выполняться для всех точек POI, расположенных в пределах заранее заданного расстояния от конкретного места (например, от текущего местоположения третьего пользователя 218 или от центра запрошенной им карты) для формирования ранжированного множества 470 точек POI. Таким образом, при выборе третьим пользователем 218 определенного масштаба может отображаться лишь подмножество ранжированного множества 470 точек POI, включающее в себя заранее заданное количество точек POI для этого масштаба. В других вариантах осуществления настоящей технологии процедура 460 ранжирования точек POI может выполняться для каждого масштаба (который, например, может быть указан в пакете 242 данных клиента).
7
[189] В соответствии с не имеющими ограничительного характера вариантами осуществления настоящей технологии на фиг. 4 схематически показаны карты разного масштаба с соответствующими подмножествами из множества 470 ранжированных точек (7 Здесь и в следующих нескольких абзацах термин «множество ранжированных точек» использован вместо термина «ранжированное множество точек». Переведено без исправления.) POI для третьего пользователя 218.
Карты
[190]
[191] Картографический сервер 260 может отображать определенное количество точек POI (т.е. подмножество из множества 470 ранжированных точек POI) для данного масштаба в картографическом приложении 222. В общем случае каждое подмножество ранжированных точек POI из множества 470 ранжированных точек POI можно представить так, чтобы точки POI из соответствующего подмножества ранжированных точек POI не перекрывались при данном масштабе. В некоторых вариантах осуществления настоящей технологии прочая информация, связанная с точкой 302 POI (метки, описания или иная информация), может не отображаться или по-разному отображаться в зависимости от масштаба. Дополнительно или в качестве альтернативы, размеры точек POI из соответствующего подмножества ранжированных точек POI, отображаемых на карте, могут соответствовать их рангу (например, точка POI с большим рангом может иметь больший размер графического представления, чем точка POI с меньшим рангом).
[192] В некоторых вариантах осуществления настоящей технологии картографический сервер 260 определяет количество точек POI, отображаемых для каждого масштаба, с учетом данных об электронном устройстве конкретного пользователя (например, о третьем электронном устройстве 216 третьего пользователя 218), при этом данные пользователя передаются в пакете 242 данных клиента. Данные об устройстве могут включать в себя сведения о размере и разрешении его экрана, модели процессора, графического модуля и т.п.
[193] В некоторых вариантах осуществления настоящей технологии карта может иметь 13 значений масштаба, каждое из которых связано с соответствующим количеством листов и соответствующим количеством точек POI в подмножестве точек POI. В некоторых вариантах осуществления настоящей технологии точки POI с высоким рангом из множества 470 ранжированных точек POI могут отображаться иначе (например, с большими подробностями или с большей информацией), чем точки POI низкого ранга.
[194] В качестве первого не имеющего ограничительного характера примера, первая карта 500 Тверской улицы в Москве состоит из 4 листов и соответствует второму значению масштаба в картографическом приложении 222 на третьем электронном устройстве 216. Первая карта 500 может иметь первое подмножество 510 ранжированных точек POI, содержащее 18 точек POI с максимальным рангом из множества 470 ранжированных точек POI, соответствующих второму значению масштаба.
[195] В качестве второго не имеющего ограничительного характера примера, вторая карта 530 Тверской улицы в Москве состоит из 16 листов и соответствует третьему значению масштаба в картографическом приложении 222 на третьем электронном устройстве 216. Вторая карта 530 может иметь второе подмножество 540 ранжированных точек POI, содержащее 6 точек POI с максимальным рангом из множества 470 ранжированных точек POI, соответствующих третьему значению масштаба.
[196] В качестве третьего, не имеющего ограничительного примера, третья карта 570 Тверской улицы в Москве состоит из 64 листов и соответствует четвертому значению масштаба в картографическом приложении 222 на третьем электронном устройстве 216. Третья карта 570 может иметь третье подмножество 580 ранжированных точек POI, содержащее 3 точки POI с максимальным рангом из множества 470 ранжированных точек POI, соответствующие четвертому значению масштаба.
8
[197] Следует отметить, что ранжирование точек POI может выполняться в несколько этапов(8 Неполный абзац в тексте источника. Восстановлено по контексту.).
Описание способа
[198]
9
[199] На фиг. 5 показана блок-схема способа 600 отображения точек POI на карте, отображаемой на электронном устройстве, который выполняется в соответствии с не имеющими ограничивающего характера вариантами исполнения настоящей технологии. (9 Выделенное слово добавлено по контексту: видимо, оно выпало из текста источника по ошибке.)
[200] Способ 600 выполняется картографическим сервером 260. Картографический сервер 260 может хранить команды в машиночитаемом формате (не показаны), например, на твердотельном диске 120 или в памяти 130, а процессор 110 при исполнении этих команд способен выполнять способ 600.
[201] Способ 600 начинается с шага 602.
[202] Шаг 602: получение запроса на отображение заданного места на карте в картографическом приложении.
[203] На шаге 602 процессор 110 картографического сервера 260 может принимать запрос в пакете 242 данных клиента на отображение заданного местоположения на карте в картографическом приложении 222 на третьем электронном устройстве 216. В некоторых вариантах осуществления настоящей технологии этот запрос может включать в себя текущее местоположение и/или идентификатор третьего пользователя 218, связанного с третьим электронным устройством 216.
[204] Далее способ 600 переходит к шагу 604.
[205] Шаг 604: получение множества точек POI на основе карты и заданного места.
[206] На шаге 604 процессор 110 картографического сервера 260 может получать из картографической базы 265 данных множество точек POI (не показано), соответствующее карте и заданному местоположению.
[207] В некоторых вариантах осуществления настоящей технологии для получения множества точек POI (не показано) процессор 110 картографического сервера 260 может получать множество 442 векторов точек POI, связанное с множеством точек POI. Множество 442 векторов точек POI может быть заранее сформировано согласно способу 700.
[208] Далее способ 600 переходит к шагу 606.
[209] Шаг 606: определение на основе запроса множества веб-сервисов, связанного с пользователем и содержащего по меньшей мере картографический сервис.
[210] На шаге 606 процессор 110 картографического сервера 260 может определять множество веб-сервисов, связанное с третьим пользователем 218 и содержащее по меньшей мере картографический сервис 262, на основе запроса в пакете 242 данных клиента. Картографический сервис 262 размещается на картографическом сервере 260.
[211] В некоторых вариантах осуществления настоящей технологии для определения множества веб-сервисов, связанного с пользователем, на основе запроса формируется профиль пользователя, связанный с третьим пользователем 218. Профиль пользователя может храниться в базе 285 данных отслеживания.
[212] В некоторых вариантах осуществления настоящей технологии множество веб-сервисов включает в себя по меньшей мере одно из следующего: поисковый механизм, сервис электронной почты, сервис заказа такси, сервис совместных поездок, навигационный сервис и сервис браузера.
[213] Далее способ 600 переходит к шагу 608.
[214] Шаг 608: получение данных о прежних действиях пользователя в соответствующем веб-сервисе, по меньшей мере частично указывающих на предпочтения пользователя относительно множества точек POI, для по меньшей мере некоторых сервисов из множества веб-сервисов.
[215] На шаге 608 процессор 110 картографического сервера 260 может получать из базы 285 данных отслеживания прежние действия 310 третьего пользователя 218 в по меньшей мере одном из следующего: поисковый механизм 252, картографический сервис 262, один или несколько других сервисов 272, которые выполнялись на третьем электронном устройстве 216 посредством одного или нескольких сервисных приложений 220. Прежние действия 310 третьего пользователя 218 по меньшей мере частично указывают на его предпочтения относительно множества точек POI.
[216] В некоторых вариантах осуществления настоящей технологии процессор 110 картографического сервера 260 может выполнять способ 800 перед переходом к шагу 610.
[217] Далее способ 600 переходит к шагу 610.
[218] Шаг 610: определение для каждого масштаба из множества масштабов в картографическом приложении количества точек POI в подмножестве точек POI для отображения на карте.
[219] На шаге 610 процессор 110 картографического сервера 260 может определять количество точек POI, отображаемых на карте каждого масштаба из множества масштабов в картографическом приложении.
[220] В некоторых вариантах осуществления настоящей технологии подмножество ранжированного множества точек POI соответствует количеству точек POI для текущего масштаба, указанного в пакете 242 данных клиента.
[221] В некоторых вариантах осуществления настоящей технологии подмножество ранжированного множества точек POI соответствует количеству точек POI для запрошенного масштаба, указанного в пакете 242 данных клиента.
[222] Далее способ 600 переходит к шагу 612.
[223] Шаг 612: ранжирование множества точек POI на основе данных о прежних действиях пользователя для получения ранжированного множества точек POI.
[224] На шаге 612 процессор 110 картографического сервера 260 обращается к алгоритму 268 MLA для выполнения процедуры 440 с целью определения расстояний 452 между вектором 435 третьего пользователя 218 и каждым вектором 417 точек POI из множества 442 векторов точек POI. Расстояние 457 между вектором 435 пользователя и вектором 417 точки POI может указывать на степень сходства между множеством 420 признаков третьего пользователя 218 и множеством 304 признаков точки 302 POI. В свою очередь, степень сходства может указывать на возможный интерес третьего пользователя 218 к точке 302 POI.
[225] Далее картографический сервер 260 может выполнять процедуру 460 ранжирования точек POI для ранжирования множества точек POI (не показано) согласно расстояниям 452 от каждого вектора точки POI из множества 442 векторов точек POI до вектора 435 пользователя с целью формирования ранжированного множества 470 точек POI.
[226] Далее способ 600 переходит к шагу 614.
[227] Шаг 614: передача карты, содержащей по меньшей мере подмножество из ранжированного множества точек POI.
[228] На шаге 614 процессор 110 картографического сервера 260 может передавать в пакете данных сервера листы карты, данные интерфейса API и ресурсные данные для отображения карты третьему пользователю 218 на дисплее третьего электронного устройства 216. Листы карты содержат по меньшей мере подмножество из ранжированного множества 470 точек POI.
[229] На этом способ 600 завершается.
[230] На фиг. 6 показана блок-схема способа 700 формирования множества 415 векторов точек POI для множества 300 точек POI, выполняемого в соответствии с не имеющими ограничительного характера вариантами осуществления настоящей технологии.
[231] Способ 700 выполняется картографическим сервером 260. Картографический сервер 260 может хранить команды в машиночитаемом формате (не показаны), например, на твердотельном диске 120 или в памяти 130, а процессор 110 при исполнении этих команд способен выполнять способ 700.
[232] Способ 700 начинается с шага 702.
[233] Шаг 702: получение множества точек POI, каждая из которых имеет множество признаков точки POI.
[234] На шаге 702 процессор 110 картографического сервера 260 может получать из картографической базы 265 данных множество 300 точек POI, при этом каждая точка 302 POI из множества 300 точек POI имеет множество 304 признаков точки POI.
[235] Далее способ 700 переходит к шагу 704.
[236] Шаг 704: формирование вектора точки POI для каждой точки POI из множества точек POI на основе множества признаков точки POI.
[237] На шаге 704 процессор 110 картографического сервера 260 может обращаться к алгоритму 268 MLA и формировать вектор 417 для каждой точки 302 POI из множества 300 точек POI на основе множества 304 признаков точки POI.
[238] Множество 304 признаков точки POI соответствующей точки 302 POI включает в себя местоположение точки 302 POI, которое может быть задано, например, координатами широты и долготы. В некоторых вариантах осуществления настоящей технологии множество 304 признаков точки POI включает в себя другие признаки, указывающие на местоположение точки 302 POI, в том числе страну, регион, город и район расположения точки 302 POI.
[239]  Множество 304 признаков точки 302 POI включает в себя группу или категорию точки 302 POI, которая может быть выражена одноуровневым, двухуровневым или трехуровневым классификатором.
[240] Процессор 110 картографического сервера 260 формирует множество 415 векторов точек POI.
[241] Далее способ 700 переходит к шагу 706.
[242] Шаг 706: сохранение множества векторов точек POI.
[243] На шаге 706 процессор 110 картографического сервера 260 сохраняет множество 415 векторов точек POI в картографической базе 265 данных.
[244] На фиг. 7 показана блок-схема способа 800 формирования вектора пользователя в соответствии с не имеющими ограничительного характера вариантами осуществления настоящей технологии.
10
[245] Способ 800 (10 В переводе исправлено позиционное обозначение.) выполняется картографическим сервером 260. Картографический сервер 260 может хранить команды в машиночитаемом формате (не показаны), например, на твердотельном диске 120 или в памяти 130, а процессор 110 при исполнения этих команд может выполнять способ 800.
[246] Способ 800 начинается с шага 802.
[247] Шаг 802: получение данных о прежних действиях пользователя.
[248] На шаге 802 процессор 110 картографического сервера 260 может получать из базы 285 данных отслеживания информацию о прежних действиях 310 третьего пользователя 218 в по меньшей мере в одном из следующего: поисковый механизм 252, картографический сервис 262, один или несколько других сервисов 272, выполняемых на третьем электронном устройстве 216 посредством одного или нескольких сервисных приложений 220. Процессор 110 картографического сервера 260 может анализировать прежние действия 310 пользователя для извлечения множества 420 признаков, определяющего предпочтения пользователя относительно точек POI.
[249] Далее способ 800 переходит к шагу 804.
[250] Шаг 804: определение множества признаков пользователя на основе данных о его прежних действиях.
[251] На шаге 804 процессор 110 картографического сервера 260 анализирует прежние действия 310 пользователя для определения множества 420 признаков, указывающих на его предпочтения относительно точек POI.
[252] В некоторых вариантах осуществления настоящей технологии множество 420 признаков пользователя формируется на основе прежних действий 310 третьего пользователя 218 в отношении по меньшей мере части точек из множества 300 точек POI в картографическом сервисе 262 в течение заранее заданного периода. В качестве не имеющего ограничительного характера примера множество 420 признаков пользователя может указывать на то, посещал ли пользователь 318 данную точку POI, сколько раз он посещал данную точку POI, сколько времени он провел в данной точке POI и т.д. В некоторых вариантах осуществления настоящей технологии, например, где заданная точка POI входит в состав розничной сети магазинов, множество 420 признаков пользователя может содержать информацию о том, посещал ли этот пользователь магазины этой розничной сети в других местах.
[253] В некоторых вариантах осуществления настоящей технологии множество 420 признаков пользователя может указывать на прежние действия третьего пользователя 218 в отношении группы или категории точек POI, которая может определяться одноуровневым, двухуровневым или трехуровневым классификатором, аналогично классификации точек POI.
[254] Далее способ 800 переходит к шагу 806.
[255] Шаг 806: формирование вектора пользователя на основе признаков пользователя.
[256] На шаге 806 процессор 110 картографического сервера 260 формирует вектор 435 пользователя для третьего пользователя 218 на основе множества 420 его признаков.
[257] На этом способ 800 завершается.
[258] Специалистам в данной области техники должно быть ясно, что по меньшей мере некоторые варианты осуществления настоящей технологии нацелены на расширение арсенала решений конкретной технической задачи, а именно, улучшения представления точек POI конкретному пользователю в картографическом сервисе, что позволяет экономить пропускную способность канала связи и вычислительные ресурсы клиентского устройства.
[259] Следует понимать, что в каждом конкретном варианте осуществления настоящей технологии не обязательно достигаются все упомянутые здесь технические эффекты. В частности, некоторые варианты осуществления настоящей технологии могут быть реализованы без получения пользователем некоторых из этих технических эффектов, а другие варианты осуществления могут быть реализованы с получением пользователем других технических эффектов или вовсе без них.
[260] Специалисту в данной области техники должно быть ясно, что если в описании идет речь о «получении данных» от пользователя, то электронное устройство, выполняющее это действие, может принимать от пользователя сигнал в электронной (или иной) форме. Специалисту в данной области техники также должно быть ясно, что для отображения данных в графическом пользовательском интерфейсе (например, на экране электронного устройства и т.п.) может потребоваться передавать этому интерфейсу сигнал, содержащий данные для обработки и по меньшей мере часть этих данных может отображаться пользователю с использованием графического пользовательского интерфейса.
[261] Некоторые шаги и действия по обмену сигналами, хорошо известные специалистам, опущены в некоторых местах описания для простоты. Такие сигналы могут приниматься и передаваться с использованием оптических средств (например, оптоволоконного соединения), электронных средств (например, проводного или беспроводного соединения) и механических средств (например, на основе давления, температуры и любого другого подходящего физического параметра).
[262] Для специалистов в данной области техники могут быть очевидными изменения и улучшения описанных выше вариантов осуществления настоящей технологии. Приведенное выше описание является примером, но не ограничением. Объем настоящей технологии ограничен лишь приложенной формулой изобретения.