SYSTEMS, METHODS AND DEVICES FOR CONTENT BROWSING USING HYBRID COLLABORATIVE FILTERS
20180260853 ยท 2018-09-13
Assignee
Inventors
- Cagdas Karatas (Highland Park, NJ, US)
- Fan Bai (Ann Arbor, MI)
- Leonard C. Nieman (Harrison Township, MI, US)
Cpc classification
International classification
Abstract
Disclosed are algorithms for provisioning content browsing and personalized advertising using hybrid collaborative filters, electronic audiovisual systems implementing such browsing and advertising algorithms, and motor vehicles with onboard audiovisual infotainment systems for provisioning content browsing. A method is disclosed for provisioning content browsing to an occupant of a motor vehicle. The method includes: aggregating vehicle-related data and user-specific data associated with the motor vehicle and the occupant; creating a database of content data received from a distributed computer network; determining, via a Recommendation Engine, multiple recommendations by applying a hybrid collaborative filter to the stored content data based on the user-specific and vehicle-related data; transmitting the recommendations via a Dialogue Engine to the occupant through an electronic audiovisual system of the motor vehicle; and receiving one or more user selections of one or more of the transmitted recommendations from the occupant through the electronic audiovisual system.
Claims
1. A method for provisioning content browsing to an occupant of a motor vehicle, the motor vehicle including an electronic audiovisual system communicatively connected to a distributed computer network, the method comprising: receiving, via a Recommendation Engine, user-specific data associated with the occupant of the motor vehicle; receiving, via the Recommendation Engine, content data 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 plurality of recommendations to the occupant through the electronic audiovisual system of the motor vehicle; and receiving, via the Dialogue Engine from the occupant through the electronic audiovisual system, a user selection of at least one of the transmitted recommendations.
2. The method of claim 1, wherein the determining the recommendations includes calculating a sum of weighted averages of an interest vector I for the user-specific data as:
3. The method of claim 2, wherein the individual interests contained in the user-specific data include user data indicative of subjective interests of the occupant, locality data indicative of interests of persons within a predetermined proximity of the occupant, similar user data indicative of interests of users with interests similar to those of the occupant, or vehicle-specific data specific to the motor vehicle, or any combination thereof.
4. The method of claim 2, wherein the individual interests include similar user data indicative of interests of a similar user, the method further comprising calculating a similarity measure Sim(U.sub.i, U.sub.j) between the occupant U.sub.i and the similar user U.sub.j as:
5. The method of claim 1, further comprising determining, via a Scheduling & Ordering engine, an order of priority of the plurality of recommendations by assigning a priority indication and a time indication to each of the recommendations, wherein the recommendations are transmitted to the occupant through the electronic audiovisual system in the order of priority.
6. The method of claim 1, wherein the receiving the user selection includes receiving multiple user selections of multiple ones of the transmitted recommendations, the method further comprising creating a priority que of the selected recommendations, and scheduling a time to present each of the selected recommendations.
7. The method of claim 1, further comprising receiving vehicle-specific data associated with the motor vehicle, wherein the determining the recommendations is further based on the received vehicle-specific data.
8. The method of claim 7, wherein the vehicle-specific data includes a vehicle speed, a vehicle location, a tire pressure, a fuel level, or an engine operating condition, or any combination thereof.
9. The method of claim 1, wherein the user-specific data includes user data indicative of subjective interests of the occupant, locality data indicative of interests of persons within a predetermined proximity of the occupant, or similar user data indicative of interests of users with interests similar to those of the occupant, or any combination thereof.
10. The method of claim 1, further comprising: tracking a history of interests of the occupant of the motor vehicle; and calculating a change in interests over time as:
11. The method of claim 1, further comprising: determining respective content headers and navigation options for a plurality of data files in the content data received from the distributed computer network; and creating a dialogue graph linking together related ones of the content headers such that the data files are searchable via the navigation options.
12. The method of claim 1, wherein at least a portion of the content data is accumulated via a web scraper operable to search a plurality of websites accessed through the distributed computer network, identify tags that isolate relevant content on the websites, and identify text content within the relevant content that can be transmitted audibly to the occupant.
13. The method of claim 1, further comprising transmitting the recommendations from the Recommendation Engine to the Dialogue Engine in data files, the data files each including a text portion and a tag portion, wherein the Dialogue Engine includes a text-to-speech (TTS) engine operable to convert each of the text portions into a respective audio file.
14. An electronic audiovisual system for a motor vehicle, the electronic audiovisual system comprising: an electronic input device operable to receive user inputs from an occupant of the motor vehicle; an electronic output device operable to transmit audio content or video content, or both, to the occupant of the motor vehicle; and an audiovisual electronic control unit communicatively connected to the electronic input device, the electronic output device, and a distributed computer network, the electronic control unit being configured to: receive user-specific data associated with the occupant of the motor vehicle; receive content data from the distributed computer network; determine a plurality of recommendations by applying a hybrid collaborative filter to the received content data based on the received user-specific data; transmit the plurality of recommendations to the occupant; and receive a user selection of at least one of the transmitted recommendations.
15. The electronic audiovisual system of claim 14, wherein the determining the recommendations includes calculating a sum of weighted averages of an interest vector I for the user-specific data as:
16. The electronic audiovisual system of claim 15, wherein the individual interests contained in the user-specific data include user data indicative of subjective interests of the occupant, locality data indicative of interests of persons within a predetermined proximity of the occupant, similar user data indicative of interests of users with interests similar to those of the occupant, or vehicle-specific data specific to the motor vehicle, or any combination thereof.
17. The electronic audiovisual system of claim 15, wherein the individual interests include similar user data indicative of interests of a similar user, the method further comprising calculating a similarity measure Sim(U.sub.i, U.sub.j) between the occupant U.sub.i and the similar user U.sub.j as:
18. The electronic audiovisual system of claim 14, wherein the electronic control unit is further configured to determine, via a Scheduling & Ordering engine, an order of priority of the plurality of recommendations by assigning a priority indication and a time indication to each of the recommendations, wherein the recommendations are transmitted to the occupant through the electronic audiovisual system in the order of priority.
19. The electronic audiovisual system of claim 14, wherein the receiving the user selection includes receiving multiple user selections of multiple ones of the transmitted recommendations, the method further comprising creating a priority que of the selected recommendations, and scheduling a time to present each of the selected recommendations.
20. The electronic audiovisual system of claim 18, wherein the electronic control unit is further configured to receive vehicle-specific data associated with motor vehicle, wherein the determining the recommendations is further based on the received vehicle-specific data.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0012]
[0013]
[0014]
[0015]
[0016] 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.
DETAILED DESCRIPTION
[0017] 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.
[0018] Referring now to the drawings, wherein like reference numbers refer to like features throughout the several views, there is shown in
[0019] In the representative framework presented in
[0020] The communications network 22 of
[0021] 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.
[0022] 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).
[0023] With continuing reference to
[0024] 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.
[0025] 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
[0026] 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 I.sub.i is indicative of a plurality of individual interests I.sub.1, I.sub.2, I.sub.3. . . I.sub.n contained in the user-specific and vehicle-specific data, and co, is indicative of respective weight vectors .sub.1, .sub.2, .sub.3. . . .sub.n con associated with the individual interests. I.sub.ST of
[0027] Continuing with reference to both
where r is a rating function of a user,
[0028] 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 I.sub.ST(t) can be calculated as:
where I.sub.S is indicative of an interest vector of the group; t.sub.i is indicative of a time instance in the past; and t is indicative of a current time. In this instance, I.sub.S(t.sub.i,t) represents current interests of the group that user used to belong at time t.sub.i. The denominator in the above-referenced equation helps to balance if a threshold too much amount of time has passed.
[0029] 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:
.sub.i,u.sup.+=.sub.i,u+(errorI.sub.i)
where .sub.i,u is indicative of a current weight for user u of an i.sup.th group; .sub.i,u.sup.+ is indicative of a new updated weight; and I.sub.i is indicative of an interest vector of the i.sup.th group. An assessed weight for a user/group can be improved from a user's feedback (I.sub.f) to the content (I.sub.c) with back propagation: compute error=(I.sub.c-I.sub.f); compute a new weight .sub.i,u.sup.+ from a prior weight .sub.i,u.
[0030] 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.
[0031]
[0032] 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
[0033] Referencing back to
[0034] 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).
[0035] 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.
[0036] 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.
[0037] 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.