WO2015187344A1 - Deriving user characteristics from users' log files - Google Patents

Deriving user characteristics from users' log files Download PDF

Info

Publication number
WO2015187344A1
WO2015187344A1 PCT/US2015/031168 US2015031168W WO2015187344A1 WO 2015187344 A1 WO2015187344 A1 WO 2015187344A1 US 2015031168 W US2015031168 W US 2015031168W WO 2015187344 A1 WO2015187344 A1 WO 2015187344A1
Authority
WO
WIPO (PCT)
Prior art keywords
user
log data
cluster centroids
grammar
grammars
Prior art date
Application number
PCT/US2015/031168
Other languages
English (en)
French (fr)
Inventor
Isaac David Guedalia
Sarah GLICKFIELD
Original Assignee
Qualcomm Incorporated
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Incorporated filed Critical Qualcomm Incorporated
Publication of WO2015187344A1 publication Critical patent/WO2015187344A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/088Non-supervised learning, e.g. competitive learning
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/164File meta data generation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/023Services making use of location information using mutual or relative location information between multiple location based services [LBS] targets or of distance thresholds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/029Location-based management or tracking services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/20Services signaling; Auxiliary data signalling, i.e. transmitting data via a non-traffic channel
    • H04W4/21Services signaling; Auxiliary data signalling, i.e. transmitting data via a non-traffic channel for social networking applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Definitions

  • aspects of the disclosure are directed to deriving user characteristics from users' log files.
  • User devices generally track information related to a user's use of the device, such as the location of the device, battery usage, WiFi access, and/or interactions with other devices (e.g., emails, calls, short message service (SMS) messages, multimedia messaging service (MMS) messages, web browsing history, proximity detections, etc.), and store this information in user log files.
  • Other devices e.g., emails, calls, short message service (SMS) messages, multimedia messaging service (MMS) messages, web browsing history, proximity detections, etc.
  • SMS short message service
  • MMS multimedia messaging service
  • User logs reporting on location data provides an analysis opportunity that can potentially lend insight into a user's characteristics. For example, is the user more or less social? Does the user spend more time at home or away? How does the user spend his or her leisure time? Is the user athletic, or does he or she enjoy more passive means of recreation? What are the user's hobbies?
  • a method for generating a grammar describing activities of a user includes receiving log data for the user, the log data representing activities of the user, clustering the log data around a plurality of cluster centroids, wherein each of the plurality of cluster centroids represents an activity of the user, assigning one or more semantic labels to each of the plurality of cluster centroids based on determining that a threshold number of log data points have been assigned to each of the plurality of cluster centroids, determining a sequence in which the log data points were clustered around the plurality of cluster centroids, generating one or more grammars representing a sequence of possible activities of the user based on the sequence in which the log data points were clustered around the plurality of cluster centroids and the one or more semantic labels of each of the plurality of cluster centroids, and filtering the assigned one or more semantic labels for each of the plurality of cluster centroids.
  • An apparatus for generating a grammar describing activities of a user includes a processor configured to receive log data for the user, the log data representing activities of the user, cluster the log data around a plurality of cluster centroids, each of the plurality of cluster centroids representing an activity of the user, assign one or more semantic labels to each of the plurality of cluster centroids based on a determination that a threshold number of log data points have been assigned to each of the plurality of cluster centroids, determine a sequence in which the log data points were clustered around the plurality of cluster centroids, generate one or more grammars representing a sequence of possible activities of the user based on the sequence in which the log data points were clustered around the plurality of cluster centroids and the one or more semantic labels of each of the plurality of cluster centroids, and filter the one or more semantic labels for each of the plurality of cluster centroids to generate filtered semantic labels.
  • An apparatus for generating a grammar describing activities of a user includes means for receiving log data for the user, the log data representing activities of the user, means for clustering the log data around a plurality of cluster centroids, wherein each of the plurality of cluster centroids represents an activity of the user, means for assigning one or more semantic labels to each of the plurality of cluster centroids based on determining that a threshold number of log data points have been assigned to each of the plurality of cluster centroids, means for determining a sequence in which the log data points were clustered around the plurality of cluster centroids, means for generating one or more grammars representing a sequence of possible activities of the user based on the sequence in which the log data points were clustered around the plurality of cluster centroids and the one or more semantic labels of each of the plurality of cluster centroids, and means for filtering the one or more semantic labels for each of the plurality of cluster centroids to generate filtered semantic labels.
  • a non-transitory computer-readable medium for generating a grammar describing activities of a user includes at least one instruction for receiving log data for the user, the log data representing activities of the user, at least one instruction for clustering the log data around a plurality of cluster centroids, wherein each of the plurality of cluster centroids represents an activity of the user, at least one instruction for assigning one or more semantic labels to each of the plurality of cluster centroids based on determining that a threshold number of log data points have been assigned to each of the plurality of cluster centroids, at least one instruction for determining a sequence in which the log data points were clustered around the plurality of cluster centroids, at least one instruction for generating one or more grammars representing a sequence of possible activities of the user based on the sequence in which the log data points were clustered around the plurality of cluster centroids and the one or more semantic labels of each of the plurality of cluster centroids, and at least one instruction for filtering the one or more semantic labels for each of the plurality of cluster centroids to generate
  • FIG. 1 illustrates a high-level system architecture of a wireless communications system in accordance with an aspect of the disclosure.
  • FIG. 2 is a block diagram illustrating various components of an exemplary user equipment (UE).
  • UE user equipment
  • FIG. 3 illustrates a communication device that includes logic configured to perform functionality in accordance with an aspect of the disclosure.
  • FIG. 4 illustrates a server in accordance with an embodiment of the disclosure.
  • FIGS. 5A-F illustrate an exemplary process for determining relationships between users according to an aspect of the disclosure.
  • FIG. 6 illustrates an exemplary flow for building a grammar and assigning semantic labels.
  • FIG. 7 illustrates an exemplary flow for generating a grammar describing activities of a user according to at least one aspect of the disclosure.
  • FIG. 8 is a simplified block diagram of several sample aspects of an apparatus configured to support communication as taught herein.
  • the disclosure is related to generating a grammar describing activities of a user.
  • An aspect receives log data for the user, the log data representing activities of the user, clusters the log data around a plurality of cluster centroids, wherein each of the plurality of cluster centroids represents an activity of the user, assigns one or more semantic labels to each of the plurality of cluster centroids based on determining that a threshold number of log data points have been assigned to each of the plurality of cluster centroids, determines a sequence in which the log data points were clustered around the plurality of cluster centroids, generates one or more grammars representing a sequence of possible activities of the user based on the sequence in which the log data points were clustered around the plurality of cluster centroids and the one or more semantic labels of each of the plurality of cluster centroids, and filters the assigned one or more semantic labels for each of the plurality of cluster centroids.
  • a client device referred to herein as a user equipment (UE), may be mobile or stationary, and may communicate with a radio access network (RAN).
  • UE may be referred to interchangeably as an "access terminal” or “AT,” a “wireless device,” a “subscriber device,” a “subscriber terminal,” a “subscriber station,” a “user terminal” or UT, a “mobile terminal,” a “mobile station” and variations thereof.
  • AT access terminal
  • AT wireless device
  • subscriber device a "subscriber terminal”
  • subscriber station a “user terminal” or UT
  • UEs can communicate with a core network via the RAN, and through the core network the UEs can be connected with external networks such as the Internet.
  • UEs can be embodied by any of a number of types of devices including but not limited to PC cards, compact flash devices, external or internal modems, wireless or wireline phones, and so on.
  • a communication link through which UEs can send signals to the RAN is called an uplink channel (e.g., a reverse traffic channel, a reverse control channel, an access channel, etc.).
  • a communication link through which the RAN can send signals to UEs is called a downlink or forward link channel (e.g., a paging channel, a control channel, a broadcast channel, a forward traffic channel, etc.).
  • a downlink or forward link channel e.g., a paging channel, a control channel, a broadcast channel, a forward traffic channel, etc.
  • traffic channel can refer to either an uplink / reverse or downlink / forward traffic channel.
  • FIG. 1 illustrates a high-level system architecture of a wireless communications system 100 in accordance with an aspect of the disclosure.
  • the wireless communications system 100 contains UEs 1...N.
  • the UEs 1...N can include cellular telephones, personal digital assistant (PDAs), pagers, a laptop computer, a desktop computer, and so on.
  • PDAs personal digital assistant
  • UEs 1...2 are illustrated as cellular calling phones
  • UEs 3...5 are illustrated as cellular touchscreen phones or smart phones
  • UE N is illustrated as a desktop computer or personal computer (PC).
  • PC personal computer
  • UEs 1...N are configured to communicate with an access network (e.g., the RAN 120, an access point 125, etc.) over a physical communications interface or layer, shown in FIG. 1 as air interfaces 104, 106, 108 and/or a direct wired connection.
  • an access network e.g., the RAN 120, an access point 125, etc.
  • a physical communications interface or layer shown in FIG. 1 as air interfaces 104, 106, 108 and/or a direct wired connection.
  • the air interfaces 104 and 106 can comply with a given cellular communications protocol (e.g., Code Division Multiple Access (CDMA), Evolution- Data Optimized (EV-DO), Evolved High Rate Packet Data (eHRPD), Global System of Mobile Communication (GSM), Enhanced Data rates for GSM Evolution (EDGE), Wideband CDMA (W-CDMA), Long-Term Evolution (LTE), etc.), while the air interface 108 can comply with a wireless IP protocol (e.g., IEEE 802.1 1).
  • the RAN 120 includes a plurality of access points that serve UEs over air interfaces, such as the air interfaces 104 and 106.
  • the access points in the RAN 120 can be referred to as access nodes or ANs, access points or APs, base stations or BSs, Node Bs, eNode Bs, and so on. These access points can be terrestrial access points (or ground stations), or satellite access points.
  • the RAN 120 is configured to connect to a core network 140 that can perform a variety of functions, including bridging circuit switched (CS) calls between UEs served by the RAN 120 and other UEs served by the RAN 120 or a different RAN altogether, and can also mediate an exchange of packet-switched (PS) data with external networks such as Internet 175.
  • the Internet 175 includes a number of routing agents and processing agents (not shown in FIG. 1 for the sake of convenience). In FIG.
  • UE N is shown as connecting to the Internet 175 directly (i.e., separate from the core network 140, such as over an Ethernet connection of WiFi or 802.1 1-based network).
  • the Internet 175 can thereby function to bridge packet-switched data communications between UE N and UEs 1...N via the core network 140.
  • the access point 125 is also shown in FIG. l.
  • the access point 125 may be connected to the Internet 175 independent of the core network 140 (e.g., via an optical communication system such as FiOS, a cable modem, etc.).
  • the air interface 108 may serve UE 4 or UE 5 over a local wireless connection, such as IEEE 802.11 in an example.
  • UE N is shown as a desktop computer with a wired connection to the Internet 175, such as a direct connection to a modem or router, which can correspond to the access point 125 itself in an example (e.g., for a WiFi router with both wired and wireless connectivity).
  • a modem or router which can correspond to the access point 125 itself in an example (e.g., for a WiFi router with both wired and wireless connectivity).
  • an application server 170 is shown as connected to the Internet 175, the core network 140, or both.
  • the application server 170 can be implemented as a plurality of structurally separate servers, or alternately may correspond to a single server.
  • the application server 170 is configured to support one or more communication services (e.g., Voice- over-Internet Protocol (VoIP) sessions, Push-to-Talk (PTT) sessions, group communication sessions, social networking services, etc.) for UEs that can connect to the application server 170 via the core network 140 and/or the Internet 175.
  • VoIP Voice- over-Internet Protocol
  • PTT Push-to-Talk
  • FIG. 2 is a block diagram illustrating various components of an exemplary UE 200.
  • the various features and functions illustrated in the box diagram of FIG. 2 are connected together using a common bus which is meant to represent that these various features and functions are operatively coupled together.
  • a common bus which is meant to represent that these various features and functions are operatively coupled together.
  • Those skilled in the art will recognize that other connections, mechanisms, features, functions, or the like, may be provided and adapted as necessary to operatively couple and configure an actual portable wireless device.
  • one or more of the features or functions illustrated in the example of FIG. 2 may be further subdivided or two or more of the features or functions illustrated in FIG. 2 may be combined.
  • the UE 200 may include one or more wide area network (WAN) transceiver(s) 204 that may be connected to one or more antennas 202.
  • the WAN transceiver 204 comprises suitable devices, hardware, and/or software for communicating with and/or detecting signals to/from WAN-WAPs, such as access point 125, and/or directly with other wireless devices within a network.
  • the WAN transceiver 204 may comprise a CDMA communication system suitable for communicating with a CDMA network of wireless base stations; however in other aspects, the wireless communication system may comprise another type of cellular telephony network, such as, for example, TDMA or GSM.
  • the UE 200 may also include one or more local area network (LAN) transceivers 206 that may be connected to one or more antennas 202.
  • the LAN transceiver 206 comprises suitable devices, hardware, and/or software for communicating with and/or detecting signals to/from LAN-WAPs, such as access point 125, and/or directly with other wireless devices within a network.
  • the LAN transceiver 206 may comprise a Wi-Fi (802.11 x) communication system suitable for communicating with one or more wireless access points; however in other aspects, the LAN transceiver 206 comprise another type of local area network, personal area network, (e.g., Bluetooth). Additionally, any other type of wireless networking technologies may be used, for example, Ultra Wide Band, ZigBee, wireless USB etc.
  • wireless access point may be used to refer to LAN-WAPs and/or WAN-WAPs.
  • WAP wireless access point
  • embodiments may include a UE 200 that can exploit signals from a plurality of LAN- WAPs, a plurality of WAN-WAPs, or any combination of the two.
  • the specific type of WAP being utilized by the UE 200 may depend upon the environment of operation.
  • the UE 200 may dynamically select between the various types of WAPs in order to arrive at an accurate position solution.
  • various network elements may operate in a peer-to-peer manner, whereby, for example, the UE 200 may be replaced with the WAP, or vice versa.
  • Other peer-to-peer embodiments may include another UE (not shown) acting in place of one or more WAP.
  • a satellite positioning system (SPS) receiver 208 may also be included in the UE 200.
  • the SPS receiver 208 may be connected to the one or more antennas 202 for receiving satellite signals.
  • the SPS receiver 208 may comprise any suitable hardware and/or software for receiving and processing SPS signals.
  • the SPS receiver 208 requests information and operations as appropriate from the other systems, and performs the calculations necessary to determine the UE 200's position using measurements obtained by any suitable SPS algorithm.
  • a motion sensor 212 may be coupled to a processor 210 to provide movement and/or orientation information which is independent of motion data derived from signals received by the WAN transceiver 204, the LAN transceiver 206 and the SPS receiver 208.
  • the motion sensor 212 may utilize an accelerometer (e.g., a microelectromechanical systems (MEMS) device), a gyroscope, a geomagnetic sensor (e.g., a compass), an altimeter (e.g., a barometric pressure altimeter), and/or any other type of movement detection sensor.
  • the motion sensor 212 may include a plurality of different types of devices and combine their outputs in order to provide motion information.
  • the motion sensor 212 may use a combination of a multi-axis accelerometer and orientation sensors to provide the ability to compute positions in 2-D and/or 3-D coordinate systems.
  • the processor 210 may be connected to the WAN transceiver 204, LAN transceiver 206, the SPS receiver 208 and the motion sensor 212.
  • the processor 210 may include one or more microprocessors, microcontrollers, and/or digital signal processors that provide processing functions, as well as other calculation and control functionality.
  • the processor 210 may also include memory 214 for storing data and software instructions for executing programmed functionality within the UE 200.
  • the memory 214 may be on-board the processor 210 (e.g., within the same integrated circuit (IC) package), and/or the memory may be external memory to the processor and functionally coupled over a data bus.
  • IC integrated circuit
  • a number of software modules and data tables may reside in memory 214 and be utilized by the processor 210 in order to manage both communications and positioning determination functionality.
  • memory 214 may include and/or otherwise receive a wireless-based positioning module 216, an application module 218, and a positioning module 228.
  • a wireless-based positioning module 216 may include and/or otherwise receive a wireless-based positioning module 216, an application module 218, and a positioning module 228.
  • FIG. 2 is merely exemplary, and as such the functionality of the modules and/or data structures may be combined, separated, and/or be structured in different ways depending upon the implementation of the UE 200.
  • the application module 218 may be a process running on the processor 210 of the UE 200, which requests position information from the wireless-based positioning module 216. Applications typically run within an upper layer of the software architectures.
  • the wireless-based positioning module 216 may derive the position of the UE 200 using information derived from time information measured from signals exchanged with a plurality of WAPs. In order to accurately determine position using time-based techniques, reasonable estimates of time delays, introduced by the processing time of each WAP, may be used to calibrate/adjust the time measurements obtained from the signals. As used herein, these time delays are referred to as "processing delays.”
  • Calibration to further refine the processing delays of the WAPs may be performed using information obtained by the motion sensor 212.
  • the motion sensor 212 may directly provide position and/or orientation data to the processor 210, which may be stored in memory 214 in the position/motion data module 226.
  • the motion sensor 212 may provide data that should be further processed by processor 210 to derive information to perform the calibration.
  • the motion sensor 212 may provide acceleration and/or orientation data (single or multi-axis) which can be processed using positioning module 228 to derive position data for adjusting the processing delays in the wireless-based positioning module 216.
  • the position may then be output to the application module 218 in response to its aforementioned request.
  • the wireless-based positioning module 216 may utilize a parameter database 224 for exchanging operational parameters.
  • Such parameters may include the determined processing delays for each WAP, the WAPs positions in a common coordinate frame, various parameters associated with the network, initial processing delay estimates, etc.
  • the additional information may optionally include auxiliary position and/or motion data which may be determined from other sources besides the motion sensor 212, such as from SPS measurements.
  • the auxiliary position data may be intermittent and/or noisy, but may be useful as another source of independent information for estimating the processing delays of the WAPs depending upon the environment in which the UE 200 is operating.
  • data derived from the SPS receiver 208 may supplement the position data supplied by the motion sensor 212 (either directly from the position/motion data module 226 or derived by the positioning module 228).
  • the position data may be combined with data determined through additional networks using non-RTT techniques (e.g., advanced forward link trilateration (AFLT) within a CDMA network).
  • AFLT advanced forward link trilateration
  • the motion sensor 212 and/or the SPS receiver 214 may provide all or part of the auxiliary position/motion data 226 without further processing by the processor 210.
  • the auxiliary position/motion data 226 may be directly provided by the motion sensor 212 and/or the SPS receiver 208 to the processor 210.
  • Memory 214 may also include a grammar generator module 230.
  • the grammar generator module 230 may be configured to generate a grammar describing activities of a user as described herein.
  • the grammar generator module 230 may be operable to receive log data for the user, the log data representing activities of the user, cluster the log data around a plurality of cluster centroids, wherein each of the plurality of cluster centroids represents an activity of the user, assign one or more semantic labels to each of the plurality of cluster centroids based on determining that a threshold number of log data points have been assigned to each of the plurality of cluster centroids, determine a sequence in which the log data points were clustered around the plurality of cluster centroids, generate one or more grammars representing a sequence of possible activities of the user based on the sequence in which the log data points were clustered around the plurality of cluster centroids and the one or more semantic labels of each of the plurality of cluster centroids, and filter the assigned one or more semantic labels for each of the plurality of cluster centroids.
  • the modules shown in FIG. 2 are illustrated in the example as being contained in the memory 214, it is recognized that in certain implementations such procedures may be provided for or otherwise operatively arranged using other or additional mechanisms.
  • all or part of the wireless-based positioning module 216 and/or the application module 218 may be provided in firmware.
  • the wireless-based positioning module 216 and the application module 218 are illustrated as being separate features, it is recognized, for example, that such procedures may be combined together as one procedure or perhaps with other procedures, or otherwise further divided into a plurality of sub-procedures.
  • the processor 210 may include any form of logic suitable for performing at least the techniques provided herein.
  • the processor 210 may be operatively configurable based on instructions in the memory 214 to selectively initiate one or more routines that exploit motion data for use in other portions of the UE 200.
  • the UE 200 may include a user interface 250 that provides any suitable interface systems, such as a microphone/speaker 252, keypad 254, and display 256 that allows user interaction with the UE 200.
  • the microphone/speaker 252 provides for voice communication services using the WAN transceiver 204 and/or the LAN transceiver 206.
  • the keypad 254 comprises any suitable buttons for user input.
  • the display 256 comprises any suitable display, such as a backlit liquid crystal display (LCD), and may further include a touch screen display for additional user input modes.
  • LCD liquid crystal display
  • the UE 200 may be any portable or movable device or machine that is configurable to acquire wireless signals transmitted from, and transmit wireless signals to, one or more wireless communication devices or networks. As shown in FIG. 2, the UE 200 is representative of such a portable wireless device. Thus, by way of example but not limitation, the UE 200 may include a radio device, a cellular telephone device, a computing device, a personal communication system (PCS) device, or other like movable wireless communication equipped device, appliance, or machine.
  • PCS personal communication system
  • user equipment is also intended to include devices which communicate with a personal navigation device (PND), such as by short-range wireless, infrared, wire line connection, or other connection - regardless of whether satellite signal reception, assistance data reception, and/or position-related processing occurs at the device or at the PND.
  • PND personal navigation device
  • user equipment is intended to include all devices, including wireless devices, computers, laptops, etc. which are capable of communication with a server, such as via the Internet, Wi-Fi, or other network, and regardless of whether satellite signal reception, assistance data reception, and/or position-related processing occurs at the device, at a server, or at another device associated with the network. Any operable combination of the above is also considered a "user equipment.”
  • wireless device may refer to any type of wireless communication device which may transfer information over a network and also have position determination and/or navigation functionality.
  • the wireless device may be any cellular mobile terminal, personal communication system (PCS) device, personal navigation device, laptop, personal digital assistant, or any other suitable device capable of receiving and processing network and/or SPS signals.
  • PCS personal communication system
  • FIG. 3 illustrates a communication device 300 that includes logic configured to perform functionality.
  • the communication device 300 can correspond to any of the above-noted communication devices, including but not limited to UE 200, any component of the RAN 120, any component of the core network 140, any components coupled with the core network 140 and/or the Internet 175 (e.g., the application server 170), and so on.
  • communication device 300 can correspond to any electronic device that is configured to communicate with (or facilitate communication with) one or more other entities over the wireless communications system 100 of FIG. 1.
  • the communication device 300 includes logic configured to receive and/or transmit information 305.
  • the logic configured to receive and/or transmit information 305 can include a wireless communications interface (e.g., Bluetooth, WiFi, 2G, CDMA, W-CDMA, 3G, 4G, LTE, etc.) such as a wireless transceiver and associated hardware (e.g., a radio frequency (RF) antenna, a MODEM, a modulator and/or demodulator, etc.).
  • a wireless communications interface e.g., Bluetooth, WiFi, 2G, CDMA, W-CDMA, 3G, 4G, LTE, etc.
  • a wireless transceiver and associated hardware e.g., a radio frequency (RF) antenna, a MODEM, a modulator and/or demodulator, etc.
  • the logic configured to receive and/or transmit information 305 can correspond to a wired communications interface (e.g., a serial connection, a universal serial bus (USB) or Firewire connection, an Ethernet connection through which the Internet 175 can be accessed, etc.).
  • a wired communications interface e.g., a serial connection, a universal serial bus (USB) or Firewire connection, an Ethernet connection through which the Internet 175 can be accessed, etc.
  • the communication device 300 corresponds to some type of network-based server (e.g., the application server 170)
  • the logic configured to receive and/or transmit information 305 can correspond to an Ethernet card, in an example, that connects the network-based server to other communication entities via an Ethernet protocol.
  • the logic configured to receive and/or transmit information 305 can include sensory or measurement hardware by which the communication device 300 can monitor its local environment (e.g., an accelerometer, a temperature sensor, a light sensor, an antenna for monitoring local RF signals, etc.).
  • the logic configured to receive and/or transmit information 305 can also include logic configured to receive a stream of data points.
  • the logic configured to receive and/or transmit information 305 can also include software that, when executed, permits the associated hardware of the logic configured to receive and/or transmit information 305 to perform its reception and/or transmission function(s).
  • the logic configured to receive and/or transmit information 305 does not correspond to software alone, and the logic configured to receive and/or transmit information 305 relies at least in part upon hardware to achieve its functionality.
  • the communication device 300 further includes logic configured to process information 310.
  • the logic configured to process information 310 can include at least a processor.
  • Example implementations of the type of processing that can be performed by the logic configured to process information 310 includes but is not limited to performing determinations, establishing connections, making selections between different information options, performing evaluations related to data, interacting with sensors coupled to the communication device 300 to perform measurement operations, converting information from one format to another (e.g., between different protocols such as .wmv to .avi, etc.), and so on.
  • the logic configured to process information 310 can include logic configured to receive a stream of data points, logic configured to determine a plurality of cluster centroids, logic configured to divide the plurality of cluster centroids among a plurality of threads and/or processors, logic configured to assign a portion of the stream of data points to each of the plurality of threads and/or processors, and logic configured to combine a plurality of clusters generated by the plurality of threads and/or processors to generate a global universe of clusters.
  • the logic configured to process information 310 can also include logic configured to receive a stream of data points, logic configured to assign a portion of the stream of data points to each of a plurality of threads and/or processors, wherein each of the plurality of threads and/or processors determines one or more cluster centroids and generates one or more clusters around the one or more cluster centroids, and logic configured to combine the one or more clusters from each of the plurality of threads and/or processors to generate a global universe of clusters.
  • the processor included in the logic configured to process information 310 can correspond to a general purpose processor, a digital signal processor (DSP), an ASIC, a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein.
  • a general purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine.
  • a processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
  • the logic configured to process information 310 can also include software that, when executed, permits the associated hardware of the logic configured to process information 310 to perform its processing function(s). However, the logic configured to process information 310 does not correspond to software alone, and the logic configured to process information 310 relies at least in part upon hardware to achieve its functionality.
  • the communication device 300 further includes logic configured to store information 315.
  • the logic configured to store information 315 can include at least a non-transitory memory and associated hardware (e.g., a memory controller, etc.).
  • the non-transitory memory included in the logic configured to store information 315 can correspond to RAM, flash memory, ROM, erasable programmable ROM (EPROM), EEPROM, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art.
  • the logic configured to store information 315 can also include software that, when executed, permits the associated hardware of the logic configured to store information 315 to perform its storage function(s). However, the logic configured to store information 315 does not correspond to software alone, and the logic configured to store information 315 relies at least in part upon hardware to achieve its functionality.
  • the communication device 300 further optionally includes logic configured to present information 320.
  • the logic configured to present information 320 can include at least an output device and associated hardware.
  • the output device can include a video output device (e.g., a display screen, a port that can carry video information such as USB, high-definition multimedia interface (HDMI), etc.), an audio output device (e.g., speakers, a port that can carry audio information such as a microphone jack, USB, HDMI, etc.), a vibration device and/or any other device by which information can be formatted for output or actually outputted by a user or operator of the communication device 300.
  • a video output device e.g., a display screen, a port that can carry video information such as USB, high-definition multimedia interface (HDMI), etc.
  • an audio output device e.g., speakers, a port that can carry audio information such as a microphone jack, USB, HDMI, etc.
  • a vibration device e.g., a vibration device and/or
  • the logic configured to present information 320 can include the display 256 and/or the speaker 252. In a further example, the logic configured to present information 320 can be omitted for certain communication devices, such as network communication devices that do not have a local user (e.g., network switches or routers, remote servers, etc.).
  • the logic configured to present information 320 can also include software that, when executed, permits the associated hardware of the logic configured to present information 320 to perform its presentation function(s). However, the logic configured to present information 320 does not correspond to software alone, and the logic configured to present information 320 relies at least in part upon hardware to achieve its functionality.
  • the communication device 300 further optionally includes logic configured to receive local user input 325.
  • the logic configured to receive local user input 325 can include at least a user input device and associated hardware.
  • the user input device can include buttons, a touchscreen display, a keyboard, a camera, an audio input device (e.g., a microphone or a port that can carry audio information such as a microphone jack, etc.), and/or any other device by which information can be received from a user or operator of the communication device 300.
  • the logic configured to receive local user input 325 can include the microphone 252, the keypad 254, the display 256, etc.
  • the logic configured to receive local user input 325 can be omitted for certain communication devices, such as network communication devices that do not have a local user (e.g., network switches or routers, remote servers, etc.).
  • the logic configured to receive local user input 325 can also include software that, when executed, permits the associated hardware of the logic configured to receive local user input 325 to perform its input reception function(s).
  • the logic configured to receive local user input 325 does not correspond to software alone, and the logic configured to receive local user input 325 relies at least in part upon hardware to achieve its functionality.
  • any software used to facilitate the functionality of the configured logics of 305 through 325 can be stored in the non-transitory memory associated with the logic configured to store information 315, such that the configured logics of 305 through 325 each performs their functionality (i.e., in this case, software execution) based in part upon the operation of software stored by the logic configured to store information 315.
  • hardware that is directly associated with one of the configured logics can be borrowed or used by other configured logics from time to time.
  • the processor of the logic configured to process information 310 can format data into an appropriate format before being transmitted by the logic configured to receive and/or transmit information 305, such that the logic configured to receive and/or transmit information 305 performs its functionality (i.e., in this case, transmission of data) based in part upon the operation of hardware (i.e., the processor) associated with the logic configured to process information 310.
  • logic configured to as used throughout this disclosure is intended to invoke an aspect that is at least partially implemented with hardware, and is not intended to map to software-only implementations that are independent of hardware.
  • the configured logic or “logic configured to” in the various blocks are not limited to specific logic gates or elements, but generally refer to the ability to perform the functionality described herein (either via hardware or a combination of hardware and software).
  • the configured logics or “logic configured to” as illustrated in the various blocks are not necessarily implemented as logic gates or logic elements despite sharing the word “logic.” Other interactions or cooperation between the logic in the various blocks will become clear to one of ordinary skill in the art from a review of the aspects described below in more detail.
  • the server 400 may correspond to one example configuration of the application server 170 described above.
  • the server 400 includes a processor 400 coupled to volatile memory 402 and a large capacity nonvolatile memory, such as a disk drive 403.
  • the server 400 may also include a floppy disc drive, compact disc (CD) or DVD disc drive 406 coupled to the processor 401.
  • the server 400 may also include network access ports 404 coupled to the processor 401 for establishing data connections with a network 407, such as a local area network coupled to other broadcast system computers and servers or to the Internet.
  • a network 407 such as a local area network coupled to other broadcast system computers and servers or to the Internet.
  • FIG. 4 illustrates one example implementation of the communication device 300, whereby the logic configured to transmit and/or receive information 305 corresponds to the network access ports 404 used by the server 400 to communicate with the network 407, the logic configured to process information 310 corresponds to the processor 401, and the logic configuration to store information 315 corresponds to any combination of the volatile memory 402, the disk drive 403 and/or the disc drive 406.
  • the optional logic configured to present information 320 and the optional logic configured to receive local user input 325 are not shown explicitly in FIG. 4 and may or may not be included therein.
  • FIG. 4 helps to demonstrate that the communication device 300 may be implemented as a server, in addition to a UE implementation as in 200 of FIG. 2.
  • the server 400 may include a grammar generator module, similar to the grammar generator module 230 illustrated in FIG. 2.
  • the grammar generator module may be configured to generate a grammar describing activities of a user as described herein.
  • the grammar generator module may be operable to receive log data for the user, the log data representing activities of the user, cluster the log data around a plurality of cluster centroids, wherein each of the plurality of cluster centroids represents an activity of the user, assign one or more semantic labels to each of the plurality of cluster centroids based on determining that a threshold number of log data points have been assigned to each of the plurality of cluster centroids, determine a sequence in which the log data points were clustered around the plurality of cluster centroids, generate one or more grammars representing a sequence of possible activities of the user based on the sequence in which the log data points were clustered around the plurality of cluster centroids and the one or more semantic labels of each of the plurality of cluster centroids, and filter the assigned one or more semantic labels for each of the
  • User devices such as UE 200 in FIG. 2, generally track information related to a user's use of the device, such as the location of the device, battery usage, WiFi access, and/or interactions with other devices (e.g., emails, calls, SMS messages, MMS messages, web browsing history, proximity detections, etc.), and store this information in user log files.
  • User logs reporting on location data provides an analysis opportunity that can potentially lend insight into a user's characteristics. For example, is the user more or less social? Does the user spend more time at home or away? How does the user spend his or her leisure time? Is the user athletic, or does he or she enjoy more passive means of recreation? What are the user's hobbies?
  • the present disclosure leverages location data to learn about users' relationships and their behavior. Given the location data, such as global positioning system (GPS) coordinates or serving cell identifier, the first step is to discover the significant places, which can be accomplished using a clustering algorithm. Once the significant places have been identified, the proposed system determines how users transition from location to location, which can be used to identify relationships between users.
  • location data such as global positioning system (GPS) coordinates or serving cell identifier
  • FIGS. 5A-F illustrate an exemplary process for determining relationships between users according to an aspect of the disclosure.
  • the initial step is to extract the values from the log data that the system will cluster. For example, the log data for the user's location at a particular time can be clustered.
  • Location distance can be measured either using geographic distance, e.g., GPS distance as determined by wireless-based positioning module 216, or using transition distances.
  • the geographic distance is measured by using the GPS coordinates stored with the log data.
  • the transition distance represents the number of times a device transitions from one location to another.
  • FIG. 5A illustrates an example of determining transition distances.
  • the user's location data includes the serving cell identifier of three cells/base stations, i.e., Tower A, Tower B, and Tower C, to which the user's device has been attached over some period of time.
  • the transition distance is determined by measuring the number of times the device transitions from one location (e.g., serving cell) to another (shown in Table 1 of FIG. 5A).
  • Transitions that occur more frequently indicate a shorter distance between two locations, whereas transitions that occur less frequently indicate a greater distance between two locations.
  • Towers A and C are closest together, as indicated by the transition distances 1.00 (A to C) and 0.80 (C to A).
  • FIG. 5B illustrates two sets of data points (Sample A 502 and Sample B 504) representing the user's locations that have been clustered.
  • FIG. 5C illustrates two tables 510 and 512 representing the cluster count per user and the user to cluster count.
  • the cluster count per user table 510 User A was at the locations corresponding to clusters 3, 4, and 7 106, 1, and 7 times, respectively.
  • each user was at the location corresponding to cluster 3 at some point in time.
  • the point in time may be a common point in time, e.g., the same hour, the same day, the same week, etc., but it need not be.
  • FIG. 5D the system builds a graph 520 representing a mapping between the users and the clusters to which each user belongs.
  • the system can identify which users share clusters.
  • FIG. 5E illustrates a graph 530 for the Users A, B, and C shown in FIG. 5C.
  • Users A, B, and C have cluster "3" in common, and are thus related via cluster "3.” As such, it can be inferred that there is some relationship between Users A, B, and C.
  • the cluster numbers can be replaced with semantic labels, as illustrated by graph 540 in FIG. 5F.
  • the system generates a grammar describing patterns of user behavior. Once there are enough data points around a given centroid (which may represent a particular location), the system looks up possible semantic labels for the centroid. For example, a particular centroid may be associated with the labels "Starbucks,” “coffee shop,” “breakfast,” “work” (as in the user's place of employment), etc. The system then analyzes the sequence in which the data points were clustered around the various centroids using, for example, the SEQUITUR algorithm. Over time, as patterns emerge in the grammar, the system can determine what a particular location means to the user and assign one of the possible semantic labels accordingly.
  • FIG. 6 illustrates an exemplary flow for building this grammar and assigning semantic labels.
  • the flow illustrated in FIG. 6 begins after the clustering and graphing illustrated in FIGS. 5A-E and results in the semantically labeled graph illustrated in FIG. 5F.
  • the flow illustrated in FIG. 6 may be performed entirely by a user device, or by a server that receives the collected user data from the user device, or by a combination of the user device and the server.
  • the term "system” refers to the user device, the server, or both the user device and the server.
  • the system applies all possible vocabulary mappings, or labels, to the identified centroids. Referring to the above example, if a particular centroid is associated with the location of a Starbucks, the system may assign the vocabulary mappings, or labels, "Starbucks,” “coffee shop,” “breakfast,” “lunch,” “work,” “hotspot,” etc. to the centroid.
  • the system builds a temporal output grammar. Specifically, the system identifies the sequence that the user transitions from location (represented as a centroid) to location using, e.g., the SEQUITUR algorithm. For example, the user may transition from centroids/locations A to B to C to A one day, and from centroids/locations A to D to C to A another day.
  • the names "A,” “B,” “C,” and “D” are simply generic labels for the centroids at this point, although each centroid may be associated with a list of possible labels from 610.
  • 620 can be performed before 610.
  • centroids A-D may have been assigned the following vocabularies/labels:
  • the system If the pattern of transitions for a first day is A, B, C, A (i.e., the user transitioned from locations/centroids A to B to C to A), then the system generates all possible grammars for that day (each row represents a possible grammar):
  • the system can use existing patterns to label new patterns that emerge. For example, assume that the user has a pattern of transitioning from centroids/locations A to B to C to A, where A is "home,” B is “eat,” and C is "work.” If, however, beginning at a new centroid location X, the same pattern emerges, i.e., the user transitions from centroids/locations X to Y to Z to X, it may be inferred that X is similar to A, Y is similar to B, and Z is similar to C.
  • X may be a hotel
  • Y may be a Dunkin' Donuts
  • Z may be a different office location for the user's work.
  • the system may assign the semantic label "eat” to the centroid/location Y and the semantic label "work” to the centroid/location Z.
  • the system may also be able to assign the semantic label "hotel” to the centroid/location X, rather than the label "Marriott,” for example, based on its correspondence to the centroid/location A, or "home.”
  • the system reduces the vocabulary by merging minimum information lost.
  • the vocabulary mappings assigned in 610, and even the semantic labels determined in 630, may include overlapping terms that can be reduced to a single term. For example, the terms “car,” “vehicle,” “automobile,” and “home,” “house,” “residence” could be reduced to a single term while keeping essentially the same meaning.
  • Information can be converted into meaning; adding meaning into the system decreases the amount of information. This is not only an inverse relationship however; rather, information and meaning are coupled. An uncoupled relationship means that meaning can be added without removing information. A coupled relationship means that adding meaning must decrease information.
  • Grammars allow for syntagmatic analysis of text, which is multi-dimensional.
  • the present disclosure proposes adding in grammar analysis to help identify where best to replace words. This has the following benefits: (a) accuracy, i.e., minimizing information loss, (b) performing analysis at the grammar level, which is on the order of log N, rather than on the matrix, which is the order of xM, and (c) approaching the text subjective to the specific document involved.
  • the system attempts to identify the smallest subset of texts that has the highest information in it. It can do so by removing text without removing information, thereby increasing the density of the information. It can also choose rules that are most similar, thus collapsing the text with the minimum information loss. It can also find the grammar with the fewest rule overlaps, such as the phrases "He rode his bike” and "He rode his bicycle,” and find a point of convergence for the two.
  • grammar analysis can be leveraged to derive contextual information and merge such that there is the least loss of information. This can be accomplished by creating a grammar and analyzing the rules of that grammar. The system finds the rules that carry the least amount of information. In particular, the system can find two rules that will change the least content that will least change the meaning, as demonstrated in the third approach below.
  • the system can define user characteristics based on the new vocabulary.
  • the system could determine that the user has a daytime job, that the user goes to work at approximately the same time on work days, that the user eats breakfast away from home on work days, that the user eats lunch at work on work days, that the user does not eat dinner away from home on work days, etc.
  • the system can compare one user's grammar with another user's grammar to determine information about the users and/or to assign the correct semantic label to a centroid/location.
  • the system can infer that the first user is eating, or getting coffee, at Starbucks, while the other user works there.
  • FIG. 7 illustrates an exemplary flow for generating a grammar describing activities of a user according to at least one aspect of the disclosure.
  • the flow illustrated in FIG. 7 may be performed entirely by a user device, or by a server that receives the collected user data from the user device, or by a combination of the user device and the server.
  • the user device or the server receives log data for the user. If the user device is receiving the log data, it may be retrieving the log data from its local memory, receiving it in real time as it is recorded, or receiving it from a peer device, for example. If the server is receiving the log data, it may be receiving the log data from the user device.
  • the log data may represent activities of the user.
  • the log data may include GPS coordinates of the user, phone calls, SMS/MMS messages, and/or emails made and/or received by the user, access to local wireless networks by the user, and/or Internet browsing history of the user, for example.
  • An activity of the user may be a location of the user, a phone call, SMS/MMS message, and/or email sent to and/or received by the user from a particular contact, an access to a local wireless network by the user, and/or an access to a website, for example.
  • the user device or the server clusters the log data around a plurality of cluster centroids.
  • Each of the plurality of cluster centroids may represent an activity of the user.
  • the user device or the server assigns one or more semantic labels to each of the plurality of cluster centroids based on determining that a threshold number of log data points have been assigned to each of the plurality of cluster centroids.
  • the user device or the server determines a sequence in which the log data points were clustered around the plurality of cluster centroids.
  • the user device or the server generates one or more grammars representing a sequence of possible activities of the user based on the sequence in which the log data points were clustered around the plurality of cluster centroids and the one or more semantic labels of each of the plurality of cluster centroids.
  • the one or more grammars may represent permutations of the one or more semantic labels for each of the plurality of cluster centroids and the sequence in which the log data points were assigned to the plurality of cluster centroids.
  • the one or more grammars may be generated based on log data received over a period of days.
  • generating the one or more grammars may include identifying one or more patterns in the sequence in which the log data points were clustered around the plurality of cluster centroids.
  • Each of the one or more patterns may include a series of cluster centroids of the plurality of cluster centroids.
  • the user device or the server can then assign one of the corresponding one or more semantic labels to each cluster centroid in the identified one or more patterns.
  • the user device or the server filters the assigned one or more semantic labels for each of the plurality of cluster centroids.
  • the filtering may include comparing a pattern identified in a first grammar of the one or more grammars to a pattern identified in a second grammar of the one or more grammars, and removing one or more semantic labels from the assigned one or more semantic labels based on identifying an overlapping or similar pattern in the first grammar and the second grammar.
  • the filtering may include comparing a pattern identified in a first grammar of the one or more grammars to a pattern identified in a second grammar of the one or more grammars, and assigning a semantic label to at least one cluster centroid in the pattern identified in the second grammar based on a similarity between the first grammar and the second grammar.
  • the user device or the server can transmit the generated grammar, the semantic labels, or the filtered results to another entity.
  • the user device can send the generated grammar, the semantic labels, and/or the filtered results to the server or one or more other user devices.
  • the server can send the generated grammar, the semantic labels, and/or the filtered results to one or more other servers or one or more other user devices.
  • FIG. 8 illustrates an example apparatus 800 represented as a series of interrelated functional modules.
  • a module for receiving 802 may correspond at least in some aspects to, for example, a communication device, such as WAN transceiver 204, LAN transceiver 206, network access ports 404, or a processing system, such as processor 210 or processor 401, in conjunction with a grammar generator module, such as grammar generator module 230, as discussed herein.
  • a module for clustering 804 may correspond at least in some aspects to, for example, a processing system, such as processor 210 or processor 401, in conjunction with a grammar generator module, such as grammar generator module 230, as discussed herein.
  • a module for assigning 806 may correspond at least in some aspects to, for example, a processing system, such as processor 210 or processor 401, in conjunction with a grammar generator module, such as grammar generator module 230, as discussed herein.
  • a module for determining 808 may correspond at least in some aspects to, for example, a processing system, such as processor 210 or processor 401, in conjunction with a grammar generator module, such as grammar generator module 230, as discussed herein.
  • a module for generating 810 may correspond at least in some aspects to, for example, a processing system, such as processor 210 or processor 401, in conjunction with a grammar generator module, such as grammar generator module 230, as discussed herein.
  • a module for filtering 812 may correspond at least in some aspects to, for example, a processing system, such as processor 210 or processor 401, in conjunction with a grammar generator module, such as grammar generator module 230, as discussed herein.
  • the functionality of the modules of FIG. 8 may be implemented in various ways consistent with the teachings herein.
  • the functionality of these modules may be implemented as one or more electrical components.
  • the functionality of these blocks may be implemented as a processing system including one or more processor components.
  • the functionality of these modules may be implemented using, for example, at least a portion of one or more integrated circuits (e.g., an ASIC).
  • an integrated circuit may include a processor, software, other related components, or some combination thereof.
  • the functionality of different modules may be implemented, for example, as different subsets of an integrated circuit, as different subsets of a set of software modules, or a combination thereof.
  • a given subset e.g., of an integrated circuit and/or of a set of software modules
  • FIG. 8 may be implemented using any suitable means. Such means also may be implemented, at least in part, using corresponding structure as taught herein.
  • the components described above in conjunction with the "module for" components of FIG. 8 also may correspond to similarly designated “means for” functionality.
  • one or more of such means may be implemented using one or more of processor components, integrated circuits, or other suitable structure as taught herein.
  • DSP digital signal processor
  • ASIC application specific integrated circuit
  • FPGA field programmable gate array
  • a general purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine.
  • a processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
  • a software module may reside in RAM, flash memory, ROM, EPROM, EEPROM, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art.
  • An exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium.
  • the storage medium may be integral to the processor.
  • the processor and the storage medium may reside in an ASIC.
  • the ASIC may reside in a user terminal (e.g., UE).
  • the processor and the storage medium may reside as discrete components in a user terminal.
  • the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored on or transmitted over as one or more instructions or code on a computer-readable medium.
  • Computer-readable media includes both computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another.
  • a storage media may be any available media that can be accessed by a computer.
  • such computer-readable media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer.
  • any connection is properly termed a computer-readable medium.
  • the software is transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave
  • the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of medium.
  • Disk and disc includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk and blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Human Computer Interaction (AREA)
  • Telephonic Communication Services (AREA)
  • Telephone Function (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Transfer Between Computers (AREA)
PCT/US2015/031168 2014-06-02 2015-05-15 Deriving user characteristics from users' log files WO2015187344A1 (en)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201462006564P 2014-06-02 2014-06-02
US62/006,564 2014-06-02
US201462022068P 2014-07-08 2014-07-08
US62/022,068 2014-07-08
US14/698,638 2015-04-28
US14/698,638 US20150347562A1 (en) 2014-06-02 2015-04-28 Deriving user characteristics from users' log files

Publications (1)

Publication Number Publication Date
WO2015187344A1 true WO2015187344A1 (en) 2015-12-10

Family

ID=54702040

Family Applications (2)

Application Number Title Priority Date Filing Date
PCT/US2015/031168 WO2015187344A1 (en) 2014-06-02 2015-05-15 Deriving user characteristics from users' log files
PCT/US2015/031111 WO2015187343A1 (en) 2014-06-02 2015-05-15 Deriving relationships from overlapping location data

Family Applications After (1)

Application Number Title Priority Date Filing Date
PCT/US2015/031111 WO2015187343A1 (en) 2014-06-02 2015-05-15 Deriving relationships from overlapping location data

Country Status (6)

Country Link
US (2) US20150347895A1 (enrdf_load_stackoverflow)
EP (1) EP3149976A1 (enrdf_load_stackoverflow)
JP (1) JP2017531219A (enrdf_load_stackoverflow)
KR (1) KR20170012463A (enrdf_load_stackoverflow)
CN (1) CN106416319A (enrdf_load_stackoverflow)
WO (2) WO2015187344A1 (enrdf_load_stackoverflow)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10515101B2 (en) * 2016-04-19 2019-12-24 Strava, Inc. Determining clusters of similar activities
US10732297B2 (en) * 2016-08-30 2020-08-04 Faraday&Future Inc. Geo-pairing detection
US10497019B2 (en) 2017-04-28 2019-12-03 Splunk Inc. Geographic positions of mobile devices and external data sources correlation
US10115126B1 (en) 2017-04-28 2018-10-30 Splunk, Inc. Leveraging geographic positions of mobile devices at a locale
US20180315089A1 (en) * 2017-04-28 2018-11-01 Splunk, Inc. Leveraging patterns in geographic positions of mobile devices at a locale
US11461360B2 (en) * 2018-03-30 2022-10-04 AVAST Software s.r.o. Efficiently initializing distributed clustering on large data sets
CN109739825B (zh) * 2018-12-29 2021-04-30 优刻得科技股份有限公司 管理日志的方法、装置和存储介质
US12007980B2 (en) * 2019-01-17 2024-06-11 The Boston Consulting Group, Inc. AI-driven transaction management system
JP7154146B2 (ja) * 2019-01-24 2022-10-17 株式会社日立製作所 ログ分析装置、ログ分析方法、及びログ分析プログラム
US11301573B2 (en) * 2019-08-19 2022-04-12 TADA Cognitive Solutions, LLC Data security using semantic services
CN112232374B (zh) * 2020-09-21 2023-04-07 西北工业大学 基于深度特征聚类和语义度量的不相关标签过滤方法
CN113254255B (zh) * 2021-07-15 2021-10-29 苏州浪潮智能科技有限公司 一种云平台日志的分析方法、系统、设备及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010083562A1 (en) * 2009-01-22 2010-07-29 National Ict Australia Limited Activity detection
EP2731362A1 (en) * 2012-11-08 2014-05-14 Alcatel Lucent Configuration of electronic device

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06139295A (ja) * 1992-10-30 1994-05-20 Hitachi Ltd ニューロ応用地理情報表示システム
JP4249105B2 (ja) * 2004-08-27 2009-04-02 日本電信電話株式会社 情報提供方法およびシステム、プログラムおよび記録媒体
US8045482B2 (en) * 2008-02-08 2011-10-25 Yahoo! Inc. Location tracking based on proximity-based ad hoc network
US9002922B2 (en) * 2008-05-15 2015-04-07 Kota Enterprises, Llc Question server to facilitate communication between participants
CN101686455B (zh) * 2008-09-27 2012-12-12 华为技术有限公司 移动性管理方法、相关设备及通信系统
JP2010165097A (ja) * 2009-01-14 2010-07-29 Ntt Docomo Inc 人間関係推定装置、及び、人間関係推定方法
US8463812B2 (en) * 2009-12-18 2013-06-11 Electronics And Telecommunications Research Institute Apparatus for providing social network service using relationship of ontology and method thereof
CN101782976B (zh) * 2010-01-15 2013-04-10 南京邮电大学 一种云计算环境下机器学习自动选择方法
JP5534007B2 (ja) * 2010-05-12 2014-06-25 日本電気株式会社 特徴点検出システム、特徴点検出方法、及びプログラム
US10149267B2 (en) * 2011-10-11 2018-12-04 Match Group, Llc System and method for matching using location information
JP5904021B2 (ja) * 2012-06-07 2016-04-13 ソニー株式会社 情報処理装置、電子機器、情報処理方法、及びプログラム
CN107027100B (zh) * 2012-06-22 2020-05-19 谷歌有限责任公司 基于联系人信息来标注被访问的位置的方法和系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010083562A1 (en) * 2009-01-22 2010-07-29 National Ict Australia Limited Activity detection
EP2731362A1 (en) * 2012-11-08 2014-05-14 Alcatel Lucent Configuration of electronic device

Also Published As

Publication number Publication date
US20150347562A1 (en) 2015-12-03
CN106416319A (zh) 2017-02-15
EP3149976A1 (en) 2017-04-05
US20150347895A1 (en) 2015-12-03
WO2015187343A1 (en) 2015-12-10
JP2017531219A (ja) 2017-10-19
KR20170012463A (ko) 2017-02-02

Similar Documents

Publication Publication Date Title
US20150347562A1 (en) Deriving user characteristics from users' log files
US9411632B2 (en) Parallel method for agglomerative clustering of non-stationary data
EP2909646B1 (en) Changing a position determination scheme used by a user equipment during a transition between indoor and outdoor spaces relative to an enclosed environment
CN103210410B (zh) 用于情境确定的方法和装置
EP3354049B1 (en) Contextually-aware location sharing services
US11274932B2 (en) Navigation method, navigation device, and storage medium
US9942384B2 (en) Method and apparatus for device mode detection
CN112771912B (zh) 信息传输方法、装置、通信设备和存储介质
EP2962448B1 (en) Dynamic power management of context aware services
US9161294B2 (en) Using motion to optimize place of relevance operations
KR102514593B1 (ko) Rf 핑거프린트 구축 방법 및 장치
AU2017412449B2 (en) Timing method for synchronization signal block, and related product
US20150148056A1 (en) Methods, Devices, and Computer Readable Storage Devices for Collecting and Reporting Location Data with a High Frequency
US10292057B2 (en) Network identification and display based on local information
EP3243122B1 (en) Smartphone motion classifier
CN116702072A (zh) 异常数据的确定方法、装置及存储介质
US20150133125A1 (en) Normalizing location identifiers for processing in machine learning algorithms
WO2025099054A1 (en) Analytics and interactions for support application layer ml/ai

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15728678

Country of ref document: EP

Kind code of ref document: A1

DPE1 Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101)
NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15728678

Country of ref document: EP

Kind code of ref document: A1