Once we’ve identified our main objective, we can hypothesize solutions using a three-step process.
Visualize an ideal solution to our problem without factoring in constraints.
It may seem like a waste of time to think freely without constraints, but it's a chance to think creatively.
Understand how the problem is currently being solved (if at all) and the how and why things are currently done the way they are.
Design from our ideal solution while factoring in constraints.
The main goal here is to think like a problem solver, as opposed to a naive model fitter.
|❌ Model fitter||✅ Problem solver|
|naively maps a set of inputs to outputs||knows which set of inputs and outputs are worth mapping|
|obsesses on methods (models, SOTA, single metric, etc.)||focuses on product (objective, constraints, evaluation, etc.)|
|fitting methods are ephemeral||foundational mental models are enduring|
Watch from 0:00 for a video walkthrough of this section.
Our main objective is to allow users to discover the precise resource.
Visualize The ideal solution would be to ensure that all projects have the proper metadata (tags) so users can discover them.
Understand So far users search for projects using tags. It’s important to note here that there are other available signals about each project such as the title, description, details, etc. which are not used in the search process. So this is good time to ask why we only rely on tags as opposed to the full text available? Tags are added by the project’s author and they represent core concepts that the project covers. This is more meaningful than keywords found in the project’s details because the presence of a keyword does not necessarily signify that it’s a core concept. Additionally, many tags are inferred and don’t explicitly exist in the metadata such as
natural-language-processing, etc. But what we will do is use the other text metadata to determine relevant tags.
Design So we would like all projects to have the appropriate tags and we have the necessary information (title, description, etc.) to meet that requirement.
For the purpose of this course, we’re going to develop a solution that involves applied machine learning in production. However, we would also do A/B testing with other approaches such as simply altering the process where users add tags to projects. Currently, the tagging process involves adding tags into an input box but what if we could separate the process into sections like
algorithms, etc. to guide the user to add relevant tags. This is a simple solution that needs to be tested against other approaches for effectiveness.
Watch from 4:19 for a video walkthrough of this section.