How is OData used in a recommendation engine search?

David Thielen 2,526 Reputation points
2024-06-13T19:31:47.6133333+00:00

Hi all;

This is a follow-up to the question Creating a Recommendation Engine.

Grace suggests using OData to search for text.

Q2: Each event has 1 Interest and 0-N Tags. The correct way to do this is to have a feature for each Interest & Tag and the event sets it to true/false for each - correct? If I take this approach over half the features will be all these booleans - will that then weigh those values stronger than everything else? And am I making my model way too complex having these 50 Boolean features?  -Not necessarily good or bad approach but depending on how you'd like to manage it and which fields you consider useful. You can just have field with a delimited list of all the possible tags it has, then you just can filter based on the tag (OData search.in function reference - Azure AI Search | Microsoft Learn) And Q5 - also answered with an OData query as the suggested solution.

How is OData used as part of a nearest neighbor search? (I do know OData quite well.) Isn't OData a wrapper around SQL Server in this case? And then it's a simple SQL like query?

I'm not understanding how this is used as part of a nearest neighbor or recommendation engine search.

thanks - dave

Azure AI Search
Azure AI Search
An Azure search service with built-in artificial intelligence capabilities that enrich information to help identify and explore relevant content at scale.
831 questions
Azure Startups
Azure Startups
Azure: A cloud computing platform and infrastructure for building, deploying and managing applications and services through a worldwide network of Microsoft-managed datacenters.Startups: Companies that are in their initial stages of business and typically developing a business model and seeking financing.
236 questions
0 comments No comments
{count} votes

Accepted answer
  1. brtrach-MSFT 15,786 Reputation points Microsoft Employee
    2024-06-18T02:43:40.63+00:00

    @David Thielen OData (Open Data Protocol) is indeed a data access protocol that can be used to query and manipulate data sets through CRUD operations. It’s commonly implemented on top of SQL databases, but it can also be used with other types of data stores. OData provides a standard way to structure queries and is often used in conjunction with services like Azure Search to enable complex querying capabilities, including search functions.

    For nearest neighbor searches, which are typically used in recommendation engines and other machine learning scenarios, the process is a bit different from a standard OData query. Nearest neighbor searches involve finding the closest data points in a dataset to a given query point, usually in a multi-dimensional space. This is not something that OData natively supports because it’s more of an algorithmic search rather than a simple database query.

    However, you can use OData to retrieve the necessary data from a database and then apply a nearest neighbor algorithm to that data. The actual nearest neighbor search would be performed by a separate component of your application, possibly using machine learning libraries or custom algorithms designed for high-dimensional data.

    OData could be used to filter and retrieve specific subsets of data that you want to run through your nearest neighbor search algorithm. For example, you might use OData to fetch all items with a certain tag or within a certain category before applying the nearest neighbor search to find the most similar items within that subset.

    In summary, while OData is not used directly for nearest neighbor searches, it can be a valuable tool for retrieving and filtering the data that will be used in such searches. The actual nearest neighbor computation would be handled by a different part of your system, tailored to the specific requirements of the algorithm you’re using. If you’re implementing a recommendation engine, you would typically use a combination of OData for data retrieval and a machine learning library or custom algorithm for the nearest neighbor search.

    1 person found this answer helpful.

0 additional answers

Sort by: Most helpful