Professional Documents
Culture Documents
Nick Bucheleres
August 30, 2016
User Features
The algorithm takes as inputs quantized user feature meta-data, where each value
is a floating number. The methodology can be extended to categorical, Boolean,
and string meta-data, but the scope of this paper is to describe the methodology
behind the floating number case.
User features can include, but are not limited to: message reply rate, ***** term
tokens, in-app ***** *****, number of ***** sent/received, frequency of a
Example of user error feature object: zeros imply that the suggested user
has a better feature score than the training feature mean for all
suggested users.
If it makes sense for suggestion purposes, user features can be broken out into
passive and active categories. An example of a passive feature would be number
of skills listed on profile, and an active feature would be, number of messages
sent. This may be helpful for offering up multiple concurrent suggestions to a
target user in order to enhance profile richness (by targeting passive features),
while also encouraging catalytic interaction (by targeting active features).
Additionally, user features that we want to emphasize can be done so through
free parameters. Say we want to ensure that the suggested user will answer a
message that our target user sends them. We can increase the error associated
with users who have a suboptimal message_response_rate feature by adding a
weight
The algorithm takes an initial pass on the training set, extracting their feature
quantizations, and then calculates a mean feature vector
TRAINING_FEATURE_MEAN, !"#$ =
!
!
! !,!|!
and a feature variance vector, both of which are of size length(j) (number of
features in the user model)
TRAINING_FEATURE_VARIANCE_SQUARED, !"#$"%&'
Which are used in the following function in order to return the VarianceWeighted Error (VWE)
Variance-Weighted Error
The VWE is the variance-weighted kernel function values for user i, for each user
[0, n], and free parameter :
! = !"#$ , ! =
2 !"#$"%&'
Expanding this equation, we can see how each training and user feature value is
used to build up the calculation, where ! is the error for user ! against the
training set of all possible suggestions
!
! =
!"#$ !
2 (!"#$"%&' )!
!
length(j)]
The training set is the set of users who share at least 1 token with the target users
tokenized ***** *****. This is one of many (token-based) suggestion generation
methods.
Error Correction (Bias) Terms
Based on our assumptions, we can add error correction terms to our kernel
function that forgive total suggested user kernel error (VWE) on the basis of
Assumption 1.
We already have the ***** token frequency for the target user freq(!!"#$%& ), and
we are going to forgive possible suggested users error proportional to the
intersection of the frequency of terms the target and suggested users share
!
! =
for target user ! and possible suggested user ! over all tokens
Error correction term m for user (! ) takes the form
!!
(!! )
!
For each token j that the target and suggestion share, and free parameter
! =
!"#$
2 !"#$"%&'
!!
(! )
[] = !!
!
!!!
Closing Remarks
From a high level, the algorithm can be thought of as having two partswe have
the feature-based variance-weighted kernel function, which grades users
according to the performance of their meta-data user features, compared to a
noise-reduced total suggestion training population (based on Assumption 1).
Then we have the error correction terms, which reward suggested users for the
degree of their relevance to the target used, primarily based on tokenized metadata (intersection of target user ***** ***** and suggested users profile tokens).
These error correction terms can (and should) be added whenever a new source
of suggested users is added to the training population.
Further Optimization
We can optimize this algorithm by further pre-filtering inputs, which, like in the
example above, has the effect of adding error correction terms based on the
degree to which the target and suggested user share meta-data and feature
scores.
Next Steps: Feature Error Weights
Granular control over the bias of the algorithms suggestions can be achieved by
weighting significant features. Variance-weighting achieves this to a certain
degree, by implicitly emphasizing principal (low variance) component features,
but we can explicitly influence the ranking of suggestions through feature
weights.
These weights can be set through trial and error, but there is room to use
machine learning to training proper weights (including zero) for each user model
feature.