The present disclosure relates to an artificial intelligence system. The system may be used for generation of personalized study plans for students to learn about topics of study.
In learning a topic of study or trying to acquire a new skill, a student faces a number of challenges. The student may not have a study plan and may not be sure how to create one. The student also needs some way to measure their own progress and determine what the best courses are that are suited to their current skills, considering the knowledge that they already have. Without knowing how to organize their studies, the student may feel that they have hit a wall, and that standardized courses are either too slow or too fast for them. Moreover, a student's mentor or manager may find it difficult to engage an expert to create a study plan and help another colleague. Furthermore, current online learning systems only provide generic learning plans and provide little to no customization to the student.
According to an embodiment, a system for providing study plans to a user includes a topic catalog that stores multiple topics and multiple keywords associated with each topic. The system also includes a plan generator that is configured to receive multiple sample study plans, each sample study plan having one or more resources, each resource having one or more portions, and each portion being assigned a duration. The plan generator is configured to use the sample study plans and the topic catalog, to train a topic model to identify which topics are associated with each resource, resulting in a trained topic model. The plan generator is also configured to receive a profile of a student from a user, the profile having one or more selected topics the student desires to study and further having multiple preferences associated with the student. The plan generator is configured to use the trained topic model and the profile, to identify a subset of the resources that are associated with the selected topics, generate a customized study plan for the student using the subset of identified resources and the preferences, and provides the customized study plan to the user.
According to another embodiment, a non-transitory computer-readable medium stores a set of instructions which when executed by a computer, configure the computer to receive multiple sample study plans, each sample study plan including one or more resources, each resource including one or more portions, and each portion being assigned a duration. The computer is further configured to receive a topic catalog that includes multiple topics and multiple keywords associated with each topic. The computer is further configured to use the sample study plans and the topic catalog to train a topic model to identify which topics are associated with each resource, resulting in a trained topic model. The computer is further configured to receive a profile of a student from a user, the profile including one or more selected topics the student desires to study and further including preferences associated with the student. The computer is further configured to use the trained topic model and the profile to identify a subset of the resources that are associated with the selected topics, generate a customized study plan for the student using the subset of identified resources and the preferences, and provide the customized study plan to the user.
Additional features and advantages of the disclosure will be set forth in the description which follows, and in part will be obvious from the description, or can be learned by practice of the herein disclosed principles. The features and advantages of the disclosure can be realized and obtained by means of the instruments and combinations particularly pointed out in the appended claims. These and other features of the disclosure will become more fully apparent from the following description and appended claims, or can be learned by the practice of the principles set forth herein.
The foregoing and other features and advantages will be apparent from the following, more particular, description of various embodiments, as illustrated in the accompanying drawings,
Various embodiments of the disclosure are described in detail below. While specific implementations are described, it should be understood that this is done for illustration purposes only. Other components and configurations may be used without parting from the spirit and scope of the disclosure.
In various embodiments, a system with one or more components is provided for creating, managing, and sharing customized study plans using machine learning. The system includes an artificial intelligence (AI) agent, that receives as input the user's profile of current skills, interests, and topics of desired study, and uses that information to generate a personalized study plan as an output. The system provides study plans that are customized for the users based on the initial input of the user profile, and continuously refines the study plan based on additional input by monitoring the user's progress and receiving user reviews of the study plan. The system is trained by the initial and additional inputs to iteratively adjust its recommendations to fit the needs of the user as well as provide improved study plans to future users.
The system functions in different embodiments as a server-based or cloud-based solution, an application programming interface (API), or an application that executes at least partially on a user's device.
In some embodiments, users of the system include students that want to consume a study plan, experts and mentors that want to generate and refine plans for the users, and managers that want to designate study plans for their subordinates and monitor their progress. The system includes an AI agent that generates dynamic, smart, and personalized study plans based on the user profile and the user's desired topics to learn. The AI agent improves the function of online learning computer systems by employing collaborative filtering in some embodiments, based on profiles, feedback, and progress and knowledge monitoring from multiple users, to provide intelligent recommendations for learning resources. This provides more accurate and useful results.
The system also provides in some embodiments various tools for team managers and leaders. These tools allow development of different strategies and study plans for different users (e.g., on their team) who are studying the same topic, as well as progress and feedback monitoring. Rating of study plans by users provides a measure of competition between plan creators, as well as sharing, reuse, and improvement of study plans. Users, mentors, and managers can copy, share, and change already created study plans, and users and managers alike can review customized plans with the help of the AI agent.
The system includes a number of components that each may be implemented on a server or on an end-user device. In some cases, a subset of the components may execute on a user device (e.g., a mobile application on a cell phone, a webpage running within a web browser, a local application executing on a personal computer, etc.) and another subset of the components may execute on a server (a physical machine, virtual machine, or container, etc., which may be located at a datacenter, a cloud computing provider, a local area network, etc.).
The components of the system may be implemented in some embodiments as software programs or modules, which are described in more detail below. In other embodiments, some or all of the components may be implemented in hardware, including in one or more signal processing and/or application specific integrated circuits. While the components are shown as separate components, two or more components may be integrated into a single component. Also, while many of the components' functions are described as being performed by one component, the functions may be split among two or more separate components.
Each resource 111 to 114 in the sample study plan 100 has a number of components (e.g., fields) that describe various metadata associated with that resource. These typically include a descriptor 120, a locator 122, a resource type 125, a duration 130, and a list of one or more resource topics 135, though in some embodiments one or more of these may be omitted. Additional components that describe additional metadata pertaining to each resource may also be included in some embodiments, such as a user rating, an aggregate progression status, an aggregate similarity, and price (and/or a flag indicating whether the resource is free), which are not shown in
As an example, aggregate progression status could be defined as the progression status of a resource from each user (e.g., based on progression monitoring, such as a progress report 410 discussed below with reference to
The descriptor 120 in some embodiments includes at least the resource's name, and may also include a brief description or summary. For example, if the resource is a video series, then the descriptor 120 is the name of the series, and optionally may also include the title of the video in that series. For example, resources 111 and 112 are two videos in a series titled Python 101, where resource 111 is a video in that series titled “Basics of Syntax”, and resource 112 is a video in that series titled “If and Then”. Resource 113 is a chapter of a textbook, so the descriptor 120 is a combination of the book title (“Python Complete”) and the chapter number and title (“Chapter 4, Introduction to OOP”). Resource 114 is a blog post, so the descriptor 120 is the title of the blog post.
The locator 122 is the actual location of the resource. Examples of such locations include reference to a location on the Internet (e.g., a uniform resource locator, or URL), a file transfer protocol (FTP) address to a server, an international standard book number (ISBN), a digital object identifier (DOI), etc. These examples require the user to retrieve the resource from an external source. For example, resources 111, 112, and 114 are all resources on the Internet (videos and a blog post), and so the locator 122 for these are URLs. Resource 113 is a chapter of a textbook, so the locator is an ISBN number, which requires the user to go to a library to checkout. Though not as convenient as a link, some textbooks have copyright restrictions that do not allow their contents to be reproduced publicly.
The locator 122 is not limited to external address locations. In some embodiments the locator 122 is an address to a local storage location internal to the system, which can be used by the used to immediately access the resource. In other embodiments, the locator 122 is a digital copy of the resource itself, which is embedded into the study plan when the study plan is provided to the user, requiring no further retrieval.
The resource type 125 indicates the type of the resource. This is useful since some users learn more effectively from certain types of media than others. A wide variety of media types may be supported by the system, including but not limited to documents, books, e-books, articles, blog posts, online courses (both paid and free), guides, tutorials, videos, images, and assessments (e.g., quizzes and tests, both online and offline). In the example of
The duration 130 indicates the expected time for the user to finish consuming the resource. For example, resources 111 and 112, the duration is the run time of each video, 90 minutes, and 45 minutes, respectively. For resource 113, the duration is a week, which is the expected time for a student to read the chapter and complete any assignments and exercises therein. For resource 114, the duration is the time it would take to read the blog post.
The resource topic 135 indicates the topics that are associated with the resource. Generally, all the resources in a study plan have at least one topic in common. For example, in the sample study plan 100, all the resources pertain to the Python programming language, so all the resources have the topic “Python.” In some embodiments, this common topic is referred to as the plan topic.
However, each of the resources 111-114 also have additional topics that are specific to the resource. In some embodiments, these additional resource topics are referred to as the plan subtopics. For example, resources 111 and 112 are both part of the same video series on Python, but have different resource topics, namely basic syntax, and the use of conditionals. Resource 113 is a textbook chapter with a focus on object-oriented programming (OOP), and resource 114 is devoted to using Python for data science. Some resource topics may be assigned by an editor, and other resource topics may be automatically determined by keyword analysis or other analysis of the content of the resource. In some embodiments, additional resource topics may be specified by user feedback and other classification systems that are unique to the resource type, for example tags applied to blog posts, keywords assigned by indexing systems, etc.
The user's profile 210 defines one or more topics of desired study, and additional data such as the user's prior knowledge and skill set, knowledge domains and desired skills, preferences for types of media learning, and other preferences. In some embodiments, the AI agent 215 uses this information to select a study plan template from a library of study plans (not shown in
In some embodiments, the feedback use case 300 and the progress monitoring use case 400 may be combined, or occur in parallel. The AI agent 215 may use any review 310 or progress report 405 it receives, or both, to continually generate refined study plans for the user upon demand. In some embodiments, the AI agent 215 proactively sends alerts and reminders, to request the review 310 and/or the progress report 405 on a periodic basis. Alternatively, or conjunctively, the AI agent 215 may receive automated and/or periodic indicators of the user's progress, such as every time the user completes a resource or a portion of a resource. These feedback mechanisms may also be used to generate an initial personalized study plan 220 for a new user, by using progress reports and reviews that were received for other users regarding study plans on the same or similar topics.
In some embodiments, the user's mentor e.g., a teacher, a manager) can create plans and use the AI agent 215 to refine them with the optimization processes described above with reference to
For example,
In some embodiments, the human agent 505 and/or the AI agent 215 can also modify the reviewed plans 515 to customize them for the users 507. For example, if the AI agent 215 receives (e.g., from the human agent 505, or from the users 507, or from local storage) a profile 210 of one or more of the users 507 after it has already generated the reviewed plans 515, it can use the reviewed plans 515 and the profile(s) 210 to generate a new set of customized plans 520 that are customized to the users 507 and provided to the users 507 directly or via the human agent 505.
Alternatively, or conjunctively, the human agent 505 may also customize the reviewed plans 515, to generate custom plans 520. The human agent 505 may use a profile 210 or any other information that they have regarding the users 507 capabilities, interests, and performance, as well as other priorities such as curriculum and training objectives, to modify the plans. The human agent 505 may modify the reviewed plans 515 or the customized plans 520 from the AI agent 215.
After providing the customized plans 520 to the users 507, one or more of the users 507 may provide a review 310 and/or progress report 405 to the AI agent 215. The AI agent 215 uses the review 310 and/or progress report 405 to again refine the plans for that group of users 507, as well as provide future reviewed plans 515 for other groups of users.
In some embodiments, the AI agent 215 is able to create custom plans by learning from provided plans. The AI agent 215 can start creating custom plans directly. This is a learning process with training, until the AI agent 215 creates plans that are as good as the human agent 505 plans. The plans created by the AI agent 215 also benefit from the optimization and refinement process.
The catalog 710 provides all learning content needed to compose the plan and feed the recommender system 715. The catalog 710 includes individual resources, as well as plan templates and customized and modified plans. The plans and resources in the catalog 710 may be indexed by any of the available metadata, such as by topic. In addition, the catalog 710 also may include templates of plans for topics, which can be used and modified to generate new plans and custom plans.
Returning to
The recommender system 715 provides ratings for learning resources and performs collaborative filtering based on recommendations from other users and other metadata associated with the resources and plans in the catalog 710 (including but not limited to user ratings, aggregate progression status, aggregate similarity, and price). For example, the recommender system 715 receives one or more progress reports 410 and reviews 310 as inputs. The recommender system 715 uses these inputs to retrieve resources and/or plans from the catalog 710 and filter and rank them. The recommender system 715 provides the filtered resources/plans and rankings to the plan generator 705 to modify the selected resources/plans that the plan generator 705 uses to generate the new plan 720.
The semantic reasoner 1005 generates one or multiple plans considering all information like specifications, limitations, topics, and deadlines, using logical programming, to ensure that the plans have what the user requires. In some embodiments, the semantic reasoner 1005 receives as input one or more of a list of topics 610, created plans 510, user profiles 210, and progress reports 410, as well as resources and plans from the catalog 710. The semantic reasoner 1005 outputs the generated plans to the filtering system 1015, and also updates the catalog 710 (e.g., updates metadata associated with resources and plans stored therein).
In some embodiments, the semantic reasoner 1005 generates every possible plan for every possible user, and then the filtering system 1015 filters out the plans that are not needed based on topic and user. The semantic reasoner 1005 could generate the plans on a semi-regular basis (e.g., daily, weekly, etc.) as a batch process using all available information received. Alternatively, or conjunctively, the semantic reasoner 1005 could perform real-time plan creation based on the current inputs.
The ranking system 1010 provides a score for each learning resource and plan in the catalog 710 based on information received from the recommender system 715. In some embodiments, the ranking system 1010 uses a machine learning system such as a neural network to provide the scores. Different types of such neural networks include feed-forward networks, convolutional networks, recurrent networks, regulatory feedback networks, radial basis function networks, long-short term memory (LSTM) networks, and Neural Turing Machines (NTM). See He, Kaiming, Zhang, Xiangyu, Ren, Shaoqing, and Sun, Jian, “Deep Residual Learning for Image Recognition,” arXiv preprint arXiv: 1512.03385, 2015, incorporated herein by reference.
The filtering system 1015 uses the score for each plan from the ranking system 1010 and returns an ordered set of plans according to the user preferences (e.g., as specified in the user profile 210). The plan generator 705 uses the ordered set of plans to select the plan 720 to provide to the user.
The semantic reasoner 1005 includes in some embodiments a topic modeler 1115, which uses the selected existing plans 1105 and the selected resources 1110 to determine which are the best plans and resources 1120 to use for learning, for the given list of topics 610.
In machine learning and natural language processing, a topic model is a type of statistical model for discovering the abstract “topics” that occur in a collection of documents. Topic modeling is a frequently used text-mining tool for discovery of hidden semantic structures in a text body. Intuitively, given that a document is about a particular topic, one would expect particular words to appear in the document more or less frequently: “dog” and “bone” will appear more often in documents about dogs, “cat” and “meow” will appear in documents about cats, and “the” and “is” will appear approximately equally in both. A document typically concerns multiple topics in different proportions; thus, in a document that is 10% about cats and 90% about dogs, there would probably be about 9 times more dog words than cat words. The “topics” produced by topic modeling techniques are clusters of similar words. A topic model captures this intuition in a mathematical framework, which allows examining a set of documents and discovering, based on the statistics of the words in each, what the topics might be and what each document's balance of topics is. In other words, the topic model describes the aggregate similarity of each resource and plan to every other resource and plan, based on the analysis of keywords and resulting inference of the topics.
For example, in
Returning to
Collaborative filtering is a method of making automatic predictions (filtering) about the interests of a user by collecting preferences or taste information from many users (collaborating, e.g. by crowdsourcing). The underlying assumption of the collaborative filtering approach is that if a person A has the same opinion as a person B on an issue, A is more likely to have B's opinion on a different issue than that of a randomly chosen person. For example, a collaborative filtering recommendation system for preferences in television programming could make predictions about which television show a user should like given a partial list of that user's tastes (likes or dislikes). Note that these predictions are specific to the user, but use information gleaned from many users. This differs from the simpler approach of giving an average (non-specific) score for each item of interest, for example based on its number of votes.
In the example of
Returning to
In this specification, the term “software” is meant to include firmware residing in read-only memory or applications stored in magnetic storage, which can be read into memory for processing by a processor. Also, in some embodiments, multiple software inventions can be implemented as sub-parts of a larger program while remaining distinct software inventions. In some embodiments, multiple software inventions can also be implemented as separate programs. Finally, any combination of separate programs that together implement a software invention described here is within the scope of the invention. In some embodiments, the software programs, when installed to operate on one or more electronic systems, define one or more specific machine implementations that execute and perform the operations of the software programs.
The bus 1405 collectively represents all system, peripheral, and chipset buses that communicatively connect the numerous internal devices of the electronic system 1400. For instance, the bus 1405 communicatively connects the processing unit(s) 1410 with the read-only memory 1430, the system memory 1425, and the permanent storage device 1435.
From these various memory units, the processing unit(s) 1410 retrieves instructions to execute and data to process in order to execute the processes of the invention. The processing unit(s) may be a single processor or a multi-core processor in different embodiments.
The read-only-memory 1430 stores static data and instructions that are needed by the processing unit(s) 1410 and other modules of the electronic system. The permanent storage device 1435, on the other hand, is a read-and-write memory device. This device is a non-volatile memory unit that stores instructions and data even when the electronic system 1400 is off. Some embodiments of the invention use a mass-storage device (such as a magnetic or optical disk and its corresponding disk drive) as the permanent storage device 1435.
Other embodiments use a removable storage device (such as a floppy disk, flash drive, etc.) as the permanent storage device. Like the permanent storage device 1435, the system memory 1425 is a read-and-write memory device. However, unlike storage device 1435, the system memory is a volatile read-and-write memory, such a random-access memory. The system memory stores some of the instructions and data that the processor needs at runtime. In some embodiments, the invention's processes are stored in the system memory 1425, the permanent storage device 1435, and/or the read-only memory 1430. From these various memory units, the processing unit(s) 1410 retrieves instructions to execute and data to process in order to execute the processes of some embodiments.
The bus 1405 also connects to the input devices 1440 and output devices 1445. The input devices enable the user to communicate information and select commands to the electronic system. The input devices 1440 include alphanumeric keyboards and pointing devices (also called “cursor control devices”). The output devices 1445 display images generated by the electronic system. The output devices include printers and display devices, such as cathode ray tubes (CRT) or liquid crystal displays (LCD). Some embodiments include devices such as a touchscreen that function as both input and output devices.
Finally, as shown in
Some embodiments include electronic components, such as microprocessors, storage and memory that store computer program instructions in a machine-readable or computer-readable medium (alternatively referred to as computer-readable storage media, machine-readable media, or machine-readable storage media). Some examples of such computer-readable media include RAM, ROM, read-only compact discs (CD-ROM), recordable compact discs (CD-R), rewritable compact discs (CD-RW), read-only digital versatile discs (e.g., DVD-ROM, dual-layer DVD-ROM), a variety of recordable/rewritable DVDs (e.g., DVD-RAM, DVD-RW, DVD+RW, etc.), flash memory (e.g., SD cards, mini-SD cards, micro-SD cards, etc.), magnetic and/or solid state hard drives, read-only and recordable Blu-Ray® discs, ultra-density optical discs, any other optical or magnetic media, and floppy disks. The computer-readable media may store a computer program that is executable by at least one processing unit and includes sets of instructions for performing various operations. Examples of computer programs or computer code include machine code, such as is produced by a compiler, and files including higher-level code that are executed by a computer, an electronic component, or a microprocessor using an interpreter.
While the above discussion primarily refers to microprocessor or multi-core processors that execute software, some embodiments are performed by one or more integrated circuits, such as application specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs). In some embodiments, such integrated circuits execute instructions that are stored on the circuit itself.
As used in this specification, the terms “computer”, “server”, “processor”, and “memory” all refer to electronic or other technological devices. These terms exclude people or groups of people. For the purposes of the specification, the terms display or displaying means displaying on an electronic device. As used in this specification, the terms “computer readable medium,” “computer readable media,” and “machine readable medium” are entirely restricted to tangible, physical objects that store information in a form that is readable by a computer. These terms exclude any wireless signals, wired download signals, and any other ephemeral signals.
The various embodiments described above are provided by way of illustration only and should not be construed to limit the scope of the disclosure. Various modifications and changes may be made to the principles described herein without following the example embodiments and applications illustrated and described herein, and without departing from the spirit and scope of the disclosure.