6 ms·
It's possible to use an algorithmic approach (i.e. linear regression) to derive the weights for each of these factors.
by zexodus 4y ago
It's possible to use an algorithmic approach (i.e. linear regression) to derive the weights for each of these factors.
- toto444 4y agoAll you need to do is scrape the whole internet beforehand.
- thrwyndx 4y agoA lot of these factors depend on internal yandex data, serp clicks especially - good luck getting those outside of yandex prod, and those are the strongest signals.
- michaelmior 4y agoThis is assuming the weights are combined via some linear function. That's not necessarily the case. It's likely that the ranking algorithm is more complex than: calculate features, multiply by weights, add to get ranking. Sure you'll probably still be able to learn something more by playing with the different features, but I doubt you'll get any real meaningful "weights." Especially when how many features are calculated is a black box.
- h0l0cube 4y agoWhy would it be more complicated? A simple dot product would have excellent scaling characteristics
- toto444 4y agoWhen it comes to ML scalability is a constraint not a goal. The goal is to minimize some loss function and it turns out simple dot product can be outperformed by more complex algorithms. I remember reading a few years ago that most search engines use some tree based model. If that's the case, that means the idea of monotonic linear weights is not relevant.
- h0l0cube 4y agoCan you be more specific? Dot product is about as performant as it gets with linear memory access and SIMD multiply accumulate. Throw random memory access and flow control in there and it’s a struggle to do it faster. Unless the factors are sparse, in which case just elide the zero values.
- ethbr0 4y ago> scalability is a constraint not a goal. The goal is to minimize some loss function
- h0l0cube 4y agoMy bad. I was under the impression that most search engines are compute bound, but if anything there’s probably a glut of compute for such applications and a market appetite for better results.
- ethbr0 4y agoAlso, I'd assume it's highly time-agnostic (i.e. content change timespan : compute availability timespan). So you can run your bulk-recomputing whenever you have spare capacity. Stale rankings aren't great, but don't hurt that much. As long as your liveness is more frequently updated, so you don't send people to dead sites.
- h0l0cube 4y agoCertainly caching is important, especially for Word2Vec or other NLP which you'd want to happen in a separate stage after crawl, but as someone mentioned in a sibling comment, there are some factors that are calculated per-query, which can have a lot of cache misses for novel queries.
- ethbr0 4y agoIf so, I'd highly suspect Google varies the compute/cache permitted for novel queries. By this point, I can't imagine they haven't automatically balanced {revenueFromQuery} to {costOfQuery}. No sense delivering hyperoptimized results if you lose money on generating them.
- CWuestefeld 4y agoI designed the ranking algorithm for our product search. There are several factors in it that are nonlinear. For example, we obviously want the most-viewed and most-bought products to rise to the top. However, we also expect there's an initial honeymoon period for many new products, where people want to see them but they don't have enough history yet to sway the popularity factor. So there's a non-linear term that looks kind of like ( weight_factor / (product_age_days * age_scale_constant) )
- h0l0cube 4y agoAt a glance it seems like there works be a way to form the weighting adjustment into a subquery and multiply by the reciprocal. And then it’s still multiply-accumulate, but maybe I’m missing something.
- CWuestefeld 4y agoIsn't that just saying "delegate the nonlinear part out to a black box"?
- h0l0cube 4y agoAt a glance (1 / (product_age_days * age_scale_constant)) just seems like another factor you can multiply (with the calculation of reciprocal costing more in compute time). Again, I'm more than likely misunderstanding you or lacking the context.
- abm53 4y agoGiven some samples of search results we still don't know: - The X matrix (e.g. the page rank score) for each result. - The y vector, i.e the score for each result. Although we can observe the relative ranking in each sample (would be interested to hear about techniques to cope with this).