The present disclosure relates generally to onboard vehicle devices for providing information to an occupant of a motor vehicle. More specifically, aspects of this disclosure relate to wireless-enabled audio and visual systems for browsing content from a distributed computer network in vehicular environments.
Current production motor vehicles, such as the modern-day automobile, are originally equipped with various types of onboard electronic devices to output information to vehicle occupants. Many modern-day automobiles, for example, are outfitted with an instrument cluster that communicates information to the driver regarding such things as vehicle speed, engine speed, fuel level, engine conditions, and other vehicle-related data. In addition to the instrument cluster, most automobiles also include as standard equipment an onboard audio system that operates alone or in conjunction with peripheral hardware to play music, output navigation instructions, receive voice commands, and/or provide other audio related functionality. Some motor vehicles are now equipped with a graphical user interface, such as a touchscreen video display panel, that is positioned in a center stack of the passenger compartment and is operable to receive user inputs and display image, text, and video-based content. In-vehicle audiovisual (AV) hardware that delivers entertainment and informational content is collectively referred to in the art as an integrated “infotainment” system.
Onboard vehicle devices may output content that is based, for example, on data received from a local device, such as a GPS navigation receiver or digital audio file player, as well as data received from a remote device, such as a radio transmitter or satellite broadcast service. Some devices are even able to receive data from a distributed computer network—the most ubiquitous being the global Internet—over a wireless fidelity (WiFi) system, cellular network, or other wireless data exchange technology. Content that is output based on data received over a wireless network may, for example, include video (e.g., streaming television, movies, video clips, etc.), audio (e.g., Internet radio, podcasts, audio books, etc.), print media, social media, mobile phone media, and innumerable other types of information. Many vehicles now support seamless integration of a smartphone with the vehicles' infotainment systems, which allows occupants to access email, the World Wide Web, and, of course, use as a phone.
There is an ever-increasing volume of media, such as music, books, videos, news, and other content, that can now be accessed from the Internet by onboard vehicle electronic devices. Existing internet service providers (ISP) are capable of presenting, in real-time, the details of tens of millions of songs, movies, news articles, webpages, television show episodes, social media content, etc., while a motor vehicle is in transit. The collection of source content is growing with the continual addition of new items as well as the development and adoption of new content technologies. As such, a vehicle occupant faces a significant investment of time and attention to search and select content during use of the motor vehicle. In addition, many users' preferences change with time, which will likely render some content outdated and, thus, require additional time and effort to update content and preferences.
Disclosed herein are computer-implemented algorithms for provisioning content browsing and personalized advertising using hybrid collaborative filters, enhanced electronic audiovisual systems with an AV controller for implementing such content browsing and personalized advertising, and motor vehicles with an in-vehicle audiovisual infotainment system for provisioning content browsing and personalized advertising. By way of example, and not limitation, there is presented a novel method for providing an occupant with personalized content (e.g., news, webpages, music and other content like POIs), and enabling implicit socialization among drivers through content recommendation. With user participation and consent, the content recommendation method can suggest content to a particular user based on: (1) the user's subjective interests; (2) an interest-based social group with which the user is associated; (3) changes in the interests of the user; (4) changes in the interests of similar users; (5) the interests of the user's friends; and/or (6) other users within a predetermined vicinity of the user. A Recommendation Engine receives, as data-reference inputs, a user's preferences, locality data for users in proximity to the user, car context data with vehicle-related information, and preferences of users with known similar interests. The Recommendation Engine searches a content database generated, e.g., by a web scraper, to output multiple recommendations. These recommendations are fed to a Scheduling & Order (S&O) Engine, which creates a merged list of user tasks and recommendation tasks based on business logic, locality and context data. A Dialog Engine transmits the S&O Engine output to the user with a text-to-speech (TTS) engine. The system uses speech recognition software to recognize voice commands received from an occupant to navigate through the dialog graph and to receive user selections.
Attendant benefits for at least some of the disclosed concepts include the ability to provide occupants with personalized content (news, webpages, music, and other personalized content), and to enable implicit socialization among drivers through content recommendations. Other resultant benefits may include provisioning of audio browsing of webpages in vehicular environments without distracting drivers and occupants from higher priority tasks. Additional advantages may include providing an implicit socialization platform among drivers through social-interest-based content recommendations. Disclosed systems, methods and devices also provide personalized and up-to-date content that can facilitate implicit interactions among users with a hybrid Recommendation Engine.
Aspects of the present disclosure are directed to computer-implemented algorithms for provisioning content browsing and personalized advertising using hybrid collaborative filters. Disclosed, for example, is a method for provisioning content browsing to an occupant of a motor vehicle. The vehicle includes an onboard electronic audiovisual system that is communicatively connected to a distributed computer network. This method includes, in any order and in any combination with any of the disclosed features and options: receiving, via a Recommendation Engine, user-specific data associated with the occupant of the motor vehicle; receiving, via the Recommendation Engine, content data directly or indirectly from the distributed computer network; determining, via the Recommendation Engine, a plurality of recommendations by applying a hybrid collaborative filter to the received content data based on the received user-specific data; transmitting, via a Dialogue Engine, the recommendations to the occupant through the electronic audiovisual system of the motor vehicle; and, receiving a user selection from the occupant of one or more of the transmitted recommendations via the Dialogue Engine through the electronic audiovisual system,.
Determining the recommendations for the occupant may include calculating a sum of weighted averages of an interest vector for a plurality of individual interests. The individual interests may include similar user data indicative of interests of one or more similar users; in this instance, the method may further include calculating a similarity measure between the occupant and each of the similar users. The individual interests assessed by the sum of weighted averages may further include any of the interests enumerated above and below. As another optional operation, the method may also include determining, via a Scheduling & Ordering engine, an order of priority of the recommendations by assigning a priority indication and a time indication to each of the recommendations. In this instance, the recommendations are transmitted to the occupant in the determined order of priority. In some embodiments, determining the recommendations for the occupant is further based on vehicle-specific data associated with the motor vehicle occupied by the occupant.
Other aspects of the present disclosure are directed to motor vehicles with an onboard audiovisual infotainment system operable for provisioning any of the disclosed content browsing schemes. A “motor vehicle,” as used herein, may include any relevant vehicle platform, such as passenger vehicles (internal combustion engine, hybrid electric, full electric, fuel cell, fuel cell hybrid, fully or partially autonomous, etc.), commercial vehicles, industrial vehicles, tracked vehicles, off-road and all-terrain vehicles (ATV), farm equipment, boats, airplanes, etc. The audiovisual infotainment system may include a high-resolution touchscreen display, an audio speaker component package, and/or a programmable AV controller, which may be resident to or remote from the vehicle.
Additional aspects of this disclosure are directed to enhanced audiovisual infotainment systems for implementing any of the disclosed content browsing and personalized advertising processes. In a non-limiting example, there is disclosed an electronic audiovisual system for a motor vehicle. The audiovisual system includes an electronic input device, such as a microphone and/or button panel, and an electronic output device, such as a display screen and/or one or more audio speaker components. An audiovisual (AV) electronic control unit (ECU) is communicatively connected to the electronic input device(s), the electronic output device(s), and a distributed computer network, such as the Internet. This ECU is programmed to execute one or more processor-executable modules the instructions to: receive user-specific and/or vehicle-related data associated with the occupant and the motor vehicle; receive content data directly or indirectly from the distributed computer network; determine various content recommendations for an occupant by applying a hybrid collaborative filter to the received content data based on the received user-specific and/or vehicle-related data; transmit the recommendations to the occupant, e.g., with a text-to-speech (TTS) engine; and receive a user selection of one or more of the available content recommendations. The AVECU may be further programmed to execute any of the other operations disclosed herein.
The above summary is not intended to represent every embodiment or every aspect of the present disclosure. Rather, the foregoing summary merely provides an exemplification of some of the novel aspects and features set forth herein. The above features and advantages, and other features and advantages of the present disclosure, will be readily apparent from the following detailed description of representative embodiments and representative modes for carrying out the present disclosure when taken in connection with the accompanying drawings and the appended claims. Moreover, this disclosure expressly includes any and all combinations and subcombinations of the elements and features presented above and below.
The present disclosure is susceptible to various modifications and alternative forms, and some representative embodiments have been shown by way of example in the drawings and will be described in detail herein. It should be understood, however, that the novel aspects of this disclosure are not limited to the particular forms illustrated in the appended drawings. Rather, the disclosure is to cover all modifications, equivalents, combinations, subcombinations, permutations, groupings, and alternatives falling within the scope and spirit of the disclosure as defined by the appended claims.
This disclosure is susceptible of embodiment in many different forms. There are shown in the drawings and will herein be described in detail representative embodiments of the disclosure with the understanding that these representative embodiments are to be considered an exemplification of the principles of the disclosure and are not intended to limit the broad aspects of the disclosure to the embodiments illustrated. To that extent, elements and limitations that are disclosed, for example, in the Abstract, Summary, and Detailed Description sections, but not explicitly set forth in the claims, should not be incorporated into the claims, singly or collectively, by implication, inference or otherwise. For purposes of the present detailed description, unless specifically disclaimed: the singular includes the plural and vice versa; the words “and” and “or” shall be both conjunctive and disjunctive; the word “all” means “any and all”; the word “any” means “any and all”; and the words “including” and “comprising” and “having” mean “including without limitation.” Moreover, words of approximation, such as “about,” “almost,” “substantially,” “approximately,” and the like, may be used herein in the sense of “at, near, or nearly at,” or “within 3-5% of,” or “within acceptable manufacturing tolerances,” or any logical combination thereof, for example.
Referring now to the drawings, wherein like reference numbers refer to like features throughout the several views, there is shown in
In the representative framework presented in
The communications network 22 of
Dedicated application software can be implemented for completing operations by and interactions between the various users and various components of the architecture 10. For instance, the dedicated application software can be in the form of a web-based (e.g., Java) applet that is downloaded to an onboard electronic device and runs in conjunction with a web browser on the device. Optionally, the dedicated application software can be in the form of a standalone software application, which can be implemented in a multi-platform language such as .Net or Java, or in native processor executable code. In at least some embodiments, the dedicated application software communicates with a single “host” or “client” server, such as a back-office intermediary server, which in turn conducts any necessary communications with one or more “third party” servers to complete a particular transaction. Optionally, the dedicated application software and web browser can be part of a single client-server interface, where the software can be implemented as a “plug-in” to the web browser, for example. As another option, this software application can be embodied as a dedicated mobile software application (more commonly known as a “mobile app” or just “app”) that is downloaded to or otherwise available on an onboard electronic device, e.g., as a standard feature with the device's operating system. Other optional variations and known alternatives are considered to be within the scope and spirit of the present disclosure.
In the illustrated system, the network 22 securely communicatively couples the AV controller 12 to one or more servers 32 operable for provisioning remote sources of content 20. Each server can be implemented on one or more server class computers, which can be subcomponents of a computer hardware server system, with sufficient memory, data storage, and processing power and, in some embodiments, the capabilities to run a server class operating system (e.g., GNU/Linux, SUN Solaris, Microsoft Windows OS, etc.). The servers can each be part of a logical group of one or more servers, such as a server farm or server network or server stack. As is typical in large-scale systems, the application software can be implemented in components, with different components running on different server computers, on the same server, or any logical combination thereof. A server stack may include any suitable processor(s), such as those made by Intel and AMD, that communicates with an auxiliary or main memory device. By way of example, the server stack includes a plurality of microprocessors including a master processor, a slave processor, and a secondary or parallel processor. Each memory device may take on the form of any of a variety of memory media, such as CD-ROM, magnetic disk, bubble memory, and semiconductor memory (e.g., various types of RAM or ROM).
With continuing reference to
During operation of the vehicle infotainment architecture 10, the Recommendation Engine 34 determines or otherwise receives user-specific data associated with the driver/occupant 16 and, for some applications, vehicle-specific data associated with the motor vehicle 14. This may necessitate the Recommendation Engine 34 access, request, and retrieve the requisite data from one or more storage modules 40-43 in a remote user database or cloud-computing data center 44. Received data may include, singly, collectively, or in any combination: (1) user data that is collected in a user storage module 40 and is indicative of subjective interests of the driver/occupant; (2) locality data that is stockpiled in a locality storage module 41 and is indicative of interests of persons at a specific location and/or within a predetermined proximity or of the occupant; (3) similar user data that is stored in a similar user storage module 42 and is indicative of the interests of one or more users with interests similar to those of the driver/occupant; and (4) vehicle-specific data that is collected in a vehicle context storage module 43 and is indicative of vehicle-related information, such as vehicle speed, vehicle location, tire pressure(s), fuel level, and/or one or more engine operating conditions (e.g., service engine, oil change, etc.). It is envisioned that the Recommendation Engine 34 receive fewer, additional or alternative data from that which is described above and illustrated in the drawings. Moreover, while described as being stored in a remote user database/data center 44, any or all of the storage modules 40-43 may be contained within an auxiliary or main memory device 46 resident to the AV controller 12 or packaged in another peripheral component within the vehicle 14.
Prior to, contemporaneous with, or subsequent to receiving user-specific and/or vehicle-specific data, the Recommendation Engine 32 also identifies or otherwise receives content data 48, either directly or indirectly, from the remote source(s) of content 20 and, optionally, from local sources of content. According to the illustrated example, at least a portion of the content data 48 is accumulated via a dedicated web scraper 52 that is operable to search one or more websites accessible on the distributed computer network to retrieve and store content in a content database 50. A key element that helps to distinguish data scraping from regular program-to-program data parsing is that the output being “scraped” is formatted for presentation to an end-user, rather than solely as input to another program. Some of the challenges with conventional data scraping applications is that there are many irrelevant meta tags, ads, etc. in HTML, and there is typically no unique tag for identifying paragraphs due to sheet language styling (e.g., Cascading Style Sheets (CSS)). During data scraping, the web scraper 52 of
Once all necessary data is accumulated, the Recommendation Engine 34 determines a set of potential recommendations 54 for presentment to the driver/occupant 16 of the motor vehicle 14, e.g., by applying a hybrid collaborative filter to the received content data based on the user-specific and/or vehicle-specific data. By way of non-limiting example, the hybrid collaborative filter may be designed to account for current user preferences, preference changes over time, preference trends, content from similar or otherwise relevant people, vehicle-related information, etc., by employing a combination of a modified interest-based filter and a modified collaborative filter.
where Ii is indicative of a plurality of individual interests I1, I2, I3. . . In contained in the user-specific and vehicle-specific data, and co, is indicative of respective weight vectors ω1, ω2, ω3. . . ωn con associated with the individual interests. IST of
Continuing with reference to both
where r is a rating function of a user,
Vehicle infotainment architecture 10 may be further operable to assess future trends, identify breaks from prior trends, and generate predictions for projected interests. It is expected that each user's interests will change over time; consequently, the user may belong to different interest groups at different times, associate with new/different social media websites, identify with new/different music, television, or other media trends. In the same vein, the collective interest of an interest group might change or evolve with trends. Conversely, a user's history of interests and related interest groups may have a residual effect on future interests; as such, future interests may be estimated from old interests and/or interest group memberships. An change in interests over time IST(t) can be calculated as:
where IS is indicative of an interest vector of the group; ti is indicative of a time instance in the past; and t is indicative of a current time. In this instance, IS(ti,t) represents current interests of the group that user used to belong at time ti. The denominator in the above-referenced equation helps to balance if a threshold “too much” amount of time has passed.
It may be desirable, for at least some applications, that the system 10 adjust group weights over time based on user feedback. As time passes, the importance (“weight”) of a particular group to a user might change; the assessed weight can be recalculated based on implicit/explicit feedback from a user as:
ωi,u+=ωi,u+(error×Ii)
where ωi,u is indicative of a current weight for user u of an ith group; ωi,u+ is indicative of a new “updated” weight; and Ii is indicative of an interest vector of the ith group. An assessed weight for a user/group can be improved from a user's feedback (If) to the content (Ic) with back propagation: compute error=(Ic-If); compute a new weight ωi,u+ from a prior weight ωi,u.
Content recommendations 54, once generated, are transmitted to a Scheduling & Ordering Engine 36 that creates, for example, a merged list of user tasks and recommendation tasks based on business logic 57, locality data 58 and context data 59. Context data may indicate the current context of vehicle status, driver/passenger status and/or environmental status. Vehicle context data may be abstracted and synthesized based on the vehicle CANBus data using a predetermined set of rules designed by the domain experts. By way of example, and not limitation, the Scheduling & Ordering Engine 36 may define an order of priority of the generated recommendations by assigning a priority indication and a time indication to each of the recommendations, and transmit the recommendations to the driver and/or occupant(s) through the electronic audiovisual system 18 in the order of priority. In a more specific example, every Task i has the following fields: (1) Priority (p(i)): a metric of importance for that task; (2) Time constraint (TC(i)): a time interval during which the task should to be completed; and (3) Required Time (RT(i)): a duration of time needed to complete the task. The Priority (p(i)) metric of importance can be defined based on the inputs 57-59, each of which may contain discrete information and/or may mimic data from its corresponding counterpart in database/data center 44, to schedule tasks, whether it be user tasks or recommendation tasks.
Continuing to block 111, the method 100 determines if the unscheduled task can fit into the available timeslot; if the task fits (Block 111=YES), Engine 36 reserves this space for this task at block 113, and loops back to the beginning of the algorithm 100 to schedule the next-in-line top-most unscheduled task. If the task does not fit into an available timeslot (Block 111=NO), Engine 36 adjusts the schedule of one or more neighboring tasks, at block 115, to provide additional time for the current task. After this, the method 100 determines, at block 117, if the unscheduled task can now fit into the modified available timeslot; if the task fits (Block 117=YES), Engine 36 reserves this space for this task at block 113, and loops back to the beginning of the algorithm 100 to schedule the next-in-line top-most unscheduled task. If the task does not fit into the modified available timeslot (Block 117=NO), the method 100 returns to block 109 and attempts to identify the next longest free space in user's schedule. It should be recognized that the order of execution of the blocks illustrated in
Referencing back to
Aspects of this disclosure may be implemented, in some embodiments, through a computer-executable program of instructions, such as program modules, generally referred to as software applications or application programs executed by an on-board vehicle computer. The software may include, in non-limiting examples, routines, programs, objects, components, and data structures that perform particular tasks or implement particular abstract data types. The software may form an interface to allow a computer to react according to a source of input. The software may also cooperate with other code segments to initiate a variety of tasks in response to data received in conjunction with the source of the received data. The software may be stored on any of a variety of memory media, such as CD-ROM, magnetic disk, bubble memory, and semiconductor memory (e.g., various types of RAM or ROM).
Moreover, aspects of the present disclosure may be practiced with a variety of computer-system and computer-network configurations, including multiprocessor systems, microprocessor-based or programmable-consumer electronics, minicomputers, mainframe computers, and the like. In addition, aspects of the present disclosure may be practiced in distributed-computing environments where tasks are performed by remote-processing devices that are linked through a communications network. In a distributed-computing environment, program modules may be located in both local and remote computer-storage media including memory storage devices. Aspects of the present disclosure may therefore, be implemented in connection with various hardware, software or a combination thereof, in a computer system or other processing system.
Any of the methods described herein may include machine readable instructions for execution by: (a) a processor, (b) a controller, and/or (c) any other suitable processing device. Any algorithm, software, or method disclosed herein may be embodied in software stored on a tangible medium such as, for example, a flash memory, a CD-ROM, a floppy disk, a hard drive, a digital versatile disk (DVD), or other memory devices, but persons of ordinary skill in the art will readily appreciate that the entire algorithm and/or parts thereof could alternatively be executed by a device other than a controller and/or embodied in firmware or dedicated hardware in a well-known manner (e.g., it may be implemented by an application specific integrated circuit (ASIC), a programmable logic device (PLD), a field programmable logic device (FPLD), discrete logic, etc.). Further, although specific algorithms are described with reference to flowcharts depicted herein, persons of ordinary skill in the art will readily appreciate that many other methods of implementing the example machine readable instructions may alternatively be used. For example, the order of execution of the blocks may be changed, and/or some of the blocks described may be changed, eliminated, or combined.
While aspects of the present disclosure have been described in detail with reference to the illustrated embodiments, those skilled in the art will recognize that many modifications may be made thereto without departing from the scope of the present disclosure. The present disclosure is not limited to the precise construction and compositions disclosed herein; any and all modifications, changes, and variations apparent from the foregoing descriptions are within the scope of the disclosure as defined in the appended claims. Moreover, the present concepts expressly include any and all combinations and subcombinations of the preceding elements and features.