This might make you feel like I am looking for a recommender engine, but I am not. A recommender engine works well if accuracy isn't an issue, but in my case, it is.

What I have proposed is to associate tags with certain question's answers, and map those tags to a particular video(s) and discern based on the mapping, whether the person should see it. Personalization. What do you think?

Here's the topic at hand to put this into context. Each video deals with a particular workout and is to be served depending on the answers in the onboarding screen. It then forms part of a program.


Frame this as a classification problem and learn a decision tree to map question responses to video selections.

EDIT: Fleshing this out a bit more:

  1. Collect appropriate data. Get members of your target population to complete the survey and also indicate which videos they think would be appropriate to them, or alternatively have subject matter experts associate surveys with appropriate videos. However you do it, you need to acquire a dataset pairing surveys with "ground truth" video suggestions.

  2. For each video, train a classifier with the survey responses as input to predict the binary target variable of whether or not that video was suggested for that survey.

  3. To construct a suggested set for a new survey, use all your classifiers to score it. Any classifier that outputs a 1 is a video you should send in response to that survey.

| improve this answer | |
  • $\begingroup$ thank you for your input. Can you highlight this answer with a trivial example in reference to my context. $\endgroup$ – Ali Gajani Jan 20 '18 at 3:33
  • $\begingroup$ updated my answer with details $\endgroup$ – David Marx Jan 20 '18 at 4:02
  • $\begingroup$ Very helpful, thank you. It will be a subject matter experts pairing. I think one video might be applicable to answers from say n questions. Do you know how a dataset might look like? Regarding 2 & 3, there will be a cluster of videos that will have to be sent based on the user's responses, it's not just 1 video. To put into context, I am trying to deliver a personalized video training program to unfit people, but I will deliver specific videos based on say their weight, height, diet, health problems, injury if any etc. I was thinking whether an ML approach to this is complex? $\endgroup$ – Ali Gajani Jan 20 '18 at 18:30
  • $\begingroup$ My original non-data sciency approach to this was (coming as a software engineer), to label each video with a tag that maps to a specific answer from the fixed set of questions, and then when the questionnaire is answered, I use simple MongoDB queries to assimilate the set of videos to be delivered and add that video list into a user key as an array, so whenever they load the page the next time, it has those cached list of personalized videos for them to consume. This was my original idea of pairing or mapping, not of course eventually we can expect to have 30 hours of video content. $\endgroup$ – Ali Gajani Jan 20 '18 at 18:33
  • $\begingroup$ Regarding your first comment: my suggestion solves for this. You build a separate model for each video which outputs a classification signifying that that particular video is relevant to the survey. Any video that gets classified as relevant can then be sent back, so different surveys will get recommended different collections (of varying sizes) of videos. Regarding your second comment: if that solution works, maybe you don't need the extra effort associated with using ML here. $\endgroup$ – David Marx Jan 21 '18 at 23:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.