This function executes the iterative, distance-based method (abbreviated DIBRA) of Akritidis el. al 2022. The method is implemented in accordance to the following paper:
- L. Akritidis, A. Fevgas, P. Bozanis, Y. Manolopoulos, "An Unsupervised Distance-Based Model for Weighted Rank Aggregation with List Pruning", Expert Systems with Applications, vol. 202, pp. 117435, 2022.
DIBRA belongs to the weighted rank aggregation methods. It employs exploratory analysis to automatically identify the expert voters in an unsupervised fashion. Then, it assigns higher weights to the voters who were identified as experts, thus boosting the scores of their submitted elements.
In particular, DIBRA first employs a standard non-weighted method to generate an initial aggregate ranking (see the aggregation_method parameter in this document for a list of the supported non-weighted methods). In the sequel, it repeatedly assigns higher weights to the input lists which have smaller distances from the aggregate lists. The process terminates when the voter weights converge and a stable aggregate list is obtained.
The algorithm also includes an optional list pruning mechanism which arranges the input list lengths according to the respective voter weights.
Function Definitions
void DIBRA(const char inf[], const char relf[], const int evpts, const int agg,
const char ranstr[], const char out[], const int wnorm, const int dist, const bool prune,
const float gamma, const float d1, const float d2, const float tol, const int iter,
const float pref_t, const float veto_t, const float conc_t, const float disc_t)
and
__declspec(dllexport) void __cdecl DIBRA(const char inf[], const char relf[], const int evpts, const int agg,
const char ranstr[], const char out[], const int wnorm, const int dist, const bool prune,
const float gamma, const float d1, const float d2, const float tol, const int iter,
const float pref_t, const float veto_t, const float conc_t, const float disc_t)
Implementation Files
DIBRA()function:cflagr.cppanddllflagr.cpp.- DIBRA method implementation:
src/ram/DIBRA.cpp.
Input arguments
const char inf[]: The path of the input file that stores the preference lists to be aggregated.const char relf[]: The path of the input file that stores the element relevance judgments.const int evpts: the elements in the aggregate list on which the evaluation measures (i.e. Precision, and nDCG) will be computed.const int agg: The selected non-weighted base rank aggregation method (see theaggregation_methodparameter in this document for a list of possible values).const char ranstr[]: A string that is embedded in the names of the output files. Used when FLAGR is compiled as a shared library.const char out[]: The file system location where the output file with the aggregate list will be stored.const int wnorm: The voter weights normalization method (see theweights_normalizationparameter in this document for a list of possible values).const int dist: The correlation method that is used to measure the distance between an input list and the temporary aggregate list (see thecorrelation_methodparameter in this document for a list of possible values).const bool prune: Triggers a weight-dependant list pruning mechanism.const float gamma: The \(\gamma\) hyper-parameter.const float d1: The \(\delta_1\) hyper-parameter (applicable whenprune=true).const float d2: The \(\delta_2\) hyper-parameter (applicable whenprune=true).const float tol: Controls the convergence precision. This tolerance threshold represents the minimum precision of the difference between the voter weight in an iteration and the voter weight of the previous iteration.const int iter: Controls the maximum number of iterations.const float pref_t: The preference threshold (applicable when the Outranking Approach is selected as the non-weighted base method, namely,agg=5300).const float veto_t: The veto threshold (applicable when the Outranking Approach is selected as the non-weighted base method, namely,agg=5300).const float conc_t: The concordance threshold (applicable when the Outranking Approach is selected as the non-weighted base method, namely,agg=5300).const float disc_t: The discordance threshold (applicable when the Outranking Approach is selected as the non-weighted base method, namely,agg=5300).
Description
The input parameters are parsed and stored in a special C structure called UserParams that is defined in src/InputParams.h. Then, UserParams is passed to the execution driver and the rank aggregation process starts.
