Scoring is either done over a working set of documents (essentially re-ranking), or over the whole collection. This is indicated by the parameter "useWorkingSet". When "useWorkingSet" has either a non-zero (integer) value or the value
true, scoring will be on a working set specified in a file given by "workingSetFile". The file should have three columns. The first is the query id; the second the document id; and the last a numerical value, which is ignored. The reason for having a third column of numerical values is so that any retrieval result of the simple format (i.e., non-trec format) generated by Lemur could be directly used as a "workingSetFile" for the purpose of re-ranking, which is convenient. Also, the third column could be used to provide a prior probability value for each document, which could be useful for some algorithms. By default, scoring is on the whole collection.
It currently supports six different models:
The parameter to select the model is
retModel. Valid values are:
tfidfor 0 for TFIDF
okapior 1 for Okapi
klor 2 for Simple KL
inqueryor 3 for INQUERY
cori_csor 4 for CORI_CS
cosor 5 for cosine similarity
indrior 7 for INDRI
It is suspected that there is a bug in the implementation of the feedback for Okapi BM25 retrieval function, because the performance is not as expected.
Other common parameters (for all retrieval methods) are:
index: The complete name of the index table-of-content file for the database index.
textQuery: the query text stream
resultFile: the result file
resultFormat: whether the result format should be of the TREC format (i.e., six-column) or just a simple three-column format
<queryID, docID, score>. String value, either
trecfor TREC format or
3colfor three column format. The integer values, zero for non-TREC format, and non-zero for TREC format used in previous versions of lemur are accepted. Default: TREC format.
resultCount: the number of documents to return as result for each query
feedbackDocCount: the number of docs to use for pseudo-feedback (0 means no-feedback)
feedbackTermCount: the number of terms to add to a query when doing feedback. Note that in the KL-div. approach, the actual number of terms is also affected by two other parameters.(See below.)
Model-specific parameters are:
feedbackPosCoeff: the coefficient for positive terms in (positive) Rocchio feedback. We only implemented the positive part and non-relevant documents are ignored.
doc.tfMethod: document term TF weighting method:
doc.bm25K1: BM25 k1 for doc term TF
doc.bm25B: BM25 b for doc term TF
query.tfMethod: query term TF weighting method:
query.bm25K1: BM25 k1 for query term TF. bm25B is set to zero for query terms
BM25K1: BM25 K1
BM25B: BM25 B
BM25K3: BM25 K3
BM25QTF: The TF for expanded terms in feedback (the original paper about the Okapi system is not clear about how this is set, so it's implemented as a parameter.)
collCounts- Use value "USE_INDEX_COUNTS" to use counts from the index if no separate collection counts file is available. For collection selection indexes built from collSell application, that file is auto generated.
feedbackPosCoeff: the coefficient for positive terms in (positive) Rocchio feedback as for the TFIDF model.
L2File- File containing precomputed L2 Norms (generated with GenL2Norm).
smoothSupportFile: The name of the smoothing support file (e.g., one generated by GenerateSmoothSupport).
smoothMethod: One of the four:
jmor 0 for Jelinek-Mercer
diror 1 for Dirichlet prior
ador 2 for Absolute discounting
2sor 3 for two stage.
interpolateor 0 for interpolate or
backoffor 1 for backoff.
adjustedScoreMethod: Which type of score to output, one of:
JelinekMercerLambda: The collection model weight in the JM interpolation method. Default: 0.5
DirichletPrior: The prior parameter in the Dirichlet prior smoothing method. Default: 1000
discountDelta: The delta (discounting constant) in the absolute discounting method. Default 0.7.
queryUpdateMethod: feedback method, one of:
mixor 0 for mixture.
divor 1 for div min
mcor 2 for markov chain
rm1or 3 for relevance model 1.
rm2or 4 for relevance model 2.
For all interpolation-based approaches (i.e., the new query model is an interpolation of the original model with a (feedback) model computed based on the feedback documents), the following four parameters apply:
feedbackCoefficient: the coefficient of the feedback model for interpolation. The value is in [0,1], with 0 meaning using only the original model (thus no updating/feedback) and 1 meaning using only the feedback model (thus ignoring the original model).
feedbackTermCount: Truncate the feedback model to no more than a given number of words/terms.
feedbackProbThresh: Truncate the feedback model to include only words with a probability higher than this threshold. Default value: 0.001.
feedbackProbSumThresh: Truncate the feedback model until the sum of the probability of the included words reaches this threshold. Default value: 1.
feedbackProbSumThresh work conjunctively to control the truncation, i.e., the truncated model must satisfy all the three constraints.
The first three feedback methods also recognize the parameter
feedbackMixtureNoise (default value :0.5), but with different interpretations.
feedbackMixtureNoiseis the collection model selection probability in the mixture model. That is, with this probability, a word is picked according to the collection language model, when a feedback document is "generated".
feedbackMixtureNoisemeans the weight of the divergence from the collection language model. (The higher it is, the farther the estimated model is from the collection model.)
feedbackMixtureNoiseis the probability of not stopping, i.e.,
1- alpha, where alpha is the stopping probability while walking through the chain.
In addition, the collection mixture model also recognizes the parameter
emIterations, which is the maximum number of iterations the EM algorithm will run. Default: 50. (The EM algorithm can terminate earlier if the log-likelihood converges quickly, where convergence is measured by some hard-coded criterion. See the source code in
SimpleKLRetMethod.cpp for details. )