METHOD FOR RECOMMENDING VEHICLES
Systems and methods relating to recommending vehicles similar to a first vehicle based on telematic data and vehicle manufacturing data and using machine learning techniques, and systems and methods for ranking recommended vehicles according to evaluation criteria are disclosed.
Latest Geotab Inc. Patents:
- Methods for characterizing a low-impact vehicle collision using high-rate acceleration data
- Multi-band antenna device and tuning techniques
- Big telematics data constructing system
- Systems for determining and reporting vehicle following distance
- Systems and methods for processing telematics data streams for event detection
This application is a continuation of U.S. Pat. Application No. 17/108,789, titled “Method For Recommending Vehicles,” filed Dec. 1, 2020, which claims the benefit under 35 U.S.C. § 119(e) to U.S. Provisional Application Serial No. 63/090,885, titled “Recommending and Ranking Vehicles,” filed on Oct. 13, 2020, each of which is herein incorporated by reference in its entirety.
BACKGROUNDRecommender systems process and filter information for predicting a rating or preference a user would give to an item. Such systems are frequently implemented for commercial purposes. For instance, a service provider and/or vendor may suggest to a customer an item that has been highly ranked for that customer in an effort to make a new sale or to maintain the customer’s satisfaction level with their service. Recommender systems are utilized in a variety of industries.
One type of recommender system uses a method known as content-based filtering. In this type of system there is known data on the item and a user profile is built based on the users behaviour and interaction with the recommender system. In this system, keywords are used to describe the items and a user profile is built to indicate the type of item this user likes. Algorithms are used to try to recommend items that are similar to those that a user liked in the past. In general, content-based recommenders learn the users likes and dislikes based on an item’s features.
A content-based filtering recommender system may be implemented by a video streaming service provider, such as Netflix®. Data about films, i.e., movies and/or tv shows, may include, film category, e.g., action, drama, foreign film, comedy, actors..., film language, e.g., English, French, Spanish..., film format, e.g., movie, mini-series, tv show..., among other film attributes. A user profile may be built using information explicitly provided by the user, such as a film ranking, e.g., thumbs up/down, numerical score, e.g., 5/10, number of stars, e.g., 4 /5 stars. Information to build a user profile is also based on a user’s behaviour. Such as, the categories of film the user watches most frequently, favoured actors, whether or not a user watches a film to completion, among others. Such service providers implement recommender systems for recommending films that are similar to those the user liked in the past.
Shown in
For each user, the video streaming service has information regarding, different films watched by the user, and thus has information based on 1:N information. (e.g., one user: many different products). To create a machine learning based recommender system, features for training could be generated from the (N) information associated with each user.
Another type of recommender system uses a method known as collaborative filtering. In this type of system there is an assumption that people who agreed in the past will agree in the future, and that they will like similar kinds of items they liked in the past. The system generates recommendations using only information about rating profiles for different users or items. By grouping like users/items with a rating history similar to the current user or item, they generate recommendations using these groupings. A key advantage of the collaborative filtering approach is that it does not rely on machine analyzable content and therefore it is capable of accurately recommending complex items such as films without knowing any data about the films. A collaborative filtering recommender system builds a model from a users behavior. The data collected may come in the form of explicit and implicit forms of data collection. Examples of explicit data collection include requesting a user to rank an item and/or rank a collection of items from favourite to least favourite and presenting two items to a user and asking them to choose their preferred item. Examples of implicit data collection include, observing the items that a user views in an online store, analyzing user viewing time of an item, keeping a record of the items that a user purchases online, obtaining a list of items that a user has listened to or watched on his/her computer, analyzing the users social network and discovering similar likes and dislikes.
A collaborative filtering recommender system may be used by an online sales platform, such as Amazon®. For example, when looking at an item on Amazon.com, the user will frequently see a banner informing them that people who buy x also buy y. For each customer, Amazon® has information regarding, for example, different items purchased by users, and thus has information based on 1:N information. (e.g., one customer: many different products). To create a machine learning based recommender system, features for training could be generated from the (N) information associated with each customer.
Shown in
Other types of recommender systems are hybrids implementing both content-based and collaborative filtering.
SUMMARYAccording to a first broad aspect there is provided a method for recommending a second plurality of vehicles similar to a first vehicle comprising: for each vehicle of a first plurality of vehicles, generating a plurality of features, the plurality of features based on and/or derived from at least one of historical vehicle data and manufacturer data associated therewith; using at least one machine learning technique for selecting the second plurality of vehicles from the first plurality of vehicles similar to the first vehicle; and for each vehicle of the second plurality of vehicles, providing descriptive data indicative of at least a make, a model, and manufacture year thereof. The historical vehicle data may include a plurality of raw vehicle data instances indicative of vehicle operation information collected over a period of time. The manufacturer data may include data indicative of vehicle manufacturer specification information. The method may further include receiving historical data from one at least one of a datastore and data management system. The method may include generating a plurality of features for a vehicle of the first plurality of vehicles may include generating the plurality of features based on and/or derived from at least one of historical vehicle data and manufacturer data associated therewith, the at least one of historical vehicle data and the manufacturer data other than including data indicative of a make, model and/or year of the vehicle. The plurality of features may include categorical features.
According to an embodiment the provided method may include generating at least a first feature of the plurality of features for a vehicle of the first plurality of vehicles includes, processing speed data of historical vehicle data for determining whether a vehicle has one of met and exceeded a predetermined speed; and generating the at least a first feature indicating whether the vehicle has one of met and exceeded a maximum speed. Generating at least a first feature of the plurality of features for a vehicle of the first plurality of vehicles includes generating a first feature indicative of a vehicle type indicated in the manufacturer data associated with the vehicle.
Generating at least a first feature of the plurality of features for a vehicle of the first plurality of vehicles may include, defining a plurality of total time travelled ranges and assigning a second label to each thereof; processing historical vehicle data for determining a total time travelled by a vehicle; and generating the at least a first feature including a second label assigned to a total time travelled range corresponding to the total time travelled by the vehicle. Generating at least a first feature of the plurality of features for a vehicle of the first plurality of vehicles may include, defining a plurality of displacement ranges and assigning a third label to each thereof; processing manufacturer data for determining a displacement associated with the vehicle; and generating the at least a first feature including a third label assigned to a displacement range corresponding to the displacement associated with the vehicle. Generating at least at least a first feature of the plurality of features for a vehicle of the first plurality of vehicles may include, defining a plurality of horsepower ranges and assigning a fourth label to each thereof; processing manufacturer data for determining a horsepower of the vehicle; and generating the at least a first feature including a fourth label assigned to a horsepower range corresponding to the horsepower associated with the vehicle. The method provided may further include providing descriptive data indicative of at least a make, model and year of each vehicle in the second plurality of vehicles. Generating at least at least a first feature of the plurality of features for a vehicle of the first plurality of vehicles may include, processing manufacturing data associated with the vehicle for determining whether weight class data indicates a weight class; dependent on the weight class data associated with the vehicle indicating a weight class, generating the at least a feature indicating the weight class; and dependent on the weight class data associated with the vehicle other than indicating a weight class, generating the at least a feature indicating an unknown weight class and vehicle type associated with the vehicle.
According to another embodiment the method provided includes generating at least a first feature of the plurality of features for a vehicle of the first plurality of vehicles including, defining a plurality of speed ranges and assigning a first label to each thereof; processing historical vehicle data for determining a speed-time ratio corresponding to each of the plurality of speed ranges, the speed-time ratio indicating a ratio of a total time travelled by the vehicle within a speed range of the plurality of speed ranges; and generating at least a first feature including a first label assigned to a speed range dependent on a speed-time ratio corresponding thereto. Generating the at least a first feature including a first label assigned to a speed range dependent on a speed-time ratio corresponding thereto includes generating at least a first feature including a first label assigned to a speed range associated with a highest speed-time ratio. Generating the at least a first feature of the plurality of features may include generating a Speed Profile 1st feature, Speed Profile 2nd feature, Speed Profile 3rd feature, and Speed Profile 4th feature, indicative of a first label assigned to a speed range corresponding to a highest speed-time ratio, a first label assigned to a speed range corresponding to a second highest speed-time ratio, a first label assigned to a speed range corresponding to a third highest speed-time ratio, and a first label assigned to a speed range corresponding to a fourth highest speed-time ratio, respectively.
According to another embodiment the method provided includes ranking each vehicle of the second plurality of vehicles according to evaluation data associated therewith. Descriptive data may include an indication of the ranking of each vehicle in the second plurality of vehicles. Evaluation data may include data indicative of one of vehicle fuel efficiency and vehicle safety.
According to another embodiment the method provided includes generating at least a first feature of the plurality of features for a vehicle of the first plurality of vehicles including processing LAT data and LON data of historical vehicle data associated with the vehicle, each of the LAT data and LON data indicative of a GPS position; mapping each GPS position to a plurality of cells of a geospatial hierarchy indexing system; determining a first cell of the plurality of cells to which most GPS positions are mapped thereto; and generating the at least a first feature indicative of the first cell. The geospatial hierarchy indexing system may include Geohash.
According to another embodiment the method provided includes using at least one machine learning technique for selecting the second plurality of vehicles from the first plurality of vehicles similar to the first vehicle may including, generating a high-dimensional vector for each vehicle of the second plurality of vehicles based on the plurality of features generated for each thereof; providing the high-dimensional vector associated with each vehicle of the first plurality of vehicles to a neural network; forming by the neural network a plurality of low-dimensional encoded vectors, each associated with a vehicle of the first plurality of vehicles; processing the plurality of low-dimensional encoded vectors associated with the first vehicle and each vehicle of the first plurality of vehicles by a distance function for determining a relative distance therebetween, the relative distance therebetween indicative of a similarity score to the first vehicle; and selecting a second plurality of n vehicles from the first plurality of vehicles based on vehicles from the first plurality of vehicles having one of n lowest similarity scores to the first vehicle. Generating a high-dimensional vector for each vehicle of the first plurality of vehicles based on the plurality of features generated for each thereof may include encoding the plurality of features associated with each vehicle of the plurality of vehicles using a one hot encoding technique for generating the high-dimensional vector. The neural network may include an autoencoder. The distance function may include one of cosine, Euclidean, Seuclidean and Minkowski.
Embodiments of the invention are now described by way of non-limiting example and are illustrated in the following figures in which like reference numbers indicate like features, and wherein:
Some embodiments described herein relate to a methods and systems for recommending a plurality of vehicles similar to a first vehicle based on telematic data indicative of vehicle operating information of vehicles from a fleet of vehicles. For example, for recommending one or more vehicles similar to a first vehicle in a fleet to a fleet manager.
In contrast with techniques implemented by other recommender systems, embodiments described herein relate to methods for recommending a plurality of vehicles similar to a first vehicle not based on user/operator data, 1:N information. (e.g., one user: many different vehicles), or data associated with any individual user/operator.
Recommending a plurality of vehicles similar to a first vehicle based many include using one or more machine learning techniques including feature creation based on, and/or derived from, vehicle operating data and vehicle manufacturing data associated with a plurality of vehicles.
Some embodiments described herein relate to a telematics vehicle recommender system implementing a machine learning model for predicting a subset of a plurality of vehicles similar to a particular vehicle. For example, the vehicle recommender system recommends vehicles similar to a particular vehicle based on a prediction thereby.
Some other embodiments described herein relate to an intelligent telematics system implementing a machine learning model for predicting a subset of a plurality of vehicles similar to a particular vehicle.
Shown in
Network configuration 300 includes an intelligent telematics system 317, comprising a remote system, such as, remote system 307 and a plurality of onboard monitoring devices, such monitoring devices 303. Remote system 307 and the plurality of onboard monitoring devices 303 are communicatively coupled with communication network 302 via communication links 318 and 306, respectively. A monitoring device collects and intermittently transmits vehicle operation information. In this example, monitoring devices 303 are on board vehicles 304 and each thereof transmits vehicle operation information of a corresponding vehicle 304. Remote system 307 and monitoring devices 303 are each configured to communicate with communication network 302, enabling communication therebetween.
In this example, remote system 307 comprises a processing resource 309, datastore 305, and a recommender system, such as, recommender system 310A. Alternatively, and/or additionally, remote system 307 comprises one or more of servers, datastores, gateways and other devices, configured in a centralized, distributed or other arrangement. For descriptive purposes, recommender system 310A is represented as a single component/subsystem of remote system 307 of telematics system 317. A person of ordinary skill will appreciate that steps performed by recommender system 310A described herein may be implemented by one or more devices of remote system 307.
Optionally, network configuration 300 includes a datastore, such as datastore 312, and data management system, such as data management system 315, communicatively coupled with communication network 302 via communication links 314 and 316, respectively. Datastore 312 and data management system 315 are each configured to communicate with communication network 302, enabling communication between each thereof and remote system 307 and monitoring devices 303.
According to an embodiment, a monitoring device collects and intermittently transmits vehicle operation information in the form of raw vehicle data. Raw vehicle data collected over a period of time forms historical vehicle data. For example, historical vehicle data may be formed by collecting raw vehicle data over 3 months, 6 months, 12 months, or other period of time.
According to an embodiment, a monitoring device communicates with a vehicle data/communication bus of a vehicle and/or sensors monitoring systems of vehicle. For example, monitoring device may comprise an interface operable to communicate with a data/communication bus of a vehicle. An exemplary vehicle data/communication bus may operate according to an established data bus protocol, such as the Controller Area Network bus (CAN bus) protocol that is widely used in the automotive industry for implementing a distributed communications network in a vehicle. A monitoring device may communicate via a direct connection, such as, electrically coupling, with a data/communication bus of a vehicle via a vehicle communication port, (e.g., diagnostic port/communication bus, OBDII port). Alternatively, a monitoring device may comprise a wireless communication interface for communicating with a wireless interface of the data/communication bus of vehicle. In other instances, a monitoring device may be an integral component of a communications network in a vehicle. For example, a monitoring device may be integrated in the same manner as an ECU on a CAN bus. Optionally, a monitoring device may communicate with other external devices/systems that detect operating conditions of the vehicle.
In general, a vehicle may include various control, monitoring and/or sensor modules for detecting vehicle operating conditions. Some specific and non-limiting examples include, an engine control unit (ECU), a suspension and stability control module, a headlamp control module, a windscreen wiper control module, an anti-lock braking system module, a transmission control module, and a braking module. A vehicle may have any combination of control, monitoring and/or sensor modules. A vehicle may include a data/communication bus accessible for monitoring vehicle operating information, provided by one or more vehicle control, monitoring and/or sensor modules. A vehicle data/communication bus may operate according to an established data bus protocol, such as the Controller Area Network bus (CAN-bus) protocol that is widely used in the automotive industry for implementing a distributed communications network. Specific and non-limiting examples of vehicle operation information provided by vehicle monitoring and/or sensor modules include, ignition state, fuel tank level, intake air temp, and engine RPM among others.
A monitoring device may comprise sensing modules configured for sensing and/or measuring a physical property that may indicate an operating condition of a vehicle and transmits raw vehicle data indicative thereof. For example, sensing modules may sense and/or speed, direction, rates of acceleration or deceleration, for instance, along the x-axis, y-axis, and/or z-axis, altitude, orientation, movement in the x, y, and/or z direction, ignition state, transmission and engine performance, among others. One of ordinary skill in the art will appreciate that these are but a few types of vehicle operating conditions that may be detected.
A monitoring device may comprise a sensing module for determining a vehicles position, (e.g., GPS coordinates). For instance, the sensing module may utilize Global Positioning System (GPS) technology (e.g., GPS receiver) for determining the geographic position (Lat/Long coordinates) of vehicle 304. Alternatively, the sensing module utilizes another global navigation satellite system (GNSS) technology, such as GLONASS or BeiDou. Alternatively, the sensing module may further utilize another kind of technology for determining geographic position. In addition, the sensing module may provide other vehicle operating information, such as speed.
Alternatively, vehicle position information may be provided according to another geographic coordinate system, such as, Universal Transverse Mercator, Military Grid Reference System, or United States National Grid.
A monitoring device may be configured to wirelessly communicate with a remote system of a telematics system and/or a vehicle monitoring system via a wireless communication link.
For instance, monitoring device 303 is coupled to communications network 302 via a wireless communication link 306 for communicating with one or more of remote network 307, datastore 312 and data management system 315.
In a first example, raw vehicle data is intermittently transmitted by the plurality of monitoring devices 303 to remote system 307 and is stored thereby, for example, in local datastore 305. Over a period of time, raw vehicle data collected and stored by remote system 307 forms historical data.
In a second example, remote system 307 forwards raw vehicle data received from the plurality of monitoring devices 303 to datastore 312 and/or data management system 315 via communication network 302. Over a period of time, raw vehicle data collected and stored thereby forms historical data. Datastore 312 and/or data management system 315 may transmit historical vehicle data to remote system 307 and is stored thereby, for example, in a local datastore 305, for use.
In a third example, monitoring devices 303 are configured to transmit raw vehicle data directly to datastore 312 and/or data management system 315 for storage thereby. Over a period of time, raw vehicle data collected and stored by datastore 312 and/or data management system 315 forms historical data. Datastore 312 and/or data management system 315 may transmit historical vehicle data to remote system 307 and is stored thereby, for example, in a local datastore 305, for use.
The plurality of vehicles 304 shown in
Shown in
Network configuration 301 includes a recommender system, such as recommender system 310B, datastore 312 and/or data management system 315, and communication network 302 communicatively coupled therewith via communication links 308, 314 and 316, respectively. Recommender system 310B, datastore 312, and data management system 315, and are each configured to communicate with communication network 302, enabling recommender system 310B to communicate with datastore 312 and data management system 315.
According to an embodiment, one or more telematics and/or vehicle monitoring system(s), may receive and store raw vehicle data transmitted thereto by one or more pluralities of monitoring devices. The one or more pluralities of monitoring devices may be coupled to vehicles of one or more vehicle fleets. Over a period of time, raw vehicle data stored by the one or more telematics and/or vehicle monitoring system(s) forms historical data.
For example, one or more telematics and/or vehicle monitoring system(s) stores historical vehicle data in datastore 312. Additionally, and/or alternatively, the one or more telematics and/or vehicle monitoring system(s) stores historical vehicle data in data management system 315. Recommender system 310B may receive historical vehicle data stored in datastore 321, data management system 315, or both, for processing.
According to an embodiment, recommender system 310A and/or remote system 307 is configured to interoperate with data management system 315 for obtaining data stored therein and managed thereby. According to another embodiment, recommender system 310B is configured to interoperate with data management system 315 for obtaining data stored therein and managed thereby.
An exemplary data management system manages and stores large volumes (e.g., big data) and multiple types of data. For example, a data management system may comprise a relational database, for storing historical vehicle data, or a portion thereof, collected by one or more telematics or vehicle monitoring systems. In some instances, a data management system may include a web service that enables interactive analysis of large datasets stored in a remote datastore. An example of such a data management system is a managed cloud data warehouse for performing analytics on data stored therein, such as BigQuery™ available from Google® of Mountain View, California, USA.
Block Diagram of Monitoring DeviceNow referring to
Shown in
Additionally, and/or alternatively, recommender system 310B may comprise a plurality of servers, datastores, processing resources, and/or other devices, configured in a centralized, distributed or other arrangement.
A telematics and/or vehicle monitoring system may assign a monitoring device, or a functional equivalent thereof, a unique identifier. In the present example, each monitoring device 303 is assigned a unique hardware ID (HWID). Furthermore, each monitoring device 304 is associated with a single vehicle 404. Correspondingly, each vehicle 304 may be identified by a telematics system, vehicle monitoring system, and/or recommender system 310 according to a HWID associated therewith.
In a first example, recommender system 310 receives historical vehicle data, such as historical vehicle data 330, associated with a plurality of vehicles from data management system 315 and stores historical vehicle data 330 in datastore 328 for processing, as shown.
Alternatively, and/or additionally, recommender system 310 receives historical vehicle data, such as historical vehicle data 330, associated with a plurality of vehicles from datastore 312 and stores historical vehicle data 330 in datastore 328 for processing, as shown.
Raw Vehicle DataRaw vehicle data 410 may include one or more of the following: vehicle information number (VIN) data 431, DateTime data 432, indicating a date and time an instance was logged by a monitoring device, vehicle speed data 433, latitude (LAT) data 434 and longitude (LONG) data 435, e.g., GPS position of the vehicle, vehicle ignition state data 436, indicating whether the vehicle ignition is on or off, revolutions per minute (RPM) data 437 indicating the RPM of the crankshaft of a vehicle, engine load data 438, odometer data 439, data indicative of gravitational forces exerted on a vehicle, for example, as measured by an accelerometer on the x, y, and z axes, including x-axis data 440, y-axis data 441 and z-axis data 442, and seatbelt data 443 indicative of whether a seatbelt(s) is in use, as shown.
Additionally, and/or alternatively, other data indicative of other vehicle operating information may be included in raw vehicle data 410.
Four raw vehicle data instances, 410-1, 410-2, 410.-3 and 410-4, are described in the above example for descriptive purposes. In practise, hundreds, thousands, millions or more raw vehicle data instances may be included in historical vehicle data.
According to an embodiment, historical vehicle data includes raw data instances relating to a plurality of vehicles that may be located in different areas, cities, countries, and operate to serve a variety of industries.
Historical vehicle data may include historical vehicle data related to thousands, tens of thousands, hundreds of thousands, millions, or another number of vehicles. In the present example, historical vehicle data 330 includes historical vehicle data related to 1 million vehicles.
Now referring to
Historical vehicle data 412 is shown organized according to date and time. For example, recommender system 310 may process DateTime data 432a of each instance of historical vehicle data 412 and organize the instances temporally.
In this example, historical vehicle data 412 includes 5000 raw vehicle data for instances 412 collected over approximately a 6 month period. For example, a first raw vehicle data instance 412-1 was collected on August 1st, 2019 as indicated by DateTime data 412-1C. A last raw vehicle data instance 412-5000 was collected on February 6th, 2020, as indicated by DateTime data 412-5000C.
Process 200Shown in
As described hereinabove, a recommender system may be a standalone system, e.g., recommender system 310B. Alternatively, a recommender system is integrated in an intelligent telematics system, e.g., recommender system 310A, and may be considered a subsystem or component thereof.
Alternatively, process 200 may be carried out by recommender system 310, recommender system 310A, an intelligent telematics system 307, by another system, a combination of other systems, subsystems, devices or other suitable means provided the operations described herein are performed. Process 200 may be automated, semi-automated and some blocks thereof may be manually performed.
Block 202Starting at block 202, process 200 includes obtaining first vehicle-related data associated with each vehicle of a first plurality of vehicles.
According to an embodiment, first vehicle-related data includes historical vehicle data and manufacturer data for each of the first plurality of vehicles included in the historical vehicle data.
Manufacturer data includes vehicle manufacturer specification information of a vehicle. Examples of vehicle manufacturer specification information include engine displacement, horsepower, vehicle type, make, model, year, weight class, tank capacity, and range, among others.
In the present example, recommender system 310B accesses pre-compiled VIN look up table(s) including manufacturer data associated with a vehicle’s VIN. Recommender system 310B may store VIN look up tables, for example in datastore 328. Alternatively, and/or additionally, a VIN look up table(s) is available on a remote server(s) accessible by recommender system 310B via communication network 302. Alternatively, and/or additionally manufacturer data is accessible by recommender system 310B in another manner.
For example, recommender system 310B accesses a VIN look up table stored in datastore 328 for obtaining manufacturer data of a vehicle corresponding to HWID 1651537948 and VIN 19ABA65576A061968, as indicated in raw vehicle data instance 412-1. Exemplary manufacturer data 414 obtained by recommender system 310B is shown in
Data provided in manufacturer data depends on whether a vehicle has a combustion engine, is an electric vehicle, or a hybrid vehicle. For instance, manufacturer data for a vehicle having a combustion engine will not include range data. For example, manufacturer data 414 corresponds to a vehicle with a combustion engine, and thus range data 459 is unknown. In an instance wherein a vehicle is an electric vehicle, manufacturer data corresponding thereto will not include tank capacity data.
Shown in
Recommender system 310B obtains first vehicle-related data for each vehicle of the plurality of vehicles in historical vehicle data 330.
Now referring to
Next, at block 204, process 200 includes generating a plurality of features based on and/or derived from first vehicle-related data for each vehicle of the plurality of vehicles.
According to an embodiment, each of the plurality of features for each vehicle of the first plurality of vehicles includes categorical variables, e.g., labels. In some instances, generating a plurality of features associated with a vehicle includes converting discrete variables into categorical variables, e.g., binning. Generating categorical features enables creation of a high-dimensional space which is described in further detail below.
According to an embodiment of the invention, one or more features of the plurality of features generated for a vehicle is not based and/or derived from data that may identify a specific vehicle. Some specific and non-limiting examples of data that may identify a specific vehicle include data indicating one of a make, a model, year and/or VIN of a vehicle.
According to yet another embodiment of the invention, one or more features of the plurality of features generated for a vehicle is not based on and/or derived from data provided explicitly by one or more operators of that vehicle.
However, a plurality of features generated for a vehicle may be based on or derived from implicit information provided by one or more of the operators of the vehicle. In other words, a feature may be based on observed behaviours of one or more of the operators of a vehicle. Some examples of observed behaviours include, average speed of a vehicle, total time and/or distance a vehicle travels. However, it is unknown whether the observed behaviours are indicative of a single operator or multiple operators.
According to yet another embodiment of the invention, a plurality of features generated for a vehicle is not based on evaluation data associated therewith. Evaluation data will be described in further detail below.
Feature: Speed ProfileAccording to an embodiment, a feature of the plurality of features for a vehicle of the plurality of vehicles may be based on and/or derived from speed data provided in historical vehicle data associated with a corresponding vehicle. An exemplary feature includes a speed profile feature.
A speed profile feature is indicative of a ratio of total time travelled by a vehicle within a particular speed range, also referred to herein as a speed-time ratio.
In the present example, recommender system 310B divides a typical speed range of vehicles, such as 110 km/h, into a plurality of contiguous speed ranges. Alternatively, a speed range other than 100 km/hr is divided into a plurality of contiguous speed ranges. Shown in table 502 of
In the present example, recommender system 310B processes historical vehicle data of each vehicle of the plurality of vehicles for determining a total time travelled by each thereof. For example, for a vehicle corresponding to HWID 1651537948, recommender system 310B may process speed data 433a, odometer data 439a, DateTime data 432a, and ignition state data 436a from a plurality of historical vehicle data instances 412 for determining total time travelled thereby. For instance, a total time travelled by a vehicle may be determined by summing the total time a vehicles ignition is on. In another instance, total time travelled for a vehicle may be determined by summing the total time a vehicles ignition is on while the vehicle speed is not 0 km/hr. Recommender system 310B generates total time data indicative of the total time travelled by each vehicle. Exemplary total time data 505 for each vehicle is shown in
Next, a total time each vehicle has travelled within each speed range indicated in column 502A of
Finally, for each vehicle of the plurality of vehicles, speed-time ratio data corresponding to each speed range is determined. For instance, for each vehicle, recommender system 310B processes speed range data corresponding to each speed range indicated in column 502A and total time data 505, for determining associated speed-time ratios. Recommender system 310B further associates each speed-time ratio, according to the speed range to which the speed-time ratio corresponds, to a SpeedRangeEncoded label in column 502B.
Shown in table 504 of
In another example, row 504-1M indicates a millionth vehicle associated with HWID 1753287803 has travelled a total time of 543 hours and has an approximate speed-time ratio of 0.14 corresponding to SpeedRangeEncoded label Ratio_10, shown in cell 504-1ME. For instance, the vehicle spent approximately 1.4% of its total travel time travelling at a speed faster than 10 km/hr and less than or equal to 20 km/hr.
Next, recommender system 310B generates four features for each vehicle of the plurality of vehicles derived from speed-time ratio data 503, indicated in table 504. The four features include, Speed_Profile_1st, Speed_Profile_2nd, Speed Profile 3rd and Speed Profile 4th indicative of SpeedRangeEncoded labels corresponding to the four highest speed-time ratios. For example, feature Speed_Profile_1 st indicates a label corresponding to the highest speed-time ratio for a vehicle and Speed Profile 4th indicates the label corresponding to the fourth highest time speed-time ratio for a vehicle.
Exemplary values of Speed_Profile_1st, Speed_Profile_2nd, Speed Profile 3rd and Speed Profile 4th features generated by recommender system 310B for each vehicle in the plurality of vehicles are shown in table 506 in
Alternatively, and/or additionally, recommender system 310B generates a single feature based on and/or derived from speed data for each vehicle of the plurality of vehicles. Such as, Top Speed Profile indicating a SpeedRangeEncoded label corresponding to the highest speed-time ratio of a vehicle.
Alternatively, a speed profile feature may be generated as a ratio of total distance travelled by a vehicle within each of a plurality of speed ranges, such as exemplary speed ranges in Speed Range column 502A.
Alternatively, speed-time ratios are determined according to other speed ranges, other than those described above. For instance, speed ranges may be smaller/larger, e.g., each speed range values have less/more than a 10 km/hr spread. In another instance, a speed ranges may not equal in size, e.g., a portion of speed ranges have a 10 km/hr spread and another portion of speed ranges have a 5 km/hr spread. Embodiments are not limited to the example provided above.
Feature: Slow_VehicleAccording to an embodiment, another feature of the plurality of features for a vehicle of the plurality of vehicles based on and/or derived from speed data provided in historical vehicle data associated with a corresponding vehicle includes a Slow_Vehicle feature.
For instance, speed data provided in historical vehicle data for each vehicle of the plurality of vehicles is processed, and dependent on a vehicle meeting and/or exceeding a predetermined speed, the value of an associated Slow_Vehicle feature is assigned YES or NO.
For example, a predetermined speed is 100 km/h. Alternatively, the predetermined speed is other than 100 km/hr. Recommender system 310B processes speed data provided in historical vehicle data related to each vehicle of the plurality of vehicles, for determining whether a vehicle has met or exceeded 100 km/hr. Should recommender system 310B determine a vehicle has met or exceeded 100 km/hr, a Slow_Vehicle feature is generated having a NO value. However, should recommender system 310B determine a vehicle has not exceeded 100 km/hr, a Slow_Vehicle feature is generated having a YES value.
Shown in
In another example, Slow_Vehicle feature generated for a vehicle associated with HWID 1653381266 has a value of YES, as indicated in row 604-2.
Feature: Vehicle _TypeAccording to an embodiment, a feature of the plurality of features for a vehicle of the plurality of vehicles may be based on and/or derived from a vehicle type of a corresponding vehicle. An exemplary feature includes a Vehicle_Type feature.
Shown in
Table 608 of
According to an embodiment, a feature of the plurality of features for a vehicle of the plurality of vehicles may be based on and/or derived from a total amount of time a corresponding vehicle has travelled. An exemplary feature includes a TripHrsEncoded feature.
For example, recommender system 310B divides a time range, for example 470 hours, into a plurality of contiguous time ranges, such as exemplary time ranges shown in Total Time Travelled Range column 610-A in table 610 of
In the present example, recommender system 310B processes historical vehicle data of each vehicle of the plurality of vehicles for determining a total time travelled by each thereof. For example, for a vehicle corresponding to HWID 1651537948, recommender system 310B may process speed data 433a, odometer data 439a, DateTime data 432a, and ignition state data 436a from a plurality of historical vehicle data instances 412 for determining total time travelled thereby. For instance, a total time travelled by a vehicle may be determined by summing the total time a vehicles ignition is on. In another instance, total time travelled for a vehicle may be determined by summing the total time a vehicles ignition is on while the vehicle speed is not 0 km/hr. Recommender system 310B generates time data (not shown) indicative of the total time travelled by each vehicle.
Next, recommender system 310B processes time data associated with each vehicle for determining which Total Time Travelled Range defined in 610-A the time data corresponds and generates a TripHrsEncoded feature having a value of a TripHrsLabel label associated therewith.
Table 612 in
According to an embodiment, a feature of the plurality of features for a vehicle of the plurality of vehicles may be based on and/or derived from a vehicles engine displacement. An exemplary feature includes a Displacement_Encoded feature.
For example, recommender system 310B divides a range of typical vehicle engine displacement values for vehicles, into a plurality of contiguous displacement ranges. In the present example, a range of typical vehicle engine displacement values for vehicles includes 1 L to 15 L. For example, Table 614 in
Next, recommender system 310B assigns each displacement range in column 614-A a label, as shown in Displacement Label column 614-B. For instance, displacement range 614-2A is defined as a displacement greater than or equal to 5 and less than 7 and is assigned label Displacement_9 614-3B.
In the present example, recommender system 310B processes displacement data of manufacturer data for each vehicle of the plurality of vehicles for determining an engine displacement thereof. For example, displacement data 351 of manufacturing data 614 for a vehicle corresponding to HWID 1651537948 is indicative of a displacement of 5.7 L.
Next, for each vehicle, recommender system 310B determines within which Displacement Range of column 614-A the displacement of a vehicle corresponds as well as the associated Displacement Label of column 614-B. Next, recommender system 310B generates a Displacement_Encoded feature having a value of a Displacement Label corresponding thereto.
Table 616 in
In the above example, a range of typical vehicle engine displacement values for vehicles and displacement ranges are described for descriptive purposes only. In practise, however, a range of typical vehicle engine displacement values for vehicles may include another range. Furthermore, a range of typical vehicle engine displacement values for vehicles may be divided in another manner resulting in other contiguous displacement ranges. Embodiments are not limited to the examples provided herein.
Feature: Hp_EncodedAccording to an embodiment, a feature of the plurality of features for a vehicle of the plurality of vehicles may be based on and/or derived from a vehicles engine horsepower. As exemplary feature includes a HP_Encoded feature.
For example, recommender system 310B divides a range of typical vehicle engine horsepower values of vehicles into a plurality of contiguous horsepower ranges. In the present example, a range of typical vehicle engine horsepower values includes 100 hp to 450 hp and above. For example, table 702 of
Next, recommender system 310B assigns each horsepower range in column 702-A a label, as shown in HP_RangeLabel column 702-B. For example, horsepower range in 702-5A defined as a horsepower greater than 300 and less than or equal to 350 is assigned label HP_350 702-5B, as shown.
In the present example, recommender system 310B processes horsepower data of manufacturer data for each vehicle of the plurality of vehicles for determining an engine horsepower thereof. For example, displacement data 451 of manufacturing data 414 for a vehicle corresponding to HWID 1651537948 is indicative of a horsepower of 370.
Next, for each vehicle, recommender system 310B determines within which HP Range the vehicle engine horsepower falls and generates a HP_Encoded feature having a value of a HP_RangeLabel label corresponding thereto.
Table 704 in
In the above example, a range of typical horsepower values for vehicles and horsepower ranges are described for descriptive purposes only. In practise, however, a range of typical vehicle horsepower values for vehicles may include another range. Furthermore, a range of typical horsepower values for vehicles may be divided in another manner resulting in other contiguous horsepower ranges. Embodiments are not limited to the examples provided herein.
Feature: WeightclassadjAccording to an embodiment, a feature of the plurality of features for a vehicle of the plurality of vehicles may be based on and/or derived from a weight class of a vehicle. An exemplary feature includes a WeightClassADJ (weight class adjusted) feature.
Shown in
In an instance wherein a weight class of a vehicle is known, e.g., weight class data is available in manufacturers data, a value of a WeightClassADJ feature includes the value of weight class data. However, if a weight class of a vehicle is unknown, e.g., weight class data is not available in manufacturers data, a value of a WeightClassADJ feature is dependent on the vehicle type of the vehicle.
Referring now to
Table 806 of
In the present example, for each vehicle of the plurality of vehicles, recommender system 310B processes vehicle type data and weight class data of manufacturing data associated therewith and generates a WeightClass_ADJ feature based thereon.
Table 808 of
In a first example, recommender system 310B processes vehicle type data indicating MiniVan vehicle type and weight class data indicating unknown for a vehicle associated with HWID 1650969255. Recommender system 310B then generates a WeightClass_ADJ feature having a value of minivan_weightclass_unknown, as shown in row 808-3.
In another example, recommender system 310B processes vehicle type data indicating Truck vehicle type and weight class data indicating Class 5 (16,001 - 19,500 lbs), for a vehicle associated with HWID 1650969255. Recommender system 310B then generates a WeightClass_ADJ feature having a value of class 5 (16,001 - 19,500 lbs), as shown in row 808-1M.
Feature: Geo_SignificantAccording to an embodiment, a feature of the plurality of features for a vehicle of the plurality of vehicles may be based on and/or derived from a cell of a geospatial indexing system visited by the vehicle. An exemplary feature includes a Geo_significant feature.
A Geo_significant feature may be generated by processing historical vehicle data associated with a vehicle for determining a cell of a geospatial indexing system that has been visited the most by the vehicle, compared to other cells.
In the present example, recommender system 310B processes historical vehicle data associated with each vehicle of the plurality of vehicles for determining GPS positions visited thereby. Next, recommender system 310B associates each GPS position with a cell of geospatial indexing system, such as a geohash of precision 2, of the geohash geospatial indexing system. A person of skill will appreciate methods for mapping a GPS point to a geohash. Finally, recommender system 310B determines a geohash of precision 2 associated with the most GPS positions for each vehicle.
Shown in
Alternatively, GPS positions of a vehicle may be associated with a geohash of a precision other than 2.
Alternatively, a cell of another geospatial indexing system is associated with the most GPS positions for generating a Geo_significant feature. A specific and non-limiting example includes, a cell in the form of a hexagon, of the hexagonal hierarchical geospatial indexing system H3.
Optionally, process 200 includes preparing features which may include various functions such as removing outliers (e.g., unlikely speed values), duplicate values, and the like.
Derived features may be based on a of raw vehicle data instance or subset of raw vehicle data instances, but include a value not found therein. Instead, a value of a derived feature may be derived from the instance or subset, such as obtained through performing one or more computations on the instance or subset. Specific and non-limiting examples of derived features include average speed and total time travelled by a vehicle. Optionally, a derived feature may describe a first derived feature forming a second derivative of the first derived feature. Additional derivatives of features may also be possible.
The features may additionally or alternatively be derived from the performance of one or more statistical computations on a subset of raw vehicle data. For instance, a derived feature that may be employed may include standard deviation, mean, and median of values found in a subset of raw vehicle data.
Additionally, and/or alternatively, features may be derived from outputs of a trained machine learning (ML) model that categorizes and/or predicts patterns found in historical vehicle data of the plurality of vehicles. For example, first features may be derived from the historical vehicle data of the plurality of vehicles and processed by a trained ML model for categorizing and/or predicting a vehicles usage pattern. The category and/or prediction of a vehicles usage pattern may then be used to derive a feature of the plurality of features for each of the plurality of vehicles.
According to an embodiment, generating a high-dimensional vector based on the plurality of features associated with a vehicle includes encoding each of the plurality of features according to a one hot encoding technique. One-hot encoding converts categorical data into integer data, e.g., binary format. This technique also creates additional features based on the number of unique values in the categorical feature. For instance, every unique value in a category will be added as a feature.
For example, Vehicle_Type feature is a categorical feature. As discussed hereinabove, a Vehicle_Type feature has 6 unique values including, Passenger Car, MiniVan, Truck, other, Bus and Limo, as shown in list 606 of
For example, table 1010 of
One-hot encoding each feature in row 1010-2 produces high-dimensional vectors, as shown in columns of table 1014 of
Next, at block 206, process 200 includes generating a high-dimensional vector (e.g., a high-dimensional space) for each vehicle of the plurality of vehicles based on the plurality of features generated for each thereof.
Shown in
Block diagram 1000 includes table 1002 illustrating exemplary feature vectors 1004, associated with each vehicle of the plurality of vehicles. Each feature vector 1004 includes 11 features, F1 to F11, as shown. For example, Features F1 to F11 includes a plurality of categorical features generated for each vehicle of the plurality of vehicles as discussed hereinabove.
At block 1012, exemplary feature vectors 1004 for each vehicle of the plurality of vehicles is one-hot
For example, recommender 310B one hot encodes features 1004 and forms high-dimensional vectors 1008 as shown in table 1006.
For example, features F1 to F11 of feature vector 1004-1 corresponding to a vehicle associated with HWID 1651537948 is transformed into high-dimensional vector 1008-1, using a one-hot encoding technique. In this instance, exemplary feature vector 1004-1 has 11 features and is transformed into high-dimensional vector 1008-1 having, for example, 105 dimensions.
One-Hot Encoding prepares feature information to be understood by a machine learning model. For instance, strings are converted into numbers. Furthermore, one-hot encoding categorical features creates a high-dimensional space which may enable more relationships between categorical variables to emerge during training of a machine learning algorithm. Training of a machine learning algorithm is described in further detail below.
Block 208Next, at block 208, process 200 includes performing dimensionality reduction for reducing the dimension of the high-dimensional vectors for forming low dimension encoded features.
According to an embodiment, dimensionality reduction may be performed by a machine learning model in the form of a neural network, such as, an autoencoder.
An autoencoder may be trained for identifying non-linear relationships between high-dimensional vectors, such as high-dimensional vectors 1008, and reducing the meaningful information therein down to a much smaller number of encoded features.
Shown in
An encoder, such as encoder 1101 comprises visible node layer, such as visible node layer 1102, having visible nodes for receiving input. For example, visible nodes 1102-1 to 1102-105 of visible node layer 1102 receives input. An encoder also includes one or more hidden layers, such as hidden layer 1104.
Input received by visible nodes of an encoder is mapped thereby into a code, also referred to herein as an embedding. Neural network/autoencoder embeddings are low-dimensional, learned, continuous vector representations, (i.e., encoded features) of discrete variables, (e.g., binary numbers). In the present example, encoded features are provided at the embedding layer, such as embedding layer 106.
A decoder, such as decoder 1103, comprises one or more hidden layers, such as hidden layer 1108, and visible node layer, such as visible node layer 1110 for providing output. For example, visible nodes 1110-1 to 1110-105 of visible node layer 1110 provides output.
Encoded features provided at the embedding layer is mapped by the decoder to a reconstruction of the original input. The original input, for example, is the input received at visible node layer of the encoder. In other words, an autoencoder can be trained to copy its input to its output.
Prior to training a neural network/autoencoder, hyperparameters, e.g., variables, that determine the network structure (e.g., number of hidden units) and how the network is trained (e.g., learning rate) are selected. Some specific and non-limiting examples of hyperparameters include, number of hidden layers, number of nodes per hidden layer, regularization parameter, dropout parameter and learning rate. Hyperparameters are well known and a persons of skill in the art will appreciate that hyperparameters are uniquely tuned for each neural network/autoencoder.
In the present example, recommender 310B may select hyperparameters for autoencoder 1100. Next, recommender 310B provides high-dimensional vectors 1008, each having 105 dimensions, to visible nodes 1102 of encoder 1101. In this example, encoder 1101 maps each high-dimensional vector 1008 to 12 encoded features, e.g., an encoded vector, at embedding layer 1106. Recommender 310B may store encoded vectors, for example, in a local datastore 328. Exemplary embedded vectors 1112 provided at embedding layer 1106 are shown in
Referring again to
For example, high-dimensional vector 1008-1 corresponds to a vehicle associated with a monitoring device having a HWID 1651537948. Encoded vector 1112-1 corresponds to high-dimensional vector 1008-1. Therefore, encoded vector 1112-1 corresponds to a vehicle associated with a monitoring device having a HWID 1651537948, as shown in
In the present example, autoencoder 1100 encodes a high-dimensional vector 1008 having 105 dimensions to an encoded vector 1112 having only 12 dimensions. Each encoded vector 112 is a learned, continuous vector representation of a corresponding high-dimensional vector 1008 comprising discrete numbers, as shown in
The example above describes an autoencoder having a structure that includes an encoder having 105 visible nodes and one internal layer, an embedding layer comprising 12 nodes, and a decoder having 105 visible nodes and one internal layer. However, the structure of an autoencoder may differ from the example described above. For example, an encoder and/or decoder may have more than, or less than, 105 visible nodes and each may have more than one internal layer. Also, an embedding layer may include more than, or less than, 12 nodes. Embodiments should not be limited to embodiments described herein
Alternatively, another machine learning technique is implemented to perform dimensionality reduction. Specific and non-limiting examples include Generalized Discriminant Analysis, Independent Component Analysis and Linear Discriminant Analysis.
Further alternatively, another technique is implemented to perform dimensionality reduction. For example, principal component analysis (PCA), t-distributed stochastic neighbor (t-SNE) or another dimensionality reduction technique.
Block 210Next at block 210, process 200 includes validating the output of the machine learning model. Validating includes measuring the quality of the output provided by the machine learning model.
Measuring the quality of the output of an autoencoder may include generating evaluation metrics indicating an error between input provided to the autoencoder and output therefrom. Specific and non-limiting examples of evaluation metrics include, accuracy, mean squared error, and reconstruction error. If evaluation metrics are determined to be within acceptable parameters, process 200 proceeds to block 212, other wise process 200 proceeds to 208.
In the present example, recommender 310B stores output provided at visible layer 1110 of decoder 1103 corresponding to each of high-dimensional vectors 1008. Next, recommender 310B processes high-dimensional vectors 1008 and corresponding output for generating evaluation metrics indicating an error between high-dimensional vectors 1008 and corresponding output. For example, recommender 310B generates evaluation metrics in the form of one or more of, accuracy, mean squared error, and reconstruction error, corresponding to high-dimensional vectors 1008 and corresponding output.
Alternatively, recommender 310B stores output provided at visible layer 1110 of decoder 1103 corresponding to a first portion of high-dimensional vectors 1008, for example, 2000 out of the 1 million high-dimensional vectors 1008. Next, recommender 310B processes the first portion of high-dimensional vectors 1008 and corresponding output for generating evaluation metrics indicating an error between the first portion of high-dimensional vectors 1008 and corresponding output. For example, recommender 310B generates evaluation metrics in the form of one or more of, accuracy, mean squared error, and reconstruction error, corresponding to the first portion of high-dimensional vectors 1008 and corresponding output.
A specific and non-limiting example of an evaluation metric within acceptable parameters includes an accuracy greater than 97%. In the present example, recommender 310B generates the accuracy of the output of autoencoder 1100 to be 98%, which is greater than 97%, and thus within is acceptable parameters. As such, process 200 proceeds to block 212.
Evaluation metrics that are not within acceptable parameters, indicates that the machine learning model requires an adjustment. For example, recommender 310B generates the accuracy of the output of autoencoder 1100 to be 40%, which is less than 97%, and thus is not within acceptable parameters. To improve accuracy of the output process 200 proceeds to one of blocks 204 and 208.
Persons skilled in the art appreciate the various techniques implemented for measuring the quality of output provided by a machine learning model and acceptable values of the evaluation metrics for indicating the quality of the output thereby.
At block 204, the present plurality of features based on and/or derived from first vehicle-related data are modified. For example, recommender 310 may add one or more new features to, and/or remove one or more features from, the present plurality of features.
At block 208, hyperparameters of the machine learning model are modified/tuned prior to reducing the dimensions of high-dimensional vectors. For example, recommender 310B modifies hyperparameters of autoencoder 1110. Specific and non-limiting examples of hyperparameters that may be modified by recommender 310B include, number of hidden layers, number of nodes per hidden layer, regularization parameter, dropout parameter and learning rate. Hyperparameters are well known and a persons of skill in the art will appreciate that hyperparameters are uniquely tuned for each neural network/autoencoder.
For each loop of one of blocks 208 and 210 and blocks 204, 206, 208 and 210, nodes within a machine learning model/neural network/autoencoder may be updated/modified. Furthermore, encoded vectors of each embedding are also updated. Training and validation of the machine learning model continues until evaluation metrics are within acceptable parameters.
Alternatively, other techniques for measuring the quality of the output of the autoencoder are implemented.
Block 212At block 212, process 200 comprises determining a similarity score between a first vehicle of the first plurality of vehicles and each vehicle of the first plurality of vehicles.
According to an embodiment, determining a similarity score between a first vehicle of the first plurality of vehicles and each vehicle of the first plurality of vehicles includes determining a relative distance between encoded vectors associated with the first vehicle and each thereof according to a distance function. An output of the distance function may be considered a similarity score. A small similarity score indicates two vehicles are quite similar, whereas, a large similarity score indicates two vehicles are less similar.
For example, a distance function in the form of cosine is implemented by recommender system 310B for determining a relative distance between encoded features associated with the first vehicle and encoded features associated with each vehicle of the first plurality of vehicles. Alternatively, another distance function is implemented, for example, one of Euclidean, Seuclidean and Minkowski distance functions.
Relative distances between a plurality encoded features associated with a first vehicle of the plurality of vehicles and encoded features associated with each of the first plurality of vehicles provides an indication of which of the first plurality of vehicles are most similar to the first vehicle.
Shown in
For example, a similarity score (i.e., relative distance between encoded features) corresponding to an exemplary first vehicle associated with HWID 1653287803 and a vehicle of the first plurality of vehicles associated with HWID 1653381266 is represented by D2,4. In another example, a similarity score (i.e., relative distance between encoded features) corresponding to the exemplary first vehicle associated with HWID 1651537948 and a vehicle of the first plurality of vehicles associated with HWID 1753287803 is represented by D1,1M, (i.e., D1,1,000,000.) Vehicles associated with a same HWID have a similarity score of 0 as they are one and the same vehicle.
Block 214Next, in block 214, process 200 selects a subset of n-vehicles from the first plurality of vehicles for forming a second plurality of vehicles. The second plurality of vehicles are most similar to the first vehicle of the first plurality of vehicles based on relative distance between encoded features corresponding thereto.
In the present example, for each vehicle of the first plurality of vehicles, recommender system 310B selects n vehicles that are most similar thereto. In a first example, recommender 310B selects n = 10 vehicles from the first plurality of vehicles most similar to a first vehicle associated with HWID 1651537948. Recommender 310B processes matrix 1204 and selects 10 vehicles from the first plurality of vehicles having the lowest similarity scores with another first vehicle associated with HWID 1651537948. Table 1200 of
In this example, encoded vectors corresponding to the vehicles associated with HWIDs in column 1206-A had the smallest relative distance between the encoded vector associated with HWID 1651537948 amongst the 1 million encoded vectors 1112.
Recommender system 310B determines 10 vehicles most similar to each vehicle in the first plurality of vehicles in a same manner as described above, as shown in table 1206. HWIDs in each column of table 1206 are not organized any particular order.
The second plurality of vehicles described in the example above includes 10 vehicles for descriptive purposes only. In practise, n may be hundreds, thousands, or more vehicles.
Next, process 200 may proceed to one of block 215 or block 216.
Block 215At block 215, process 200 includes providing descriptive data indicating a make, model, and year of each vehicle in the subset of n-vehicles.
For example, a first vehicle associated with HWID 1651537948 is a vehicle in a first vehicle fleet managed by a first fleet manager. In this example, recommender 310 provides descriptive data indicative of the 10 vehicles most similar to this vehicle amongst the first plurality of vehicles which includes 1 million vehicles. In this instance, the second plurality of vehicles corresponds to vehicles associated with HWIDs in column 1206-A. Shown in
At the next block 216, process 200 includes ranking each vehicle in the second plurality of vehicles according to evaluation data associated with each thereof.
For instance, evaluation data may be in the form of fuel efficiency data indicative of fuel efficiency of a vehicle.
Table 1302 of
In the present example, recommender system 310B processes fuel efficiency data of each of the 10 vehicles most similar to the vehicle associated with HWID 16515379481 and ranks the 10 vehicles from highest fuel efficiency to lowest fuel efficiency. Table 1304 of
Alternatively, evaluation data may be indicative of another parameter associated with a vehicle. For example, evaluation data may include data indicating a vehicle safety rating, Environmental Protection Agency (EPA) rate (applicable to electric vehicles), or other evaluation data.
Block 218Finally, at block 218, process 200 includes providing descriptive data indicating a make, model, year and ranking of each vehicle in the second plurality of vehicles. Optionally, descriptive data includes evaluation data.
For example, a first vehicle associated with HWID 1651537948 is a vehicle in a first vehicle fleet managed by a first fleet manager. In this example, recommender 310 provides descriptive data indicative of the 10 vehicles most similar to this vehicle amongst the plurality of vehicles, which, in this example, includes 1 million vehicles. In this instance, the second plurality of vehicles corresponds to vehicles associated with HWIDs in column 1206-A. Shown in
It should be understood that aspects are described herein with reference to certain illustrative embodiments. The illustrative embodiments described herein are not necessarily intended to show all aspects, but rather are used to describe a few illustrative embodiments. Thus, aspects described herein are not intended to be construed narrowly in view of the illustrative embodiments. In addition, it should be understood that certain features disclosed herein might be used alone or in any suitable combination with other features.
Technical EffectsEmbodiments described herein provide one or more technical effects and improvements to a vehicle telematic system/fleet management system and underlying components thereof. For example, an ability to provide a recommendation of vehicles similar to a first vehicle without access to, or use of, explicit vehicle operator data, creation of vehicle operator profiles, and/or grouping of like operators or like vehicles; an ability to provide a recommendation of vehicles similar to a first vehicle based on vehicle operating information related to the usage of vehicles and not preferences and/or or behaviours of the vehicle operators; an ability to provide a recommendation of vehicles similar to a first vehicle based on vehicle telematic data.
It should be understood that aspects are described herein with reference to certain illustrative embodiments. The illustrative embodiments described herein are not necessarily intended to show all aspects, but rather are used to describe a few illustrative embodiments. Thus, aspects described herein are not intended to be construed narrowly in view of the illustrative embodiments. In addition, it should be understood that certain features disclosed herein might be used alone or in any suitable combination with other features.
Claims
1. A method for recommending a second plurality of vehicles similar to a first vehicle of a first plurality of vehicles, the method comprising:
- for each vehicle of the first plurality of vehicles: collecting raw vehicle data indicative of vehicle operation data from a monitoring device of the vehicle, and generating a plurality of features based on and/or derived from at least one of: historical vehicle data formed from the raw vehicle data collected over a period of time, and manufacturer data associated with the vehicle;
- using at least one machine learning technique for selecting the second plurality of vehicles from the first plurality of vehicles similar to the first vehicle; and
- providing descriptive data for each vehicle of the second plurality of vehicles.
2. The method of claim 1, wherein the raw vehicle data collected from the monitoring devices comprises at least one of: speed data of the vehicle, acceleration data of the vehicle, data indicating a direction of travel of the vehicle, altitude data of the vehicle, orientation data of the vehicle, movement data of the vehicle in at least one direction, ignition state data of the vehicle, transmission performance data of the vehicle, engine performance data of the vehicle, a latitude of the vehicle, a longitude of the vehicle, position data of the vehicle, vehicle information number (VIN) data of the vehicle, tachometric data of the vehicle in revolutions per minute (RPM), engine load data of the vehicle, odometer data of the vehicle, seatbelt data of the vehicle, and data indicating a date and a time a data instance was logged by the monitoring device.
3. The method of claim 1 wherein the manufacturer data includes data indicative of vehicle manufacturer specification information.
4. The method of claim 1, further comprising:
- transmitting the raw vehicle data from the monitoring device to at least one of a datastore and a data management system;
- storing the raw vehicle data in the datastore and/or the data management system;
- forming the historical data from the raw vehicle data; and
- receiving the historical data from at least one of the datastore and the data management system.
5. The method of claim 1, wherein the manufacturer data includes data other than data indicative of the make, the model, and the manufacture year of the vehicle.
6. The method of claim 1, wherein the plurality of features includes categorical features.
7. The method of claim 1, wherein generating at least a first feature of the plurality of features for at least one vehicle of the first plurality of vehicles includes:
- defining a plurality of speed ranges and assigning a first label to each range thereof;
- processing the historical vehicle data for determining a speed-time ratio corresponding to each range of the plurality of speed ranges, the speed-time ratio indicating a ratio of a total time travelled by the vehicle within a speed range of the plurality of speed ranges; and
- generating at least the first feature including a first label assigned to a speed range dependent on a speed-time ratio corresponding thereto.
8. The method of claim 7, wherein generating at least the first feature including the first label assigned to a speed range dependent on a speed-time ratio corresponding thereto includes generating at least the first feature including the first label assigned to a speed range associated with a highest speed-time ratio.
9. The method of claim 7, wherein generating at least the first feature of the plurality of features includes generating a Speed Profile first feature including a first label assigned to a speed range corresponding to a highest speed-time ratio, a Speed Profile second feature including a first label assigned to a speed range corresponding to a second highest speed-time ratio, a Speed Profile third feature including a first label assigned to a speed range corresponding to a third highest speed-time ratio, and a Speed Profile fourth feature including a first label assigned to a speed range corresponding to a fourth highest speed-time ratio.
10. The method of claim 1, wherein generating at least the first feature of the plurality of features for at least one vehicle of the first plurality of vehicles includes:
- processing speed data of the historical vehicle data for determining whether a vehicle has met and/or exceeded a predetermined speed; and
- generating the at least the first feature indicating whether the vehicle has met and/or exceeded a maximum speed.
11. The method of claim 1, wherein generating at least the first feature of the plurality of features for at least one vehicle of the first plurality of vehicles includes generating the first feature indicative of a vehicle type indicated in the manufacturer data associated with the vehicle.
12. The method of claim 1, wherein generating at least the first feature of the plurality of features for at least one vehicle of the first plurality of vehicles includes:
- defining a plurality of total time travelled ranges and assigning a second label to each range thereof;
- processing the historical vehicle data for determining a total time travelled by a vehicle; and
- generating at least the first feature including a second label assigned to a total time travelled range corresponding to the total time travelled by the vehicle.
13. The method of claim 1, wherein generating at least the first feature of the plurality of features for at least one vehicle of the first plurality of vehicles includes:
- defining a plurality of displacement ranges and assigning a third label to each range thereof;
- processing the manufacturer data for determining a displacement associated with the vehicle; and
- generating at least the first feature including a third label assigned to a displacement range corresponding to the displacement associated with the vehicle.
14. The method of claim 1, wherein generating at least the first feature of the plurality of features for at least one vehicle of the first plurality of vehicles includes:
- defining a plurality of horsepower ranges and assigning a fourth label to each range thereof;
- processing the manufacturer data for determining a horsepower of the vehicle; and
- generating at least the first feature including a fourth label assigned to a horsepower range corresponding to the horsepower associated with the vehicle.
15. The method of claim 1, wherein generating at least the first feature of the plurality of features for at least one vehicle of the first plurality of vehicles includes:
- processing the manufacturing data associated with the vehicle for determining whether weight class data indicates a weight class;
- dependent on the weight class data associated with the vehicle indicating the weight class, generating the at least the feature indicating the weight class; and
- dependent on the weight class data associated with the vehicle other than indicating the weight class, generating the at least the feature indicating an unknown weight class and a vehicle type associated with the vehicle.
16. The method of claim 1, wherein generating at least the first feature of the plurality of features for at least one vehicle of the first plurality of vehicles includes,
- processing latitude data and longitude data of the historical vehicle data associated with the vehicle, each of the latitude data and longitude data indicative of a global positioning system (GPS) position;
- mapping each GPS position to a plurality of cells of a geospatial hierarchy indexing system;
- determining a first cell of the plurality of cells to which most GPS positions are mapped; and
- generating at least the first feature indicative of the first cell.
17. The method of claim 16, wherein the geospatial hierarchy indexing system includes Geohash.
18. The method of claim 1, wherein using at least one machine learning technique for selecting the second plurality of vehicles from the first plurality of vehicles similar to the first vehicle includes:
- generating a high-dimensional vector for each vehicle of the second plurality of vehicles based on the plurality of features generated for each thereof;
- providing the high-dimensional vector associated with each vehicle of the first plurality of vehicles to a neural network;
- forming by the neural network a plurality of low-dimensional encoded vectors, each associated with a vehicle of the first plurality of vehicles;
- processing the plurality of low-dimensional encoded vectors associated with the first vehicle and each vehicle of the first plurality of vehicles by a distance function for determining a relative distance therebetween, the relative distance therebetween indicative of a similarity score to the first vehicle; and
- selecting a second plurality of n vehicles from the first plurality of vehicles based on vehicles from the first plurality of vehicles having one of n lowest similarity scores to the first vehicle.
19. The method of claim 18, wherein generating the high-dimensional vector for each vehicle of the second plurality of vehicles based on the plurality of features generated for each thereof includes encoding the plurality of features associated with each vehicle of the plurality of vehicles using a one hot encoding technique for generating the high-dimensional vector.
20. The method of claim 18, wherein the neural network includes an autoencoder.
21. The method of claim 18, wherein the distance function includes one of cosine, Euclidean, Seuclidean and Minkowski.
22. The method according to claim 1, wherein providing descriptive data includes providing descriptive data indicative of at least one of a make, a model, a manufacture year, and a vehicle identification number (VIN) for each vehicle of the second plurality of vehicles.
23. The method of claim 1, further including ranking each vehicle of the second plurality of vehicles according to evaluation data associated therewith.
24. The method of claim 23, wherein the descriptive data includes an indication of the ranking of each vehicle in the second plurality of vehicles.
25. The method of claim 23, wherein the evaluation data includes data indicative of one of vehicle fuel efficiency and vehicle safety.
Type: Application
Filed: Oct 24, 2022
Publication Date: Feb 9, 2023
Applicant: Geotab Inc. (Oakville)
Inventor: Alessandro Bersia (Burlington)
Application Number: 17/971,985