I have a problem statement that I'm struggling to formulate as a machine learning framework. There is a huge client database of documents - we're trying to come up with an efficient way of querying those documents.

The core problem is: let's say I want to find a document with certain attributes (these could include author, doc title, date published, subject matter, etc.) - I need to generate an appropriate query using these attributes such that the document with those attribute values is returned as one of the top search results.

A couple of issues: I don't have direct access to the doc database for obvious reasons - only whatever docs are returned via search. Plus the attribute values that the searcher is using to generate search query may have slight differences compared to what's there on the doc (e.g. date on doc may be "16 Sep 2023" and the searcher may use "sep 16 23").

Once I have a document from a search result, I can calculate its score judging how close it is to the intended search. Alternatively I can have a label saying whether the document is what the user intended to search or not.

I have a vague framework in mind -

  • There will be a query generator which just determines what preprocessing to do on the various document attributes and how to combine them (e.g. it'll make a decision on how the query is formed - is it just the document title? or just the author + doc title? etc.)
  • This query generator will not work on single doc search requests - instead it will work on a batch of several doc search requests at a time. For each request, search results will be returned
  • Top k search results will be taken for each doc search request and the aggregate quality of all search results for the whole batch of search requests can be calculate from individual scores/labels
  • This "aggregate quality score" can then be used as feedback to modify the rule set of the query generator

The issue is - I'm not sure exactly what's the best way to frame this as an ML problem. Should it be a deep learning framework? Or should it be an agent-action-reward based reinforcement learning problem? Or should it be an explore-exploit paradigm RL problem?

I'd really appreciate your opinions on this!



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.