blob: 064bf1eebbb048878707278ddc8e40947cf01909 [file] [log] [blame]
{
"systeminfos": {
"version": {
"value": "0.7.3",
"description": "PredictionIO version"
},
"jars.pdioItemrecAlgo": {
"value": "predictionio-process-hadoop-scalding-assembly-0.7.3.jar"
},
"jars.pdioItemsimAlgo": {
"value": "predictionio-process-hadoop-scalding-assembly-0.7.3.jar"
},
"jars.pdioItemrecEval": {
"value": "predictionio-process-hadoop-scalding-assembly-0.7.3.jar"
},
"jars.pdioItemsimEval": {
"value": "predictionio-process-hadoop-scalding-assembly-0.7.3.jar"
},
"jars.pdioCommonsEval": {
"value": "predictionio-process-hadoop-scalding-assembly-0.7.3.jar"
}
},
"engineinfos": {
"itemrec": {
"name": "Item Recommendation Engine",
"description": "<h6>Recommend interesting items to each user personally.</h6><p>Sample Use Cases</p><ul><li>recommend top N items to users personally</li><li>predict users' future preferences</li><li>help users to discover new topics they may be interested in</li><li>personalize content</li><li>optimize sales</li></ul>",
"defaultalgoinfoid": "pio-itemrec-single-mahout-knnitembased",
"defaultofflineevalmetricinfoid": "pio-itemrec-single-map_k",
"defaultofflineevalsplitterinfoid": "pio-single-trainingtestsplit",
"params": {
"serendipity": {
"name": "Serendipity",
"description": "Preference for surprising discovery",
"constraint": {
"paramtype": "integer"
},
"defaultvalue": 0,
"ui": {
"uitype": "slider",
"slidermin": 0,
"slidermax": 10,
"sliderstep": 1
}
},
"freshness": {
"name": "Freshness",
"description": "Preference for newer items",
"constraint": {
"paramtype": "integer"
},
"defaultvalue": 0,
"ui": {
"uitype": "slider",
"slidermin": 0,
"slidermax": 10,
"sliderstep": 1
}
},
"freshnessTimeUnit": {
"name": "Time Unit for Freshness",
"description": "The time unit in seconds for freshness prioritization. As an example, if you set this to one day (86400), and freshness is set to 10, items that are one day old would have their score degraded by a bit more than 60%.",
"constraint": {
"paramtype": "long"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 86400
},
"unseenonly": {
"name": "",
"description": "",
"constraint": {
"paramtype": "boolean"
},
"defaultvalue": false,
"ui": {
"uitype": "selection",
"selections": [
{
"name": "Recommend Unseen Only",
"value": "true"
},
{
"name": "Recommend Any Items",
"value": "false"
}
]
}
},
"seenActions": {
"name": "",
"description": "",
"constraint": {
"paramtype": "string"
},
"defaultvalue": "",
"ui": {
"uitype": "text"
}
},
"goal": {
"name": "Recommend items that users will",
"constraint": {
"paramtype": "string"
},
"defaultvalue": "rate3",
"ui": {
"uitype": "selection",
"selections": [
{
"name": "rate = 5",
"value": "rate5"
},
{
"name": "rate >= 4",
"value": "rate4"
},
{
"name": "rate >= 3",
"value": "rate3"
},
{
"name": "like",
"value": "like"
},
{
"name": "conversion",
"value": "conversion"
},
{
"name": "view",
"value": "view"
}
]
}
},
"numRecommendations": {
"name": "",
"description": "Number of recommendations to be generated for each user",
"constraint": {
"paramtype": "integer"
},
"defaultvalue": 50,
"ui": {
"uitype": "text"
}
},
"dedupByAttribute": {
"name": "Dedup By Attribute",
"description": "When specified, the engine returns at most 1 item per custom attribute value.",
"constraint": {
"paramtype": "string"
},
"defaultvalue": "",
"ui": {
"uitype": ""
}
}
},
"paramsections": [
{
"name": "Recommendation Preferences",
"sectiontype": "normal",
"description": "You could adjust the following parameters using the sliders. Higher value means more important to your App.",
"params": [
"freshness",
"freshnessTimeUnit",
"serendipity"
],
"subsections": [
{
"name": "Unseen Items Only",
"sectiontype": "normal",
"description": "Should the system recommend items that users have seen before?",
"params": [
"unseenonly"
]
},
{
"name": "Seen Actions",
"sectiontype": "normal",
"description": "Actions to be treated as seen (space-separated string, e.g. 'like rate'). If empty, all actions will be treated as seen.",
"params": [
"seenActions"
]
},
{
"name": "Number of Recommendations",
"sectiontype": "normal",
"params": [
"numRecommendations"
]
},
{
"name": "Dedup by Custom Attribute",
"sectiontype": "normal",
"description": "Only return at most one item per attribute value.",
"params": [
"dedupByAttribute"
]
}
]
},
{
"name": "Recommendation Goal",
"sectiontype": "normal",
"description": "Please define the goal to be maximized. Algorithms will be evaluated based on the goal defined here.",
"params": [
"goal"
]
}
]
},
"itemrank": {
"name": "Item Ranking Engine",
"description": "<h6>Rank given items to each user personally.</h6><p>Sample Use Cases</p><ul><li>prioritize a set of items to users personally</li><li>reorder menu items to users personally</li></ul>",
"defaultalgoinfoid": "pio-itemrank-single-mahout-knnitembased",
"defaultofflineevalmetricinfoid": "pio-itemrec-single-map_k",
"defaultofflineevalsplitterinfoid": "pio-single-trainingtestsplit",
"params": {
"freshness": {
"name": "Freshness",
"description": "Preference for newer items",
"constraint": {
"paramtype": "integer"
},
"defaultvalue": 0,
"ui": {
"uitype": "slider",
"slidermin": 0,
"slidermax": 10,
"sliderstep": 1
}
},
"freshnessTimeUnit": {
"name": "Time Unit for Freshness",
"description": "The time unit in seconds for freshness prioritization. As an example, if you set this to one day (86400), and freshness is set to 10, items that are one day old would have their score degraded by a bit more than 60%.",
"constraint": {
"paramtype": "long"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 86400
}
},
"paramsections": [
{
"name": "Recommendation Preferences",
"sectiontype": "normal",
"description": "You could adjust the following parameters using the sliders. Higher value means more important to your App.",
"params": [
"freshness",
"freshnessTimeUnit"
]
}
]
},
"itemsim": {
"name": "Item Similarity Engine",
"description": "<h6>Discover similar items.</h6><p>Sample Use Cases</p><ul><li>predict what else would a user like if this user likes a, i.e. \"People who like this also like....\"</li><li>automatic item grouping</li></ul>",
"defaultalgoinfoid": "pio-itemsim-single-mahout-itemsimcf",
"defaultofflineevalmetricinfoid": "pio-itemsim-single-ismap_k",
"defaultofflineevalsplitterinfoid": "pio-single-trainingtestsplit",
"params": {
"serendipity": {
"name": "Serendipity",
"description": "Preference for surprising discovery",
"constraint": {
"paramtype": "integer"
},
"defaultvalue": 0,
"ui": {
"uitype": "slider",
"slidermin": 0,
"slidermax": 10,
"sliderstep": 1
}
},
"freshness": {
"name": "Freshness",
"description": "Preference for newer items",
"constraint": {
"paramtype": "integer"
},
"defaultvalue": 0,
"ui": {
"uitype": "slider",
"slidermin": 0,
"slidermax": 10,
"sliderstep": 1
}
},
"freshnessTimeUnit": {
"name": "Time Unit for Freshness",
"description": "The time unit in seconds for freshness prioritization. As an example, if you set this to one day (86400), and freshness is set to 10, items that are one day old would have their score degraded by a bit more than 60%.",
"constraint": {
"paramtype": "long"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 86400
},
"goal": {
"name": "Recommendation Goal",
"description": "Goal to be maximized",
"constraint": {
"paramtype": "string"
},
"defaultvalue": "rate3",
"ui": {
"uitype": "selection",
"selections": [
{
"name": "rate = 5",
"value": "rate5"
},
{
"name": "rate >= 4",
"value": "rate4"
},
{
"name": "rate >= 3",
"value": "rate3"
},
{
"name": "like",
"value": "like"
},
{
"name": "conversion",
"value": "conversion"
},
{
"name": "view",
"value": "view"
}
]
}
},
"numSimilarItems": {
"name": "",
"description": "Number of similar items to be generated for each item.",
"constraint": {
"paramtype": "integer"
},
"defaultvalue": 50,
"ui": {
"uitype": "text"
}
},
"dedupByAttribute": {
"name": "Dedup By Attribute",
"description": "When specified, the engine returns at most 1 item per custom attribute value.",
"constraint": {
"paramtype": "string"
},
"defaultvalue": "",
"ui": {
"uitype": ""
}
}
},
"paramsections": [
{
"name": "Prediction Preferences",
"sectiontype": "normal",
"description": "You could adjust the following parameters using the sliders. Higher value means more important to your App.",
"params": [
"freshness",
"freshnessTimeUnit",
"serendipity"
],
"subsections": [
{
"name": "Number of Similar Items",
"sectiontype": "normal",
"params": [
"numSimilarItems"
]
},
{
"name": "Dedup by Custom Attribute",
"sectiontype": "normal",
"description": "Only return at most one item per attribute value.",
"params": [
"dedupByAttribute"
]
}
]
},
{
"name": "Prediction Goal",
"sectiontype": "normal",
"description": "Please define the goal to be maximized. Algorithms will be evaluated based on the goal defined here.",
"params": [
"goal"
]
}
]
}
},
"algoinfos": {
"pio-itemrec-single-random": {
"name": "Random Rank (Single Machine)",
"description": "Predict user preferences randomly.",
"batchcommands": [
"$base$/bin/random --appid $appid$ --engineid $engineid$ --algoid $algoid$ --numPredictions $numRecommendations$ --modelSet $modelset$ --recommendationTime $recommendationTime$"
],
"offlineevalcommands": [
"$base$/bin/random --appid $appid$ --engineid $engineid$ --algoid $algoid$ --numPredictions $numRecommendations$ --modelSet false --recommendationTime $recommendationTime$ --evalid $evalid$"
],
"paramorder": [],
"engineinfoid": "itemrec",
"techreq": [],
"datareq": [
"Users and Items."
],
"params": {},
"paramsections": []
},
"pio-itemsim-single-random": {
"name": "Random Rank (Single Machine)",
"description": "Predict user preferences randomly.",
"batchcommands": [
"$base$/bin/random --appid $appid$ --engineid $engineid$ --algoid $algoid$ --numPredictions $numSimilarItems$ --modelSet $modelset$ --recommendationTime $recommendationTime$"
],
"offlineevalcommands": [
"$base$/bin/random --appid $appid$ --engineid $engineid$ --algoid $algoid$ --numPredictions $numSimilarItems$ --modelSet false --recommendationTime $recommendationTime$ --evalid $evalid$"
],
"paramorder": [],
"engineinfoid": "itemsim",
"techreq": [],
"datareq": [
"Users and Items."
],
"params": {},
"paramsections": []
},
"pio-itemrec-distributed-random": {
"name": "Random Rank",
"description": "Predict user preferences randomly.",
"batchcommands": [
"$hadoop$ jar $base$/lib/$pdioItemrecAlgo$ io.prediction.algorithms.scalding.itemrec.randomrank.RandomRank --hdfs --training_dbType $appdataDbType$ --training_dbName $appdataDbName$ --training_dbHost $appdataDbHost$ --training_dbPort $appdataDbPort$ --modeldata_dbType $modeldataDbType$ --modeldata_dbName $modeldataDbName$ --modeldata_dbHost $modeldataDbHost$ --modeldata_dbPort $modeldataDbPort$ --hdfsRoot $hdfsRoot$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ --numRecommendations $numRecommendations$ --modelSet $modelset$ --recommendationTime $recommendationTime$"
],
"offlineevalcommands": [
"$hadoop$ jar $base$/lib/$pdioItemrecAlgo$ io.prediction.algorithms.scalding.itemrec.randomrank.RandomRank --hdfs --training_dbType $appdataTrainingDbType$ --training_dbName $appdataTrainingDbName$ --training_dbHost $appdataTrainingDbHost$ --training_dbPort $appdataTrainingDbPort$ --modeldata_dbType $modeldataTrainingDbType$ --modeldata_dbName $modeldataTrainingDbName$ --modeldata_dbHost $modeldataTrainingDbHost$ --modeldata_dbPort $modeldataTrainingDbPort$ --hdfsRoot $hdfsRoot$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ --numRecommendations $numRecommendations$ --modelSet false --recommendationTime $recommendationTime$ --evalid $evalid$"
],
"paramorder": [],
"engineinfoid": "itemrec",
"techreq": [
"Hadoop"
],
"datareq": [
"Users and Items."
],
"params": {},
"paramsections": []
},
"pio-itemrec-distributed-latest": {
"name": "Latest Rank",
"description": "Recommend latest items to users.",
"batchcommands": [
"$hadoop$ jar $base$/lib/$pdioItemrecAlgo$ io.prediction.algorithms.scalding.itemrec.latestrank.LatestRank --hdfs --training_dbType $appdataDbType$ --training_dbName $appdataDbName$ --training_dbHost $appdataDbHost$ --training_dbPort $appdataDbPort$ --modeldata_dbType $modeldataDbType$ --modeldata_dbName $modeldataDbName$ --modeldata_dbHost $modeldataDbHost$ --modeldata_dbPort $modeldataDbPort$ --hdfsRoot $hdfsRoot$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ --numRecommendations $numRecommendations$ --modelSet $modelset$ --recommendationTime $recommendationTime$"
],
"offlineevalcommands": [
"$hadoop$ jar $base$/lib/$pdioItemrecAlgo$ io.prediction.algorithms.scalding.itemrec.latestrank.LatestRank --hdfs --training_dbType $appdataTrainingDbType$ --training_dbName $appdataTrainingDbName$ --training_dbHost $appdataTrainingDbHost$ --training_dbPort $appdataTrainingDbPort$ --modeldata_dbType $modeldataTrainingDbType$ --modeldata_dbName $modeldataTrainingDbName$ --modeldata_dbHost $modeldataTrainingDbHost$ --modeldata_dbPort $modeldataTrainingDbPort$ --hdfsRoot $hdfsRoot$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ --numRecommendations $numRecommendations$ --modelSet false --recommendationTime $recommendationTime$ --evalid $evalid$"
],
"paramorder": [],
"engineinfoid": "itemrec",
"techreq": [
"Hadoop"
],
"datareq": [
"Users and Items with starttime."
],
"params": {},
"paramsections": []
},
"pio-itemrec-single-graphchi-als": {
"name": "GraphChi's Alternating Least Squares Collaborative Filtering",
"description": "Predict user preferences based on matrix factorization.",
"batchcommands": [
"$base$/bin/itemrec.generic.dataprep --outputDir $localTempDir$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ $itypes$ --viewParam $viewParam$ --likeParam $likeParam$ --dislikeParam $dislikeParam$ --conversionParam $conversionParam$ --conflictParam $conflictParam$ --recommendationTime $recommendationTime$ --matrixMarket true --seenActions $seenActions$",
"$base$/bin/als --training=$localTempDir$ratings.mm --D=$d$ --lambda=$lambda$ --minval=1 --maxval=5 --max_iter=$maxIter$ --halt_on_rmse_increase=$haltRMSEInc$ --quiet=1",
"$base$/bin/itemrec.graphchi.modelcon --inputDir $localTempDir$ --appid $appid$ --algoid $algoid$ --modelSet $modelset$ --unseenOnly $unseenOnly$ --numRecommendations $numRecommendations$"
],
"offlineevalcommands": [
"$base$/bin/itemrec.generic.dataprep --outputDir $localTempDir$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ --evalid $evalid$ $itypes$ --viewParam $viewParam$ --likeParam $likeParam$ --dislikeParam $dislikeParam$ --conversionParam $conversionParam$ --conflictParam $conflictParam$ --recommendationTime $recommendationTime$ --matrixMarket true --seenActions $seenActions$",
"$base$/bin/als --training=$localTempDir$ratings.mm --D=$d$ --lambda=$lambda$ --minval=1 --maxval=5 --max_iter=$maxIter$ --halt_on_rmse_increase=$haltRMSEInc$ --quiet=1",
"$base$/bin/itemrec.graphchi.modelcon --inputDir $localTempDir$ --appid $appid$ --algoid $algoid$ --evalid $evalid$ --modelSet false --unseenOnly $unseenOnly$ --numRecommendations $numRecommendations$"
],
"paramorder": [
"d",
"lambda",
"maxIter",
"haltRMSEInc",
"viewParam",
"likeParam",
"dislikeParam",
"conversionParam",
"conflictParam"
],
"engineinfoid": "itemrec",
"techreq": [
"GraphChi"
],
"datareq": [
"Users, Items, and U2I Actions such as Like, Conversion and Rate."
],
"params": {
"d": {
"name": "Number of Factorized Features",
"description": "Width of the factorized matrix.",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 20
},
"dMin": {
"name": "Number of Factorized Features (Min)",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 2
},
"dMax": {
"name": "Number of Factorized Features (Max)",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 30
},
"lambda": {
"name": "Lambda",
"description": "Regularization parameter to avoid overfitting.",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0.065
},
"lambdaMin": {
"name": "Lambda (Min)",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0.01
},
"lambdaMax": {
"name": "Lambda (Max)",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0.1
},
"maxIter": {
"name": "Maximum Number of Iterations",
"description": "Maximum number of training iterations allowed.",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 6
},
"maxIterMin": {
"name": "Maximum Number of Iterations (Min)",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 1
},
"maxIterMax": {
"name": "Maximum Number of Iterations (Max)",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 20
},
"haltRMSEInc": {
"name": "Halt on RMSE Increase",
"description": "Stop execution when validation error goes up. Run at least the number of iterations specified in the flag.",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0
},
"haltRMSEIncMin": {
"name": "Halt on RMSE Increase (Min)",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0
},
"haltRMSEIncMax": {
"name": "Halt on RMSE Increase (Max)",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 20
},
"viewParam": {
"name": "View Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "3"
},
"likeParam": {
"name": "Like Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "5"
},
"dislikeParam": {
"name": "Dislike Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "1"
},
"conversionParam": {
"name": "Conversion Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "4"
},
"conflictParam": {
"name": "Override",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "Use the latest action",
"value": "latest"
},
{
"name": "Use the highest preference score one",
"value": "highest"
},
{
"name": "Use the lowest preference score one",
"value": "lowest"
}
]
},
"defaultvalue": "latest"
}
},
"paramsections": [
{
"name": "Parameter Settings",
"sectiontype": "normal",
"subsections": [
{
"name": "Numeric Parameters",
"sectiontype": "tuning",
"params": [
"d",
"lambda",
"maxIter",
"haltRMSEInc"
]
}
]
},
{
"name": "User Actions Representation Settings",
"sectiontype": "normal",
"subsections": [
{
"name": "User Action Scores",
"sectiontype": "normal",
"description": "Define the preference score represented by each user action from 1 to 5. 5 is the most preferred, 1 is the least preferred. 3 is neutral.",
"params": [
"viewParam",
"likeParam",
"dislikeParam",
"conversionParam"
]
},
{
"name": "Overriding",
"sectiontype": "normal",
"description": "When there are conflicting actions, e.g. a user gives an item a rating 5 but later dislikes it, determine which action will be considered as final preference.",
"params": [
"conflictParam"
]
}
]
}
]
},
"pio-itemrec-single-graphchi-als_coord": {
"name": "GraphChi's CCD++ Alternating Least Squares Collaborative Filtering with Parallel Coordinate Descent",
"description": "Predict user preferences based on matrix factorization.",
"batchcommands": [
"$base$/bin/itemrec.generic.dataprep --outputDir $localTempDir$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ $itypes$ --viewParam $viewParam$ --likeParam $likeParam$ --dislikeParam $dislikeParam$ --conversionParam $conversionParam$ --conflictParam $conflictParam$ --recommendationTime $recommendationTime$ --matrixMarket true --seenActions $seenActions$",
"$base$/bin/als_coord --training=$localTempDir$ratings.mm --D=$d$ --lambda=$lambda$ --minval=1 --maxval=5 --max_iter=$maxIter$ --halt_on_rmse_increase=$haltRMSEInc$ --quiet=1",
"$base$/bin/itemrec.graphchi.modelcon --inputDir $localTempDir$ --appid $appid$ --algoid $algoid$ --modelSet $modelset$ --unseenOnly $unseenOnly$ --numRecommendations $numRecommendations$"
],
"offlineevalcommands": [
"$base$/bin/itemrec.generic.dataprep --outputDir $localTempDir$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ --evalid $evalid$ $itypes$ --viewParam $viewParam$ --likeParam $likeParam$ --dislikeParam $dislikeParam$ --conversionParam $conversionParam$ --conflictParam $conflictParam$ --recommendationTime $recommendationTime$ --matrixMarket true --seenActions $seenActions$",
"$base$/bin/als_coord --training=$localTempDir$ratings.mm --D=$d$ --lambda=$lambda$ --minval=1 --maxval=5 --max_iter=$maxIter$ --halt_on_rmse_increase=$haltRMSEInc$ --quiet=1",
"$base$/bin/itemrec.graphchi.modelcon --inputDir $localTempDir$ --appid $appid$ --algoid $algoid$ --evalid $evalid$ --modelSet false --unseenOnly $unseenOnly$ --numRecommendations $numRecommendations$"
],
"paramorder": [
"d",
"lambda",
"maxIter",
"haltRMSEInc",
"viewParam",
"likeParam",
"dislikeParam",
"conversionParam",
"conflictParam"
],
"engineinfoid": "itemrec",
"techreq": [
"GraphChi"
],
"datareq": [
"Users, Items, and U2I Actions such as Like, Conversion and Rate."
],
"params": {
"d": {
"name": "Number of Factorized Features",
"description": "Width of the factorized matrix.",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 20
},
"dMin": {
"name": "Number of Factorized Features (Min)",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 2
},
"dMax": {
"name": "Number of Factorized Features (Max)",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 30
},
"lambda": {
"name": "Lambda",
"description": "Regularization parameter to avoid overfitting.",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0.065
},
"lambdaMin": {
"name": "Lambda (Min)",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0.01
},
"lambdaMax": {
"name": "Lambda (Max)",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0.1
},
"maxIter": {
"name": "Maximum Number of Iterations",
"description": "Maximum number of training iterations allowed.",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 6
},
"maxIterMin": {
"name": "Maximum Number of Iterations (Min)",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 1
},
"maxIterMax": {
"name": "Maximum Number of Iterations (Max)",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 20
},
"haltRMSEInc": {
"name": "Halt on RMSE Increase",
"description": "Stop execution when validation error goes up. Run at least the number of iterations specified in the flag.",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0
},
"haltRMSEIncMin": {
"name": "Halt on RMSE Increase (Min)",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0
},
"haltRMSEIncMax": {
"name": "Halt on RMSE Increase (Max)",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 20
},
"viewParam": {
"name": "View Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "3"
},
"likeParam": {
"name": "Like Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "5"
},
"dislikeParam": {
"name": "Dislike Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "1"
},
"conversionParam": {
"name": "Conversion Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "4"
},
"conflictParam": {
"name": "Override",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "Use the latest action",
"value": "latest"
},
{
"name": "Use the highest preference score one",
"value": "highest"
},
{
"name": "Use the lowest preference score one",
"value": "lowest"
}
]
},
"defaultvalue": "latest"
}
},
"paramsections": [
{
"name": "Parameter Settings",
"sectiontype": "normal",
"subsections": [
{
"name": "Numeric Parameters",
"sectiontype": "tuning",
"params": [
"d",
"lambda",
"maxIter",
"haltRMSEInc"
]
}
]
},
{
"name": "User Actions Representation Settings",
"sectiontype": "normal",
"subsections": [
{
"name": "User Action Scores",
"sectiontype": "normal",
"description": "Define the preference score represented by each user action from 1 to 5. 5 is the most preferred, 1 is the least preferred. 3 is neutral.",
"params": [
"viewParam",
"likeParam",
"dislikeParam",
"conversionParam"
]
},
{
"name": "Overriding",
"sectiontype": "normal",
"description": "When there are conflicting actions, e.g. a user gives an item a rating 5 but later dislikes it, determine which action will be considered as final preference.",
"params": [
"conflictParam"
]
}
]
}
]
},
"pio-itemrec-single-graphchi-sgd": {
"name": "GraphChi's Stochastic Gradient Descent",
"description": "Predict user preferences based on matrix factorization.",
"batchcommands": [
"$base$/bin/itemrec.generic.dataprep --outputDir $localTempDir$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ $itypes$ --viewParam $viewParam$ --likeParam $likeParam$ --dislikeParam $dislikeParam$ --conversionParam $conversionParam$ --conflictParam $conflictParam$ --recommendationTime $recommendationTime$ --matrixMarket true --seenActions $seenActions$",
"$base$/bin/sgd --training=$localTempDir$ratings.mm --D=$d$ --sgd_lambda=$lambda$ --sgd_gamma=$gamma$ --sgd_step_dec=$stepDec$ --minval=1 --maxval=5 --max_iter=$maxIter$ --halt_on_rmse_increase=$haltRMSEInc$ --quiet=1",
"$base$/bin/itemrec.graphchi.modelcon --inputDir $localTempDir$ --appid $appid$ --algoid $algoid$ --modelSet $modelset$ --unseenOnly $unseenOnly$ --numRecommendations $numRecommendations$"
],
"offlineevalcommands": [
"$base$/bin/itemrec.generic.dataprep --outputDir $localTempDir$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ --evalid $evalid$ $itypes$ --viewParam $viewParam$ --likeParam $likeParam$ --dislikeParam $dislikeParam$ --conversionParam $conversionParam$ --conflictParam $conflictParam$ --recommendationTime $recommendationTime$ --matrixMarket true --seenActions $seenActions$",
"$base$/bin/sgd --training=$localTempDir$ratings.mm --D=$d$ --sgd_lambda=$lambda$ --sgd_gamma=$gamma$ --sgd_step_dec=$stepDec$ --minval=1 --maxval=5 --max_iter=$maxIter$ --halt_on_rmse_increase=$haltRMSEInc$ --quiet=1",
"$base$/bin/itemrec.graphchi.modelcon --inputDir $localTempDir$ --appid $appid$ --algoid $algoid$ --evalid $evalid$ --modelSet false --unseenOnly $unseenOnly$ --numRecommendations $numRecommendations$"
],
"paramorder": [
"d",
"lambda",
"gamma",
"stepDec",
"maxIter",
"haltRMSEInc",
"viewParam",
"likeParam",
"dislikeParam",
"conversionParam",
"conflictParam"
],
"engineinfoid": "itemrec",
"techreq": [
"GraphChi"
],
"datareq": [
"Users, Items, and U2I Actions such as Like, Conversion and Rate."
],
"params": {
"d": {
"name": "Number of Factorized Features",
"description": "Width of the factorized matrix.",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 20
},
"dMin": {
"name": "Number of Factorized Features (Min)",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 2
},
"dMax": {
"name": "Number of Factorized Features (Max)",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 30
},
"lambda": {
"name": "Lambda",
"description": "Regularization parameter to avoid overfitting.",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 1E-4
},
"lambdaMin": {
"name": "Lambda (Min)",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 1E-5
},
"lambdaMax": {
"name": "Lambda (Max)",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 1E-3
},
"gamma": {
"name": "Gamma",
"description": "Gradient step size.",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 1E-4
},
"gammaMin": {
"name": "Gamma (Min)",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 1E-5
},
"gammaMax": {
"name": "Gamma (Max)",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 1E-3
},
"stepDec": {
"name": "Step Decrement",
"description": "Multiplicative step decrement.",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0.9
},
"stepDecMin": {
"name": "Step Decrement (Min)",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0.8
},
"stepDecMax": {
"name": "Step Decrement (Max)",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0.99
},
"maxIter": {
"name": "Maximum Number of Iterations",
"description": "Maximum number of training iterations allowed.",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 6
},
"maxIterMin": {
"name": "Maximum Number of Iterations (Min)",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 1
},
"maxIterMax": {
"name": "Maximum Number of Iterations (Max)",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 20
},
"haltRMSEInc": {
"name": "Halt on RMSE Increase",
"description": "Stop execution when validation error goes up. Run at least the number of iterations specified in the flag.",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0
},
"haltRMSEIncMin": {
"name": "Halt on RMSE Increase (Min)",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0
},
"haltRMSEIncMax": {
"name": "Halt on RMSE Increase (Max)",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 20
},
"viewParam": {
"name": "View Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "3"
},
"likeParam": {
"name": "Like Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "5"
},
"dislikeParam": {
"name": "Dislike Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "1"
},
"conversionParam": {
"name": "Conversion Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "4"
},
"conflictParam": {
"name": "Override",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "Use the latest action",
"value": "latest"
},
{
"name": "Use the highest preference score one",
"value": "highest"
},
{
"name": "Use the lowest preference score one",
"value": "lowest"
}
]
},
"defaultvalue": "latest"
}
},
"paramsections": [
{
"name": "Parameter Settings",
"sectiontype": "normal",
"subsections": [
{
"name": "Numeric Parameters",
"sectiontype": "tuning",
"params": [
"d",
"lambda",
"gamma",
"stepDec",
"maxIter",
"haltRMSEInc"
]
}
]
},
{
"name": "User Actions Representation Settings",
"sectiontype": "normal",
"subsections": [
{
"name": "User Action Scores",
"sectiontype": "normal",
"description": "Define the preference score represented by each user action from 1 to 5. 5 is the most preferred, 1 is the least preferred. 3 is neutral.",
"params": [
"viewParam",
"likeParam",
"dislikeParam",
"conversionParam"
]
},
{
"name": "Overriding",
"sectiontype": "normal",
"description": "When there are conflicting actions, e.g. a user gives an item a rating 5 but later dislikes it, determine which action will be considered as final preference.",
"params": [
"conflictParam"
]
}
]
}
]
},
"pio-itemrec-single-graphchi-climf": {
"name": "GraphChi's CLiMF algorithm",
"description": "Predict user preferences based on matrix factorization and optimizing MRR (mean reciprocal rank)",
"batchcommands": [
"$base$/bin/itemrec.generic.dataprep --outputDir $localTempDir$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ $itypes$ --viewParam $viewParam$ --likeParam $likeParam$ --dislikeParam $dislikeParam$ --conversionParam $conversionParam$ --conflictParam $conflictParam$ --recommendationTime $recommendationTime$ --matrixMarket true --seenActions $seenActions$",
"$base$/bin/climf --training=$localTempDir$ratings.mm --D=$d$ --binary_relevance_thresh=$relevanceThresh$ --halt_on_mrr_decrease=$haltMRRDec$ --num_ratings=$numRatings$ --sgd_lambda=$lambda$ --sgd_gamma=$gamma$ --sgd_step_dec=$stepDec$ --minval=1 --maxval=5 --max_iter=$maxIter$ --quiet=1",
"$base$/bin/itemrec.graphchi.modelcon --inputDir $localTempDir$ --appid $appid$ --algoid $algoid$ --modelSet $modelset$ --unseenOnly $unseenOnly$ --numRecommendations $numRecommendations$"
],
"offlineevalcommands": [
"$base$/bin/itemrec.generic.dataprep --outputDir $localTempDir$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ --evalid $evalid$ $itypes$ --viewParam $viewParam$ --likeParam $likeParam$ --dislikeParam $dislikeParam$ --conversionParam $conversionParam$ --conflictParam $conflictParam$ --recommendationTime $recommendationTime$ --matrixMarket true --seenActions $seenActions$",
"$base$/bin/climf --training=$localTempDir$ratings.mm --D=$d$ --binary_relevance_thresh=$relevanceThresh$ --halt_on_mrr_decrease=$haltMRRDec$ --num_ratings=$numRatings$ --sgd_lambda=$lambda$ --sgd_gamma=$gamma$ --sgd_step_dec=$stepDec$ --minval=1 --maxval=5 --max_iter=$maxIter$ --quiet=1",
"$base$/bin/itemrec.graphchi.modelcon --inputDir $localTempDir$ --appid $appid$ --algoid $algoid$ --evalid $evalid$ --modelSet false --unseenOnly $unseenOnly$ --numRecommendations $numRecommendations$"
],
"paramorder": [
"d",
"relevanceThresh",
"haltMRRDec",
"numRatings",
"lambda",
"gamma",
"stepDec",
"maxIter",
"viewParam",
"likeParam",
"dislikeParam",
"conversionParam",
"conflictParam"
],
"engineinfoid": "itemrec",
"techreq": [
"GraphChi"
],
"datareq": [
"Users, Items, and U2I Actions such as Like, Conversion and Rate."
],
"params": {
"d": {
"name": "Number of Factorized Features",
"description": "Width of the factorized matrix.",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 20
},
"dMin": {
"name": "Number of Factorized Features (Min)",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 2
},
"dMax": {
"name": "Number of Factorized Features (Max)",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 30
},
"relevanceThresh": {
"name": "Binary Relevant Threshold",
"description": "Consider the item liked/relevant if rating is at least this value.",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0
},
"relevanceThreshMin": {
"name": "Binary Relevant Threshold (Min)",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0
},
"relevanceThreshMax": {
"name": "Binary Relevant Threshold (Max)",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 3
},
"haltMRRDec": {
"name": "Halt on MRR Decrease",
"description": "Halt if the training set objective (smoothed MRR) decreases.",
"constraint": {
"paramtype": "boolean"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "True",
"value": "true"
},
{
"name": "False",
"value": "false"
}
]
},
"defaultvalue": false
},
"numRatings": {
"name": "Number of Ratings",
"description": "Consider this many top predicted items when computing actual MRR on validation set.",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 10000
},
"numRatingsMin": {
"name": "Number of Ratings (Min)",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 10
},
"numRatingsMax": {
"name": "Number of Ratings (Max)",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 10000
},
"lambda": {
"name": "Lambda",
"description": "Regularization parameter to avoid overfitting.",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 1E-6
},
"lambdaMin": {
"name": "Lambda (Min)",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 1E-7
},
"lambdaMax": {
"name": "Lambda (Max)",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 1E-5
},
"gamma": {
"name": "Gamma",
"description": "Gradient step size.",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 1E-6
},
"gammaMin": {
"name": "Gamma (Min)",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 1E-7
},
"gammaMax": {
"name": "Gamma (Max)",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 1E-5
},
"maxIter": {
"name": "Maximum Number of Iterations",
"description": "Maximum number of training iterations allowed.",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 6
},
"maxIterMin": {
"name": "Maximum Number of Iterations (Min)",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 1
},
"maxIterMax": {
"name": "Maximum Number of Iterations (Max)",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 20
},
"stepDec": {
"name": "Step Decrement",
"description": "Multiplicative step decrement.",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0.9
},
"stepDecMin": {
"name": "Step Decrement (Min)",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0.8
},
"stepDecMax": {
"name": "Step Decrement (Max)",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0.99
},
"viewParam": {
"name": "View Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "3"
},
"likeParam": {
"name": "Like Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "5"
},
"dislikeParam": {
"name": "Dislike Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "1"
},
"conversionParam": {
"name": "Conversion Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "4"
},
"conflictParam": {
"name": "Override",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "Use the latest action",
"value": "latest"
},
{
"name": "Use the highest preference score one",
"value": "highest"
},
{
"name": "Use the lowest preference score one",
"value": "lowest"
}
]
},
"defaultvalue": "latest"
}
},
"paramsections": [
{
"name": "Parameter Settings",
"sectiontype": "normal",
"subsections": [
{
"name": "Boolean Parameter",
"sectiontype": "normal",
"params": [
"haltMRRDec"
]
},
{
"name": "Numeric Parameters",
"sectiontype": "tuning",
"params": [
"d",
"relevanceThresh",
"numRatings",
"lambda",
"gamma",
"stepDec",
"maxIter"
]
}
]
},
{
"name": "User Actions Representation Settings",
"sectiontype": "normal",
"subsections": [
{
"name": "User Action Scores",
"sectiontype": "normal",
"description": "Define the preference score represented by each user action from 1 to 5. 5 is the most preferred, 1 is the least preferred. 3 is neutral.",
"params": [
"viewParam",
"likeParam",
"dislikeParam",
"conversionParam"
]
},
{
"name": "Overriding",
"sectiontype": "normal",
"description": "When there are conflicting actions, e.g. a user gives an item a rating 5 but later dislikes it, determine which action will be considered as final preference.",
"params": [
"conflictParam"
]
}
]
}
]
},
"pio-itemrec-distributed-mahout-itembased": {
"name": "Mahout's Threshold Item Based Collaborative Filtering",
"description": "Predicts user preferences based on previous behaviors of users on similar items.",
"batchcommands": [
"$base$/bin/quiet.sh $hadoop$ fs -rmr $mahoutTempDir$",
"$base$/bin/quiet.sh $hadoop$ fs -rmr $algoDir$",
"$base$/bin/quiet.sh rm -rf $localTempDir$",
"$hadoop$ jar $base$/lib/$pdioItemrecAlgo$ $hadoopOptions$ io.prediction.algorithms.scalding.mahout.itemrec.DataCopy --hdfs --dbType $appdataDbType$ --dbName $appdataDbName$ --dbHost $appdataDbHost$ --dbPort $appdataDbPort$ --hdfsRoot $hdfsRoot$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ $itypes$ --viewParam $viewParam$ --likeParam $likeParam$ --dislikeParam $dislikeParam$ --conversionParam $conversionParam$ --conflictParam $conflictParam$ --recommendationTime $recommendationTime$ --unseenOnly $unseenOnly$ --seenActions $seenActions$",
"$hadoop$ jar $base$/lib/$pdioItemrecAlgo$ $hadoopOptions$ io.prediction.algorithms.scalding.mahout.itemrec.DataPreparator --hdfs --dbType $appdataDbType$ --dbName $appdataDbName$ --dbHost $appdataDbHost$ --dbPort $appdataDbPort$ --hdfsRoot $hdfsRoot$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ $itypes$ --viewParam $viewParam$ --likeParam $likeParam$ --dislikeParam $dislikeParam$ --conversionParam $conversionParam$ --conflictParam $conflictParam$ --recommendationTime $recommendationTime$ --unseenOnly $unseenOnly$ --seenActions $seenActions$",
"$hadoop$ fs -getmerge $dataFilePrefix$recommendItems.csv $localTempDir$recommendItemsM.csv",
"$hadoop$ fs -copyFromLocal $localTempDir$recommendItemsM.csv $dataFilePrefix$recommendItemsM.csv",
"$hadoop$ jar $mahoutCoreJob$ org.apache.mahout.cf.taste.hadoop.item.RecommenderJob $hadoopOptions$ --input $dataFilePrefix$ratings.csv --itemsFile $dataFilePrefix$recommendItemsM.csv --output $algoFilePrefix$predicted.tsv --tempDir $mahoutTempDir$ --numRecommendations $numRecommendations$ --booleanData $booleanData$ --maxPrefsPerUser $maxPrefsPerUser$ --minPrefsPerUser $minPrefsPerUser$ --maxSimilaritiesPerItem $maxSimilaritiesPerItem$ --maxPrefsInItemSimilarity $maxPrefsInItemSimilarity$ --similarityClassname $similarityClassname$ --threshold $threshold$ --filterFile $dataFilePrefix$seen.csv --includeRatedItem true",
"$hadoop$ jar $base$/lib/$pdioItemrecAlgo$ $hadoopOptions$ io.prediction.algorithms.scalding.mahout.itemrec.ModelConstructor --hdfs --dbType $modeldataDbType$ --dbName $modeldataDbName$ --dbHost $modeldataDbHost$ --dbPort $modeldataDbPort$ --hdfsRoot $hdfsRoot$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ --modelSet $modelset$ --numRecommendations $numRecommendations$"
],
"offlineevalcommands": [
"$base$/bin/quiet.sh $hadoop$ fs -rmr $mahoutTempDir$",
"$base$/bin/quiet.sh $hadoop$ fs -rmr $algoDir$",
"$base$/bin/quiet.sh rm -rf $localTempDir$",
"$hadoop$ jar $base$/lib/$pdioItemrecAlgo$ $hadoopOptions$ io.prediction.algorithms.scalding.mahout.itemrec.DataCopy --hdfs --dbType $appdataTrainingDbType$ --dbName $appdataTrainingDbName$ --dbHost $appdataTrainingDbHost$ --dbPort $appdataTrainingDbPort$ --hdfsRoot $hdfsRoot$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ --evalid $evalid$ $itypes$ --viewParam $viewParam$ --likeParam $likeParam$ --dislikeParam $dislikeParam$ --conversionParam $conversionParam$ --conflictParam $conflictParam$ --recommendationTime $recommendationTime$ --unseenOnly $unseenOnly$ --seenActions $seenActions$",
"$hadoop$ jar $base$/lib/$pdioItemrecAlgo$ $hadoopOptions$ io.prediction.algorithms.scalding.mahout.itemrec.DataPreparator --hdfs --dbType $appdataTrainingDbType$ --dbName $appdataTrainingDbName$ --dbHost $appdataTrainingDbHost$ --dbPort $appdataTrainingDbPort$ --hdfsRoot $hdfsRoot$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ --evalid $evalid$ $itypes$ --viewParam $viewParam$ --likeParam $likeParam$ --dislikeParam $dislikeParam$ --conversionParam $conversionParam$ --conflictParam $conflictParam$ --recommendationTime $recommendationTime$ --unseenOnly $unseenOnly$ --seenActions $seenActions$",
"$hadoop$ fs -getmerge $dataFilePrefix$recommendItems.csv $localTempDir$recommendItemsM.csv",
"$hadoop$ fs -copyFromLocal $localTempDir$recommendItemsM.csv $dataFilePrefix$recommendItemsM.csv",
"$hadoop$ jar $mahoutCoreJob$ org.apache.mahout.cf.taste.hadoop.item.RecommenderJob $hadoopOptions$ --input $dataFilePrefix$ratings.csv --itemsFile $dataFilePrefix$recommendItemsM.csv --output $algoFilePrefix$predicted.tsv --tempDir $mahoutTempDir$ --numRecommendations $numRecommendations$ --booleanData $booleanData$ --maxPrefsPerUser $maxPrefsPerUser$ --minPrefsPerUser $minPrefsPerUser$ --maxSimilaritiesPerItem $maxSimilaritiesPerItem$ --maxPrefsInItemSimilarity $maxPrefsInItemSimilarity$ --similarityClassname $similarityClassname$ --threshold $threshold$ --filterFile $dataFilePrefix$seen.csv --includeRatedItem true",
"$hadoop$ jar $base$/lib/$pdioItemrecAlgo$ $hadoopOptions$ io.prediction.algorithms.scalding.mahout.itemrec.ModelConstructor --hdfs --dbType $modeldataTrainingDbType$ --dbName $modeldataTrainingDbName$ --dbHost $modeldataTrainingDbHost$ --dbPort $modeldataTrainingDbPort$ --hdfsRoot $hdfsRoot$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ --evalid $evalid$ --modelSet $modelset$ --numRecommendations $numRecommendations$"
],
"paramorder": [
"booleanData",
"maxPrefsPerUser",
"minPrefsPerUser",
"maxSimilaritiesPerItem",
"maxPrefsInItemSimilarity",
"similarityClassname",
"threshold",
"viewParam",
"likeParam",
"dislikeParam",
"conversionParam",
"conflictParam"
],
"engineinfoid": "itemrec",
"techreq": [
"Hadoop"
],
"datareq": [
"Users, Items, and U2I Actions such as Like, Conversion and Rate."
],
"params": {
"booleanData": {
"name": "Boolean Data",
"description": "Treat input data as having no preference values.",
"constraint": {
"paramtype": "boolean"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "True",
"value": "true"
},
{
"name": "False",
"value": "false"
}
]
},
"defaultvalue": false
},
"maxPrefsPerUser": {
"name": "Max Num of Preferences per User",
"description": "Maximum number of preferences considered per user in final recommendation phase.",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 10
},
"minPrefsPerUser": {
"name": "Min Num of Preferences per User",
"description": "Ignore users with less preferences than this.",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 1
},
"maxSimilaritiesPerItem": {
"name": "Max Num of Similarities per Item",
"description": "Maximum number of similarities considered per item.",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 100
},
"maxPrefsInItemSimilarity": {
"name": "Max Num of Preferences per User in Item Similarity",
"description": "Max number of preferences to consider per user in the item similarity computation phase, users with more preferences will be sampled down.",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 1000
},
"similarityClassname": {
"name": "Distance Function",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "Co-occurrence",
"value": "SIMILARITY_COOCCURRENCE"
},
{
"name": "Log-Likelihood",
"value": "SIMILARITY_LOGLIKELIHOOD"
},
{
"name": "Tanimoto Coefficient",
"value": "SIMILARITY_TANIMOTO_COEFFICIENT"
},
{
"name": "City Block",
"value": "SIMILARITY_CITY_BLOCK"
},
{
"name": "Cosine Similarity",
"value": "SIMILARITY_COSINE"
},
{
"name": "Pearson Correlation",
"value": "SIMILARITY_PEARSON_CORRELATION"
},
{
"name": "Euclidean Distance",
"value": "SIMILARITY_EUCLIDEAN_DISTANCE"
}
]
},
"defaultvalue": "SIMILARITY_LOGLIKELIHOOD"
},
"threshold": {
"name": "Threshold",
"description": "Discard item pairs with a similarity value below this.",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 5e-324
},
"viewParam": {
"name": "View Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "3"
},
"likeParam": {
"name": "Like Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "5"
},
"dislikeParam": {
"name": "Dislike Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "1"
},
"conversionParam": {
"name": "Conversion Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "4"
},
"conflictParam": {
"name": "Override",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "Use the latest action",
"value": "latest"
},
{
"name": "Use the highest preference score one",
"value": "highest"
},
{
"name": "Use the lowest preference score one",
"value": "lowest"
}
]
},
"defaultvalue": "latest"
},
"thresholdMin": {
"name": "thresholdMin",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 5e-324
},
"thresholdMax": {
"name": "thresholdMax",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0.15
},
"maxPrefsPerUserMin": {
"name": "maxPrefsPerUserMin",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 10
},
"maxPrefsPerUserMax": {
"name": "maxPrefsPerUserMax",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 50
},
"minPrefsPerUserMin": {
"name": "minPrefsPerUserMin",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 1
},
"minPrefsPerUserMax": {
"name": "minPrefsPerUserMax",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 5
},
"maxSimilaritiesPerItemMin": {
"name": "maxSimilaritiesPerItemMin",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 50
},
"maxSimilaritiesPerItemMax": {
"name": "maxSimilaritiesPerItemMax",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 150
},
"maxPrefsInItemSimilarityMin": {
"name": "maxPrefsInItemSimilarityMin",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 500
},
"maxPrefsInItemSimilarityMax": {
"name": "maxPrefsInItemSimilarityMax",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 1500
}
},
"paramsections": [
{
"name": "Parameter Settings",
"sectiontype": "normal",
"subsections": [
{
"name": "Item Similarity Measurement",
"sectiontype": "normal",
"params": [
"similarityClassname"
]
},
{
"name": "Advanced Parameters",
"sectiontype": "normal",
"params": [
"booleanData"
]
},
{
"name": "Numeric Parameters",
"sectiontype": "tuning",
"params": [
"threshold",
"maxPrefsPerUser",
"minPrefsPerUser",
"maxSimilaritiesPerItem",
"maxPrefsInItemSimilarity"
]
}
]
},
{
"name": "User Actions Representation Settings",
"sectiontype": "normal",
"subsections": [
{
"name": "User Action Scores",
"sectiontype": "normal",
"description": "Define the preference score represented by each user action from 1 to 5. 5 is the most preferred, 1 is the least preferred. 3 is neutral.",
"params": [
"viewParam",
"likeParam",
"dislikeParam",
"conversionParam"
]
},
{
"name": "Overriding",
"sectiontype": "normal",
"description": "When there are conflicting actions, e.g. a user gives an item a rating 5 but later dislikes it, determine which action will be considered as final preference.",
"params": [
"conflictParam"
]
}
]
}
]
},
"pio-itemrec-distributed-mahout-parallelals": {
"name": "Mahout's Parallel ALS-WR",
"description": "Predicts user preferences based on previous behaviors of users.",
"batchcommands": [
"$base$/bin/quiet.sh $hadoop$ fs -rmr $mahoutTempDir$",
"$base$/bin/quiet.sh $hadoop$ fs -rmr $algoDir$",
"$hadoop$ jar $base$/lib/$pdioItemrecAlgo$ $hadoopOptions$ io.prediction.algorithms.scalding.mahout.itemrec.DataCopy --hdfs --dbType $appdataDbType$ --dbName $appdataDbName$ --dbHost $appdataDbHost$ --dbPort $appdataDbPort$ --hdfsRoot $hdfsRoot$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ $itypes$ --viewParam $viewParam$ --likeParam $likeParam$ --dislikeParam $dislikeParam$ --conversionParam $conversionParam$ --conflictParam $conflictParam$ --unseenOnly $unseenOnly$ --seenActions $seenActions$",
"$hadoop$ jar $base$/lib/$pdioItemrecAlgo$ $hadoopOptions$ io.prediction.algorithms.scalding.mahout.itemrec.DataPreparator --hdfs --dbType $appdataDbType$ --dbName $appdataDbName$ --dbHost $appdataDbHost$ --dbPort $appdataDbPort$ --hdfsRoot $hdfsRoot$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ $itypes$ --viewParam $viewParam$ --likeParam $likeParam$ --dislikeParam $dislikeParam$ --conversionParam $conversionParam$ --conflictParam $conflictParam$ --unseenOnly $unseenOnly$ --seenActions $seenActions$",
"$hadoop$ jar $mahoutCoreJob$ org.apache.mahout.cf.taste.hadoop.als.ParallelALSFactorizationJob $hadoopOptions$ --input $dataFilePrefix$ratings.csv --output $algoFilePrefix$matrix --tempDir $mahoutTempDir$ --lambda $lambda$ --implicitFeedback $implicitFeedback$ --numFeatures $numFeatures$ --numIterations $numIterations$",
"$hadoop$ jar $mahoutCoreJob$ org.apache.mahout.cf.taste.hadoop.als.RecommenderJob $hadoopOptions$ --input $algoFilePrefix$matrix/userRatings --userFeatures $algoFilePrefix$matrix/U --itemFeatures $algoFilePrefix$matrix/M --output $algoFilePrefix$predicted.tsv --tempDir $mahoutTempDir$ --numRecommendations $numRecommendations$ --maxRating 5",
"$hadoop$ jar $base$/lib/$pdioItemrecAlgo$ $hadoopOptions$ io.prediction.algorithms.scalding.mahout.itemrec.ParallelALSModelConstructor --hdfs --dbType $modeldataDbType$ --dbName $modeldataDbName$ --dbHost $modeldataDbHost$ --dbPort $modeldataDbPort$ --hdfsRoot $hdfsRoot$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ --modelSet $modelset$ --unseenOnly $unseenOnly$ --numRecommendations $numRecommendations$ --recommendationTime $recommendationTime$ --implicitFeedback $implicitFeedback$"
],
"offlineevalcommands": [
"$base$/bin/quiet.sh $hadoop$ fs -rmr $mahoutTempDir$",
"$base$/bin/quiet.sh $hadoop$ fs -rmr $algoDir$",
"$hadoop$ jar $base$/lib/$pdioItemrecAlgo$ $hadoopOptions$ io.prediction.algorithms.scalding.mahout.itemrec.DataCopy --hdfs --dbType $appdataTrainingDbType$ --dbName $appdataTrainingDbName$ --dbHost $appdataTrainingDbHost$ --dbPort $appdataTrainingDbPort$ --hdfsRoot $hdfsRoot$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ --evalid $evalid$ $itypes$ --viewParam $viewParam$ --likeParam $likeParam$ --dislikeParam $dislikeParam$ --conversionParam $conversionParam$ --conflictParam $conflictParam$ --unseenOnly $unseenOnly$ --seenActions $seenActions$",
"$hadoop$ jar $base$/lib/$pdioItemrecAlgo$ $hadoopOptions$ io.prediction.algorithms.scalding.mahout.itemrec.DataPreparator --hdfs --dbType $appdataTrainingDbType$ --dbName $appdataTrainingDbName$ --dbHost $appdataTrainingDbHost$ --dbPort $appdataTrainingDbPort$ --hdfsRoot $hdfsRoot$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ --evalid $evalid$ $itypes$ --viewParam $viewParam$ --likeParam $likeParam$ --dislikeParam $dislikeParam$ --conversionParam $conversionParam$ --conflictParam $conflictParam$ --unseenOnly $unseenOnly$ --seenActions $seenActions$",
"$hadoop$ jar $mahoutCoreJob$ org.apache.mahout.cf.taste.hadoop.als.ParallelALSFactorizationJob $hadoopOptions$ --input $dataFilePrefix$ratings.csv --output $algoFilePrefix$matrix --tempDir $mahoutTempDir$ --lambda $lambda$ --implicitFeedback $implicitFeedback$ --numFeatures $numFeatures$ --numIterations $numIterations$",
"$hadoop$ jar $mahoutCoreJob$ org.apache.mahout.cf.taste.hadoop.als.RecommenderJob $hadoopOptions$ --input $algoFilePrefix$matrix/userRatings --userFeatures $algoFilePrefix$matrix/U --itemFeatures $algoFilePrefix$matrix/M --output $algoFilePrefix$predicted.tsv --tempDir $mahoutTempDir$ --numRecommendations $numRecommendations$ --maxRating 5",
"$hadoop$ jar $base$/lib/$pdioItemrecAlgo$ $hadoopOptions$ io.prediction.algorithms.scalding.mahout.itemrec.ParallelALSModelConstructor --hdfs --dbType $modeldataTrainingDbType$ --dbName $modeldataTrainingDbName$ --dbHost $modeldataTrainingDbHost$ --dbPort $modeldataTrainingDbPort$ --hdfsRoot $hdfsRoot$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ --evalid $evalid$ --modelSet $modelset$ --unseenOnly $unseenOnly$ --numRecommendations $numRecommendations$ --recommendationTime $recommendationTime$ --implicitFeedback $implicitFeedback$"
],
"paramorder": [
"lambda",
"implicitFeedback",
"alpha",
"numFeatures",
"numIterations",
"viewParam",
"likeParam",
"dislikeParam",
"conversionParam",
"conflictParam"
],
"engineinfoid": "itemrec",
"techreq": [
"Hadoop"
],
"datareq": [
"Users, Items, and U2I Actions such as Like, Conversion and Rate."
],
"params": {
"lambda": {
"name": "Lambda",
"description": "Regularization parameter to avoid overfitting.",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0.03
},
"implicitFeedback": {
"name": "Implicit Feedback",
"description": "Whether data consists of implicit data.",
"constraint": {
"paramtype": "boolean"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "True",
"value": "true"
},
{
"name": "False",
"value": "false"
}
]
},
"defaultvalue": false
},
"alpha": {
"name": "Alpha",
"description": "Confidence parameter will be ignored if Implicit Feedback is false.",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 40
},
"numFeatures": {
"name": "Number of Factorized Features",
"description": "Dimension of the factorized feature space.",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 3
},
"numIterations": {
"name": "Number of Iterations",
"description": "Number of training iteration.",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 5
},
"viewParam": {
"name": "View Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "3"
},
"likeParam": {
"name": "Like Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "5"
},
"dislikeParam": {
"name": "Dislike Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "1"
},
"conversionParam": {
"name": "Conversion Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "4"
},
"conflictParam": {
"name": "Override",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "Use the latest action",
"value": "latest"
},
{
"name": "Use the highest preference score one",
"value": "highest"
},
{
"name": "Use the lowest preference score one",
"value": "lowest"
}
]
},
"defaultvalue": "latest"
},
"lambdaMin": {
"name": "lambdaMin",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0.01
},
"lambdaMax": {
"name": "lambdaMax",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0.1
},
"alphaMin": {
"name": "alphaMin",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 10
},
"alphaMax": {
"name": "alphaMax",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 50
},
"numFeaturesMin": {
"name": "numFeaturesMin",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 2
},
"numFeaturesMax": {
"name": "numFeaturesMax",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 10
},
"numIterationsMin": {
"name": "numIterationsMin",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 1
},
"numIterationsMax": {
"name": "numIterationsMax",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 20
}
},
"paramsections": [
{
"name": "Parameter Settings",
"sectiontype": "normal",
"params": [
"implicitFeedback"
],
"subsections": [
{
"name": "Numeric Parameters",
"sectiontype": "tuning",
"params": [
"lambda",
"alpha",
"numFeatures",
"numIterations"
]
}
]
},
{
"name": "User Actions Representation Settings",
"sectiontype": "normal",
"subsections": [
{
"name": "User Action Scores",
"sectiontype": "normal",
"description": "Define the preference score represented by each user action from 1 to 5. 5 is the most preferred, 1 is the least preferred. 3 is neutral.",
"params": [
"viewParam",
"likeParam",
"dislikeParam",
"conversionParam"
]
},
{
"name": "Overriding",
"sectiontype": "normal",
"description": "When there are conflicting actions, e.g. a user gives an item a rating 5 but later dislikes it, determine which action will be considered as final preference.",
"params": [
"conflictParam"
]
}
]
}
]
},
"pio-itemrec-single-mahout-knnitembased": {
"name": "Mahout's kNN Item Based Collaborative Filtering (extension to GenericItemBased) (Single Machine)",
"description": "Predicts user preferences based on previous behaviors of users on similar items (Single Machine).",
"batchcommands": [
"$base$/bin/itemrec.generic.dataprep --outputDir $localTempDir$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ $itypes$ --viewParam $viewParam$ --likeParam $likeParam$ --dislikeParam $dislikeParam$ --conversionParam $conversionParam$ --conflictParam $conflictParam$ --recommendationTime $recommendationTime$ --matrixMarket false --seenActions $seenActions$",
"$base$/bin/itemrec.mahout.mahoutjob io.prediction.algorithms.mahout.itemrec.knnitembased.KNNItemBasedJob --input $localTempDir$ratings.csv --itemsFile $localTempDir$itemsIndex.tsv --output $localTempDir$predicted.tsv --outputSim $localTempDir$itemSim.csv --appid $appid$ --engineid $engineid$ --algoid $algoid$ --booleanData $booleanData$ --numRecommendations $numRecommendations$ --itemSimilarity $itemSimilarity$ --weighted $weighted$ --nearestN $nearestN$ --threshold $threshold$ --preComputeItemSim $preComputeItemSim$ --similarItemsPerItem $similarItemsPerItem$ --unseenOnly $unseenOnly$ --seenFile $localTempDir$seen.csv --freshness $freshness$ --recommendationTime $recommendationTime$ --freshnessTimeUnit $freshnessTimeUnit$",
"$base$/bin/itemrec.mahout.modelcon --inputDir $localTempDir$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ --modelSet $modelset$ --numRecommendations $numRecommendations$ --booleanData $booleanData$"
],
"offlineevalcommands": [
"$base$/bin/itemrec.generic.dataprep --outputDir $localTempDir$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ --evalid $evalid$ $itypes$ --viewParam $viewParam$ --likeParam $likeParam$ --dislikeParam $dislikeParam$ --conversionParam $conversionParam$ --conflictParam $conflictParam$ --recommendationTime $recommendationTime$ --matrixMarket false --seenActions $seenActions$",
"$base$/bin/itemrec.mahout.mahoutjob io.prediction.algorithms.mahout.itemrec.knnitembased.KNNItemBasedJob --input $localTempDir$ratings.csv --itemsFile $localTempDir$itemsIndex.tsv --output $localTempDir$predicted.tsv --outputSim $localTempDir$itemSim.csv --appid $appid$ --engineid $engineid$ --algoid $algoid$ --evalid $evalid$ --booleanData $booleanData$ --numRecommendations $numRecommendations$ --itemSimilarity $itemSimilarity$ --weighted $weighted$ --nearestN $nearestN$ --threshold $threshold$ --preComputeItemSim $preComputeItemSim$ --similarItemsPerItem $similarItemsPerItem$ --unseenOnly $unseenOnly$ --seenFile $localTempDir$seen.csv --freshness $freshness$ --recommendationTime $recommendationTime$ --freshnessTimeUnit $freshnessTimeUnit$",
"$base$/bin/itemrec.mahout.modelcon --inputDir $localTempDir$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ --evalid $evalid$ --modelSet $modelset$ --numRecommendations $numRecommendations$ --booleanData $booleanData$"
],
"paramorder": [
"booleanData",
"itemSimilarity",
"weighted",
"nearestN",
"threshold",
"preComputeItemSim",
"similarItemsPerItem",
"viewParam",
"likeParam",
"dislikeParam",
"conversionParam",
"conflictParam"
],
"engineinfoid": "itemrec",
"techreq": [],
"datareq": [
"Users, Items, and U2I Actions such as Like, Conversion and Rate."
],
"capabilities": ["freshness"],
"params": {
"booleanData": {
"name": "Boolean Data",
"description": "Treat input data as having no preference values.",
"constraint": {
"paramtype": "boolean"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "True",
"value": "true"
},
{
"name": "False",
"value": "false"
}
]
},
"defaultvalue": false
},
"itemSimilarity": {
"name": "Item Similarity",
"description": "Item Similarity Measure.",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "City Block",
"value": "CityBlockSimilarity"
},
{
"name": "Euclidean Distance",
"value": "EuclideanDistanceSimilarity"
},
{
"name": "Log-Likelihood",
"value": "LogLikelihoodSimilarity"
},
{
"name": "Pearson Correlation",
"value": "PearsonCorrelationSimilarity"
},
{
"name": "Tanimoto Coefficient",
"value": "TanimotoCoefficientSimilarity"
},
{
"name": "Uncentered Cosine",
"value": "UncenteredCosineSimilarity"
}
]
},
"defaultvalue": "LogLikelihoodSimilarity"
},
"weighted": {
"name": "Weighted",
"description": "The Similarity score is weighted (only applied to Euclidean Distance, Pearson Correlation, Uncentered Cosine item similarity).",
"constraint": {
"paramtype": "boolean"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "True",
"value": "true"
},
{
"name": "False",
"value": "false"
}
]
},
"defaultvalue": false
},
"viewParam": {
"name": "View Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "3"
},
"nearestN": {
"name": "Nearest K",
"description": "K-nearest rated item neighbors.",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 10
},
"threshold": {
"name": "Threshold",
"description": "Similarity threshold.",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 5e-324
},
"preComputeItemSim": {
"name": "Pre-Compute Item Similarity",
"description": "Pre-compute item similarity for better run time performance (but use more storage space and memory).",
"constraint": {
"paramtype": "boolean"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "True",
"value": "true"
},
{
"name": "False",
"value": "false"
}
]
},
"defaultvalue": false
},
"similarItemsPerItem": {
"name": "Number of Similar Items per Items",
"description": "Number of Similar items in pre-computed item similarity. Only applicable when Pre-Compute Item Similarity = true. Should set this cautiously if you have large number of items (>100K). Storage space needed is about number of items * number of similar items * 30Bytes. Also, the pre-computed similarity will be loaded into memory.",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 100
},
"likeParam": {
"name": "Like Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "5"
},
"dislikeParam": {
"name": "Dislike Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "1"
},
"conversionParam": {
"name": "Conversion Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "4"
},
"conflictParam": {
"name": "Override",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "Use the latest action",
"value": "latest"
},
{
"name": "Use the highest preference score one",
"value": "highest"
},
{
"name": "Use the lowest preference score one",
"value": "lowest"
}
]
},
"defaultvalue": "latest"
},
"nearestNMin": {
"name": "nearestNMin",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 5
},
"nearestNMax": {
"name": "nearestNMax",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 15
},
"thresholdMin": {
"name": "thresholdMin",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 5e-324
},
"thresholdMax": {
"name": "thresholdMax",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0.2
}
},
"paramsections": [
{
"name": "Parameter Settings",
"sectiontype": "normal",
"subsections": [
{
"name": "Item Similarity Measurement",
"sectiontype": "normal",
"params": [
"itemSimilarity"
]
},
{
"name": "Advanced Parameters",
"sectiontype": "normal",
"params": [
"booleanData",
"weighted",
"preComputeItemSim",
"similarItemsPerItem"
]
},
{
"name": "Numeric Parameters",
"sectiontype": "tuning",
"params": [
"nearestN",
"threshold"
]
}
]
},
{
"name": "User Actions Representation Settings",
"sectiontype": "normal",
"subsections": [
{
"name": "User Action Scores",
"sectiontype": "normal",
"description": "Define the preference score represented by each user action from 1 to 5. 5 is the most preferred, 1 is the least preferred. 3 is neutral.",
"params": [
"viewParam",
"likeParam",
"dislikeParam",
"conversionParam"
]
},
{
"name": "Overriding",
"sectiontype": "normal",
"description": "When there are conflicting actions, e.g. a user gives an item a rating 5 but later dislikes it, determine which action will be considered as final preference.",
"params": [
"conflictParam"
]
}
]
}
]
},
"pio-itemrec-single-mahout-knnuserbased": {
"name": "Mahout's kNN User Based Collaborative Filtering (Single Machine)",
"description": "Predicts user preferences based on previous behaviors of users who are the k-nearest neighbors (Single Machine).",
"batchcommands": [
"$base$/bin/itemrec.generic.dataprep --outputDir $localTempDir$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ $itypes$ --viewParam $viewParam$ --likeParam $likeParam$ --dislikeParam $dislikeParam$ --conversionParam $conversionParam$ --conflictParam $conflictParam$ --recommendationTime $recommendationTime$ --matrixMarket false --seenActions $seenActions$",
"$base$/bin/itemrec.mahout.mahoutjob io.prediction.algorithms.mahout.itemrec.knnuserbased.KNNUserBasedJob --input $localTempDir$ratings.csv --itemsFile $localTempDir$itemsIndex.tsv --output $localTempDir$predicted.tsv --appid $appid$ --engineid $engineid$ --algoid $algoid$ --booleanData $booleanData$ --numRecommendations $numRecommendations$ --unseenOnly $unseenOnly$ --seenFile $localTempDir$seen.csv --nearestN $nearestN$ --userSimilarity $userSimilarity$ --weighted $weighted$ --minSimilarity $minSimilarity$ --samplingRate $samplingRate$ --freshness $freshness$ --recommendationTime $recommendationTime$ --freshnessTimeUnit $freshnessTimeUnit$",
"$base$/bin/itemrec.mahout.modelcon --inputDir $localTempDir$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ --modelSet $modelset$ --numRecommendations $numRecommendations$ --booleanData $booleanData$"
],
"offlineevalcommands": [
"$base$/bin/itemrec.generic.dataprep --outputDir $localTempDir$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ --evalid $evalid$ $itypes$ --viewParam $viewParam$ --likeParam $likeParam$ --dislikeParam $dislikeParam$ --conversionParam $conversionParam$ --conflictParam $conflictParam$ --recommendationTime $recommendationTime$ --matrixMarket false --seenActions $seenActions$",
"$base$/bin/itemrec.mahout.mahoutjob io.prediction.algorithms.mahout.itemrec.knnuserbased.KNNUserBasedJob --input $localTempDir$ratings.csv --itemsFile $localTempDir$itemsIndex.tsv --output $localTempDir$predicted.tsv --appid $appid$ --engineid $engineid$ --algoid $algoid$ --evalid $evalid$ --booleanData $booleanData$ --numRecommendations $numRecommendations$ --unseenOnly $unseenOnly$ --seenFile $localTempDir$seen.csv --nearestN $nearestN$ --userSimilarity $userSimilarity$ --weighted $weighted$ --minSimilarity $minSimilarity$ --samplingRate $samplingRate$ --freshness $freshness$ --recommendationTime $recommendationTime$ --freshnessTimeUnit $freshnessTimeUnit$",
"$base$/bin/itemrec.mahout.modelcon --inputDir $localTempDir$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ --evalid $evalid$ --modelSet $modelset$ --numRecommendations $numRecommendations$ --booleanData $booleanData$"
],
"paramorder": [
"booleanData",
"nearestN",
"userSimilarity",
"weighted",
"minSimilarity",
"samplingRate",
"viewParam",
"likeParam",
"dislikeParam",
"conversionParam",
"conflictParam"
],
"engineinfoid": "itemrec",
"techreq": [],
"datareq": [
"Users, Items, and U2I Actions such as Like, Conversion and Rate."
],
"capabilities": ["freshness"],
"params": {
"booleanData": {
"name": "Boolean Data",
"description": "Treat input data as having no preference values.",
"constraint": {
"paramtype": "boolean"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "True",
"value": "true"
},
{
"name": "False",
"value": "false"
}
]
},
"defaultvalue": false
},
"nearestN": {
"name": "Nearest K",
"description": "K-nearest neighbors to a given user.",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 10
},
"userSimilarity": {
"name": "User Similarity",
"description": "User Similarity Measure.",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "City Block",
"value": "CityBlockSimilarity"
},
{
"name": "Euclidean Distance",
"value": "EuclideanDistanceSimilarity"
},
{
"name": "Log-Likelihood",
"value": "LogLikelihoodSimilarity"
},
{
"name": "Pearson Correlation",
"value": "PearsonCorrelationSimilarity"
},
{
"name": "Spearman Correlation",
"value": "SpearmanCorrelationSimilarity"
},
{
"name": "Tanimoto Coefficient",
"value": "TanimotoCoefficientSimilarity"
},
{
"name": "Uncentered Cosine",
"value": "UncenteredCosineSimilarity"
}
]
},
"defaultvalue": "PearsonCorrelationSimilarity"
},
"weighted": {
"name": "Weighted",
"description": "The Similarity score is weighted (only applied to Euclidean Distance, Pearson Correlation, Uncentered Cosine user similarity).",
"constraint": {
"paramtype": "boolean"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "True",
"value": "true"
},
{
"name": "False",
"value": "false"
}
]
},
"defaultvalue": false
},
"minSimilarity": {
"name": "Minimal Similarity",
"description": "Minimal similarity required for neighbors.",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 5e-324
},
"samplingRate": {
"name": "Sampling Rate",
"description": "Must be greater > 0 and <= 1. Percentage of users to consider when building neighborhood. Decrease to trade quality for performance.",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 1
},
"viewParam": {
"name": "View Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "3"
},
"likeParam": {
"name": "Like Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "5"
},
"dislikeParam": {
"name": "Dislike Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "1"
},
"conversionParam": {
"name": "Conversion Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "4"
},
"conflictParam": {
"name": "Override",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "Use the latest action",
"value": "latest"
},
{
"name": "Use the highest preference score one",
"value": "highest"
},
{
"name": "Use the lowest preference score one",
"value": "lowest"
}
]
},
"defaultvalue": "latest"
},
"nearestNMin": {
"name": "nearestNMin",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 5
},
"nearestNMax": {
"name": "nearestNMax",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 15
},
"minSimilarityMin": {
"name": "minSimilarityMin",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 5e-324
},
"minSimilarityMax": {
"name": "minSimilarityMax",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0.2
},
"samplingRateMin": {
"name": "samplingRateMin",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0.5
},
"samplingRateMax": {
"name": "samplingRateMax",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 1
}
},
"paramsections": [
{
"name": "Parameter Settings",
"sectiontype": "normal",
"subsections": [
{
"name": "User Similarity Measurement",
"sectiontype": "normal",
"params": [
"userSimilarity"
]
},
{
"name": "Advanced Parameters",
"sectiontype": "normal",
"params": [
"booleanData",
"weighted"
]
},
{
"name": "Numeric Parameters",
"sectiontype": "tuning",
"params": [
"nearestN",
"minSimilarity",
"samplingRate"
]
}
]
},
{
"name": "User Actions Representation Settings",
"sectiontype": "normal",
"subsections": [
{
"name": "User Action Scores",
"sectiontype": "normal",
"description": "Define the preference score represented by each user action from 1 to 5. 5 is the most preferred, 1 is the least preferred. 3 is neutral.",
"params": [
"viewParam",
"likeParam",
"dislikeParam",
"conversionParam"
]
},
{
"name": "Overriding",
"sectiontype": "normal",
"description": "When there are conflicting actions, e.g. a user gives an item a rating 5 but later dislikes it, determine which action will be considered as final preference.",
"params": [
"conflictParam"
]
}
]
}
]
},
"pio-itemrec-single-mahout-thresholduserbased": {
"name": "Mahout's Threshold User Based Collaborative Filtering (Single Machine)",
"description": "Predicts user preferences based on previous behaviors of users whose similarity meets or exceeds a certain threshold (Single Machine).",
"batchcommands": [
"$base$/bin/itemrec.generic.dataprep --outputDir $localTempDir$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ $itypes$ --viewParam $viewParam$ --likeParam $likeParam$ --dislikeParam $dislikeParam$ --conversionParam $conversionParam$ --conflictParam $conflictParam$ --recommendationTime $recommendationTime$ --matrixMarket false --seenActions $seenActions$",
"$base$/bin/itemrec.mahout.mahoutjob io.prediction.algorithms.mahout.itemrec.thresholduserbased.ThresholdUserBasedJob --input $localTempDir$ratings.csv --itemsFile $localTempDir$itemsIndex.tsv --output $localTempDir$predicted.tsv --appid $appid$ --engineid $engineid$ --algoid $algoid$ --booleanData $booleanData$ --numRecommendations $numRecommendations$ --unseenOnly $unseenOnly$ --seenFile $localTempDir$seen.csv --threshold $threshold$ --userSimilarity $userSimilarity$ --weighted $weighted$ --samplingRate $samplingRate$ --freshness $freshness$ --recommendationTime $recommendationTime$ --freshnessTimeUnit $freshnessTimeUnit$",
"$base$/bin/itemrec.mahout.modelcon --inputDir $localTempDir$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ --modelSet $modelset$ --numRecommendations $numRecommendations$ --booleanData $booleanData$"
],
"offlineevalcommands": [
"$base$/bin/itemrec.generic.dataprep --outputDir $localTempDir$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ --evalid $evalid$ $itypes$ --viewParam $viewParam$ --likeParam $likeParam$ --dislikeParam $dislikeParam$ --conversionParam $conversionParam$ --conflictParam $conflictParam$ --recommendationTime $recommendationTime$ --matrixMarket false --seenActions $seenActions$",
"$base$/bin/itemrec.mahout.mahoutjob io.prediction.algorithms.mahout.itemrec.thresholduserbased.ThresholdUserBasedJob --input $localTempDir$ratings.csv --itemsFile $localTempDir$itemsIndex.tsv --output $localTempDir$predicted.tsv --appid $appid$ --engineid $engineid$ --algoid $algoid$ --evalid $evalid$ --booleanData $booleanData$ --numRecommendations $numRecommendations$ --unseenOnly $unseenOnly$ --seenFile $localTempDir$seen.csv --threshold $threshold$ --userSimilarity $userSimilarity$ --weighted $weighted$ --samplingRate $samplingRate$ --freshness $freshness$ --recommendationTime $recommendationTime$ --freshnessTimeUnit $freshnessTimeUnit$",
"$base$/bin/itemrec.mahout.modelcon --inputDir $localTempDir$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ --evalid $evalid$ --modelSet $modelset$ --numRecommendations $numRecommendations$ --booleanData $booleanData$"
],
"paramorder": [
"booleanData",
"threshold",
"userSimilarity",
"weighted",
"samplingRate",
"viewParam",
"likeParam",
"dislikeParam",
"conversionParam",
"conflictParam"
],
"engineinfoid": "itemrec",
"techreq": [],
"datareq": [
"Users, Items, and U2I Actions such as Like, Conversion and Rate."
],
"capabilities": ["freshness"],
"params": {
"booleanData": {
"name": "Boolean Data",
"description": "Treat input data as having no preference values.",
"constraint": {
"paramtype": "boolean"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "True",
"value": "true"
},
{
"name": "False",
"value": "false"
}
]
},
"defaultvalue": false
},
"threshold": {
"name": "Threshold",
"description": "Similarity threshold.",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 5e-324
},
"userSimilarity": {
"name": "User Similarity",
"description": "User Similarity Measure.",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "City Block",
"value": "CityBlockSimilarity"
},
{
"name": "Euclidean Distance",
"value": "EuclideanDistanceSimilarity"
},
{
"name": "Log-Likelihood",
"value": "LogLikelihoodSimilarity"
},
{
"name": "Pearson Correlation",
"value": "PearsonCorrelationSimilarity"
},
{
"name": "Spearman Correlation",
"value": "SpearmanCorrelationSimilarity"
},
{
"name": "Tanimoto Coefficient",
"value": "TanimotoCoefficientSimilarity"
},
{
"name": "Uncentered Cosine",
"value": "UncenteredCosineSimilarity"
}
]
},
"defaultvalue": "PearsonCorrelationSimilarity"
},
"weighted": {
"name": "Weighted",
"description": "The Similarity score is weighted (only applied to Euclidean Distance, Pearson Correlation, Uncentered Cosine user similarity).",
"constraint": {
"paramtype": "boolean"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "True",
"value": "true"
},
{
"name": "False",
"value": "false"
}
]
},
"defaultvalue": false
},
"samplingRate": {
"name": "Sampling Rate",
"description": "Must be greater > 0 and <= 1. Percentage of users to consider when building neighborhood. Decrease to trade quality for performance.",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 1
},
"viewParam": {
"name": "View Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "3"
},
"likeParam": {
"name": "Like Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "5"
},
"dislikeParam": {
"name": "Dislike Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "1"
},
"conversionParam": {
"name": "Conversion Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "4"
},
"conflictParam": {
"name": "Override",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "Use the latest action",
"value": "latest"
},
{
"name": "Use the highest preference score one",
"value": "highest"
},
{
"name": "Use the lowest preference score one",
"value": "lowest"
}
]
},
"defaultvalue": "latest"
},
"thresholdMin": {
"name": "thresholdMin",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 5e-324
},
"thresholdMax": {
"name": "thresholdMax",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0.2
},
"samplingRateMin": {
"name": "samplingRateMin",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0.5
},
"samplingRateMax": {
"name": "samplingRateMax",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 1
}
},
"paramsections": [
{
"name": "Parameter Settings",
"sectiontype": "normal",
"subsections": [
{
"name": "User Similarity Measurement",
"sectiontype": "normal",
"params": [
"userSimilarity"
]
},
{
"name": "Advanced Parameters",
"sectiontype": "normal",
"params": [
"booleanData",
"weighted"
]
},
{
"name": "Numeric Parameters",
"sectiontype": "tuning",
"params": [
"threshold",
"samplingRate"
]
}
]
},
{
"name": "User Actions Representation Settings",
"sectiontype": "normal",
"subsections": [
{
"name": "User Action Scores",
"sectiontype": "normal",
"description": "Define the preference score represented by each user action from 1 to 5. 5 is the most preferred, 1 is the least preferred. 3 is neutral.",
"params": [
"viewParam",
"likeParam",
"dislikeParam",
"conversionParam"
]
},
{
"name": "Overriding",
"sectiontype": "normal",
"description": "When there are conflicting actions, e.g. a user gives an item a rating 5 but later dislikes it, determine which action will be considered as final preference.",
"params": [
"conflictParam"
]
}
]
}
]
},
"pio-itemrec-single-mahout-alswr": {
"name": "Mahout's ALS-WR (Single Machine)",
"description": "Predict user preferences using matrix factorization (Single Machine).",
"batchcommands": [
"$base$/bin/itemrec.generic.dataprep --outputDir $localTempDir$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ $itypes$ --viewParam $viewParam$ --likeParam $likeParam$ --dislikeParam $dislikeParam$ --conversionParam $conversionParam$ --conflictParam $conflictParam$ --recommendationTime $recommendationTime$ --matrixMarket false --seenActions $seenActions$",
"$base$/bin/itemrec.mahout.mahoutjob io.prediction.algorithms.mahout.itemrec.alswr.ALSWRJob --input $localTempDir$ratings.csv --itemsFile $localTempDir$itemsIndex.tsv --output $localTempDir$predicted.tsv --appid $appid$ --engineid $engineid$ --algoid $algoid$ --numRecommendations $numRecommendations$ --unseenOnly $unseenOnly$ --seenFile $localTempDir$seen.csv --numFeatures $numFeatures$ --lambda $lambda$ --numIterations $numIterations$ --freshness $freshness$ --recommendationTime $recommendationTime$ --freshnessTimeUnit $freshnessTimeUnit$",
"$base$/bin/itemrec.mahout.modelcon --inputDir $localTempDir$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ --modelSet $modelset$ --numRecommendations $numRecommendations$"
],
"offlineevalcommands": [
"$base$/bin/itemrec.generic.dataprep --outputDir $localTempDir$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ --evalid $evalid$ $itypes$ --viewParam $viewParam$ --likeParam $likeParam$ --dislikeParam $dislikeParam$ --conversionParam $conversionParam$ --conflictParam $conflictParam$ --recommendationTime $recommendationTime$ --matrixMarket false --seenActions $seenActions$",
"$base$/bin/itemrec.mahout.mahoutjob io.prediction.algorithms.mahout.itemrec.alswr.ALSWRJob --input $localTempDir$ratings.csv --itemsFile $localTempDir$itemsIndex.tsv --output $localTempDir$predicted.tsv --appid $appid$ --engineid $engineid$ --algoid $algoid$ --evalid $evalid$ --numRecommendations $numRecommendations$ --unseenOnly $unseenOnly$ --seenFile $localTempDir$seen.csv --numFeatures $numFeatures$ --lambda $lambda$ --numIterations $numIterations$ --freshness $freshness$ --recommendationTime $recommendationTime$ --freshnessTimeUnit $freshnessTimeUnit$",
"$base$/bin/itemrec.mahout.modelcon --inputDir $localTempDir$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ --evalid $evalid$ --modelSet $modelset$ --numRecommendations $numRecommendations$"
],
"paramorder": [
"numFeatures",
"lambda",
"numIterations",
"viewParam",
"likeParam",
"dislikeParam",
"conversionParam",
"conflictParam"
],
"engineinfoid": "itemrec",
"techreq": [],
"datareq": [
"Users, Items, and U2I Actions such as Like, Conversion and Rate."
],
"capabilities": ["freshness"],
"params": {
"numFeatures": {
"name": "Number of Factorized Features",
"description": "Dimension of the factorized feature space.",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 3
},
"lambda": {
"name": "Lambda",
"description": "Regularization param to avoid overfitting.",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0.03
},
"numIterations": {
"name": "Number of Iterations",
"description": "Number of training iteration.",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 3
},
"viewParam": {
"name": "View Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "3"
},
"likeParam": {
"name": "Like Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "5"
},
"dislikeParam": {
"name": "Dislike Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "1"
},
"conversionParam": {
"name": "Conversion Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "4"
},
"conflictParam": {
"name": "Override",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "Use the latest action",
"value": "latest"
},
{
"name": "Use the highest preference score one",
"value": "highest"
},
{
"name": "Use the lowest preference score one",
"value": "lowest"
}
]
},
"defaultvalue": "latest"
},
"numFeaturesMin": {
"name": "numFeaturesMin",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 2
},
"numFeaturesMax": {
"name": "numFeaturesMax",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 10
},
"lambdaMin": {
"name": "lambdaMin",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0.01
},
"lambdaMax": {
"name": "lambdaMax",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0.1
},
"numIterationsMin": {
"name": "numIterationsMin",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 1
},
"numIterationsMax": {
"name": "numIterationsMax",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 20
}
},
"paramsections": [
{
"name": "Parameter Settings",
"sectiontype": "normal",
"subsections": [
{
"name": "",
"sectiontype": "tuning",
"params": [
"numFeatures",
"lambda",
"numIterations"
]
}
]
},
{
"name": "User Actions Representation Settings",
"sectiontype": "normal",
"subsections": [
{
"name": "User Action Scores",
"sectiontype": "normal",
"description": "Define the preference score represented by each user action from 1 to 5. 5 is the most preferred, 1 is the least preferred. 3 is neutral.",
"params": [
"viewParam",
"likeParam",
"dislikeParam",
"conversionParam"
]
},
{
"name": "Overriding",
"sectiontype": "normal",
"description": "When there are conflicting actions, e.g. a user gives an item a rating 5 but later dislikes it, determine which action will be considered as final preference.",
"params": [
"conflictParam"
]
}
]
}
]
},
"pio-itemrec-single-mahout-svdsgd": {
"name": "Mahout's SVD-RatingSGD Recommender (Single Machine)",
"description": "Predict user preferences using matrix factorization (Single Machine).",
"batchcommands": [
"$base$/bin/itemrec.generic.dataprep --outputDir $localTempDir$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ $itypes$ --viewParam $viewParam$ --likeParam $likeParam$ --dislikeParam $dislikeParam$ --conversionParam $conversionParam$ --conflictParam $conflictParam$ --recommendationTime $recommendationTime$ --matrixMarket false --seenActions $seenActions$",
"$base$/bin/itemrec.mahout.mahoutjob io.prediction.algorithms.mahout.itemrec.svdsgd.SVDSGDJob --input $localTempDir$ratings.csv --itemsFile $localTempDir$itemsIndex.tsv --output $localTempDir$predicted.tsv --appid $appid$ --engineid $engineid$ --algoid $algoid$ --numRecommendations $numRecommendations$ --unseenOnly $unseenOnly$ --seenFile $localTempDir$seen.csv --numFeatures $numFeatures$ --learningRate $learningRate$ --preventOverfitting $preventOverfitting$ --randomNoise $randomNoise$ --numIterations $numIterations$ --learningRateDecay $learningRateDecay$ --freshness $freshness$ --recommendationTime $recommendationTime$ --freshnessTimeUnit $freshnessTimeUnit$",
"$base$/bin/itemrec.mahout.modelcon --inputDir $localTempDir$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ --modelSet $modelset$ --numRecommendations $numRecommendations$"
],
"offlineevalcommands": [
"$base$/bin/itemrec.generic.dataprep --outputDir $localTempDir$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ --evalid $evalid$ $itypes$ --viewParam $viewParam$ --likeParam $likeParam$ --dislikeParam $dislikeParam$ --conversionParam $conversionParam$ --conflictParam $conflictParam$ --recommendationTime $recommendationTime$ --matrixMarket false --seenActions $seenActions$",
"$base$/bin/itemrec.mahout.mahoutjob io.prediction.algorithms.mahout.itemrec.svdsgd.SVDSGDJob --input $localTempDir$ratings.csv --itemsFile $localTempDir$itemsIndex.tsv --output $localTempDir$predicted.tsv --appid $appid$ --engineid $engineid$ --algoid $algoid$ --evalid $evalid$ --numRecommendations $numRecommendations$ --unseenOnly $unseenOnly$ --seenFile $localTempDir$seen.csv --numFeatures $numFeatures$ --learningRate $learningRate$ --preventOverfitting $preventOverfitting$ --randomNoise $randomNoise$ --numIterations $numIterations$ --learningRateDecay $learningRateDecay$ --freshness $freshness$ --recommendationTime $recommendationTime$ --freshnessTimeUnit $freshnessTimeUnit$",
"$base$/bin/itemrec.mahout.modelcon --inputDir $localTempDir$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ --evalid $evalid$ --modelSet $modelset$ --numRecommendations $numRecommendations$"
],
"paramorder": [
"numFeatures",
"learningRate",
"preventOverfitting",
"randomNoise",
"numIterations",
"learningRateDecay",
"viewParam",
"likeParam",
"dislikeParam",
"conversionParam",
"conflictParam"
],
"engineinfoid": "itemrec",
"techreq": [],
"datareq": [
"Users, Items, and U2I Actions such as Like, Conversion and Rate."
],
"capabilities": ["freshness"],
"params": {
"numFeatures": {
"name": "Number of Factorized Features",
"description": "Dimension of the factorized feature space.",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 3
},
"learningRate": {
"name": "Learning Rate",
"description": "Learning rate (step size).",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0.01
},
"preventOverfitting": {
"name": "Prevent Overfitting",
"description": "Parameter used to prevent overfitting.",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0.1
},
"randomNoise": {
"name": "Random Noise",
"description": "Standard deviation for random initialization of feature.",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0.01
},
"numIterations": {
"name": "Number of Iterations",
"description": "Number of training iterations.",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 3
},
"learningRateDecay": {
"name": "Learning Rate Decay",
"description": "Multiplicative decay factor for Learning Rate.",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 1
},
"viewParam": {
"name": "View Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "3"
},
"likeParam": {
"name": "Like Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "5"
},
"dislikeParam": {
"name": "Dislike Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "1"
},
"conversionParam": {
"name": "Conversion Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "4"
},
"conflictParam": {
"name": "Override",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "Use the latest action",
"value": "latest"
},
{
"name": "Use the highest preference score one",
"value": "highest"
},
{
"name": "Use the lowest preference score one",
"value": "lowest"
}
]
},
"defaultvalue": "latest"
},
"numFeaturesMin": {
"name": "numFeaturesMin",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 2
},
"numFeaturesMax": {
"name": "numFeaturesMax",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 10
},
"learningRateMin": {
"name": "learningRateMin",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0.01
},
"learningRateMax": {
"name": "learningRateMax",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0.05
},
"preventOverfittingMin": {
"name": "preventOverfittingMin",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0.1
},
"preventOverfittingMax": {
"name": "preventOverfittingMax",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0.5
},
"randomNoiseMin": {
"name": "randomNoiseMin",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0.01
},
"randomNoiseMax": {
"name": "randomNoiseMax",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0.05
},
"numIterationsMin": {
"name": "numIterationsMin",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 1
},
"numIterationsMax": {
"name": "numIterationsMax",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 10
},
"learningRateDecayMin": {
"name": "learningRateDecayMin",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 1
},
"learningRateDecayMax": {
"name": "learningRateDecayMax",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 1
}
},
"paramsections": [
{
"name": "Parameter Settings",
"sectiontype": "normal",
"subsections": [
{
"name": "Numeric Parameters",
"sectiontype": "tuning",
"params": [
"numFeatures",
"learningRate",
"preventOverfitting",
"randomNoise",
"numIterations",
"learningRateDecay"
]
}
]
},
{
"name": "User Actions Representation Settings",
"sectiontype": "normal",
"subsections": [
{
"name": "User Action Scores",
"sectiontype": "normal",
"description": "Define the preference score represented by each user action from 1 to 5. 5 is the most preferred, 1 is the least preferred. 3 is neutral.",
"params": [
"viewParam",
"likeParam",
"dislikeParam",
"conversionParam"
]
},
{
"name": "Overriding",
"sectiontype": "normal",
"description": "When there are conflicting actions, e.g. a user gives an item a rating 5 but later dislikes it, determine which action will be considered as final preference.",
"params": [
"conflictParam"
]
}
]
}
]
},
"pio-itemrec-single-mahout-svdplusplus": {
"name": "Mahout's SVDPlusPlus Recommender (Single Machine)",
"description": "Predict user preferences using matrix factorization (Single Machine).",
"batchcommands": [
"$base$/bin/itemrec.generic.dataprep --outputDir $localTempDir$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ $itypes$ --viewParam $viewParam$ --likeParam $likeParam$ --dislikeParam $dislikeParam$ --conversionParam $conversionParam$ --conflictParam $conflictParam$ --recommendationTime $recommendationTime$ --matrixMarket false --seenActions $seenActions$",
"$base$/bin/itemrec.mahout.mahoutjob io.prediction.algorithms.mahout.itemrec.svdplusplus.SVDPlusPlusJob --input $localTempDir$ratings.csv --itemsFile $localTempDir$itemsIndex.tsv --output $localTempDir$predicted.tsv --appid $appid$ --engineid $engineid$ --algoid $algoid$ --numRecommendations $numRecommendations$ --unseenOnly $unseenOnly$ --seenFile $localTempDir$seen.csv --numFeatures $numFeatures$ --learningRate $learningRate$ --preventOverfitting $preventOverfitting$ --randomNoise $randomNoise$ --numIterations $numIterations$ --learningRateDecay $learningRateDecay$ --freshness $freshness$ --recommendationTime $recommendationTime$ --freshnessTimeUnit $freshnessTimeUnit$",
"$base$/bin/itemrec.mahout.modelcon --inputDir $localTempDir$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ --modelSet $modelset$ --numRecommendations $numRecommendations$"
],
"offlineevalcommands": [
"$base$/bin/itemrec.generic.dataprep --outputDir $localTempDir$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ --evalid $evalid$ $itypes$ --viewParam $viewParam$ --likeParam $likeParam$ --dislikeParam $dislikeParam$ --conversionParam $conversionParam$ --conflictParam $conflictParam$ --recommendationTime $recommendationTime$ --matrixMarket false --seenActions $seenActions$",
"$base$/bin/itemrec.mahout.mahoutjob io.prediction.algorithms.mahout.itemrec.svdplusplus.SVDPlusPlusJob --input $localTempDir$ratings.csv --itemsFile $localTempDir$itemsIndex.tsv --output $localTempDir$predicted.tsv --appid $appid$ --engineid $engineid$ --algoid $algoid$ --evalid $evalid$ --numRecommendations $numRecommendations$ --unseenOnly $unseenOnly$ --seenFile $localTempDir$seen.csv --numFeatures $numFeatures$ --learningRate $learningRate$ --preventOverfitting $preventOverfitting$ --randomNoise $randomNoise$ --numIterations $numIterations$ --learningRateDecay $learningRateDecay$ --freshness $freshness$ --recommendationTime $recommendationTime$ --freshnessTimeUnit $freshnessTimeUnit$",
"$base$/bin/itemrec.mahout.modelcon --inputDir $localTempDir$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ --evalid $evalid$ --modelSet $modelset$ --numRecommendations $numRecommendations$"
],
"paramorder": [
"numFeatures",
"learningRate",
"preventOverfitting",
"randomNoise",
"numIterations",
"learningRateDecay",
"viewParam",
"likeParam",
"dislikeParam",
"conversionParam",
"conflictParam"
],
"engineinfoid": "itemrec",
"techreq": [],
"datareq": [
"Users, Items, and U2I Actions such as Like, Conversion and Rate."
],
"capabilities": ["freshness"],
"params": {
"numFeatures": {
"name": "Number of Factorized Features",
"description": "Dimension of the factorized feature space.",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 3
},
"learningRate": {
"name": "Learning Rate",
"description": "Learning rate (step size).",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0.01
},
"preventOverfitting": {
"name": "Prevent Overfitting",
"description": "Parameter used to prevent overfitting.",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0.1
},
"randomNoise": {
"name": "Random Noise",
"description": "Standard deviation for random initialization of feature.",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0.01
},
"numIterations": {
"name": "Number of Iterations",
"description": "Number of training iterations.",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 3
},
"learningRateDecay": {
"name": "Learning Rate Decay",
"description": "Multiplicative decay factor for Learning Rate.",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 1
},
"viewParam": {
"name": "View Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "3"
},
"likeParam": {
"name": "Like Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "5"
},
"dislikeParam": {
"name": "Dislike Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "1"
},
"conversionParam": {
"name": "Conversion Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "4"
},
"conflictParam": {
"name": "Override",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "Use the latest action",
"value": "latest"
},
{
"name": "Use the highest preference score one",
"value": "highest"
},
{
"name": "Use the lowest preference score one",
"value": "lowest"
}
]
},
"defaultvalue": "latest"
},
"numFeaturesMin": {
"name": "numFeaturesMin",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 2
},
"numFeaturesMax": {
"name": "numFeaturesMax",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 10
},
"learningRateMin": {
"name": "learningRateMin",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0.01
},
"learningRateMax": {
"name": "learningRateMax",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0.05
},
"preventOverfittingMin": {
"name": "preventOverfittingMin",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0.1
},
"preventOverfittingMax": {
"name": "preventOverfittingMax",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0.5
},
"randomNoiseMin": {
"name": "randomNoiseMin",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0.01
},
"randomNoiseMax": {
"name": "randomNoiseMax",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0.05
},
"numIterationsMin": {
"name": "numIterationsMin",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 1
},
"numIterationsMax": {
"name": "numIterationsMax",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 10
},
"learningRateDecayMin": {
"name": "learningRateDecayMin",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 1
},
"learningRateDecayMax": {
"name": "learningRateDecayMax",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 1
}
},
"paramsections": [
{
"name": "Parameter Settings",
"sectiontype": "normal",
"subsections": [
{
"name": "Numeric Parameters",
"sectiontype": "tuning",
"params": [
"numFeatures",
"learningRate",
"preventOverfitting",
"randomNoise",
"numIterations",
"learningRateDecay"
]
}
]
},
{
"name": "User Actions Representation Settings",
"sectiontype": "normal",
"subsections": [
{
"name": "User Action Scores",
"sectiontype": "normal",
"description": "Define the preference score represented by each user action from 1 to 5. 5 is the most preferred, 1 is the least preferred. 3 is neutral.",
"params": [
"viewParam",
"likeParam",
"dislikeParam",
"conversionParam"
]
},
{
"name": "Overriding",
"sectiontype": "normal",
"description": "When there are conflicting actions, e.g. a user gives an item a rating 5 but later dislikes it, determine which action will be considered as final preference.",
"params": [
"conflictParam"
]
}
]
}
]
},
"pio-itemrec-single-featurebased_batch": {
"name": "Feature Based, Batch Mode. (Experimental)",
"description": "Item recommendation based on item's feature vector (itypes). This engine build a user preference model based on high ratings items (rate > 3).",
"batchcommands": [
"$base$/bin/itemrec.featurebased.Batch --appid $appid$ --algoid $algoid$ --modelSet $modelset$ --numRecommendations $numRecommendations$ --featureItypes $featureItypes$ $itypes$"
],
"offlineevalcommands": [
"$base$/bin/itemrec.featurebased.Batch --appid $appid$ --algoid $algoid$ --modelSet $modelset$ --numRecommendations $numRecommendations$ --featureItypes $featureItypes$"
],
"paramorder": [],
"engineinfoid": "itemrec",
"techreq": [],
"datareq": [
"Users, Items, and U2I Actions."
],
"params": {
"featureItypes": {
"name": "Feature Itypes",
"description": "A comma-delimited list of itypes that is used to construct the preference model. If not specified, all itypes found in items will be used.",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "text"
},
"defaultvalue": ""
}
},
"paramsections": [
{
"name": "Parameter Settings",
"sectiontype": "normal",
"params": [
"featureItypes"
]
}
]
},
"pio-itemrec-single-featurebased_realtime": {
"name": "Feature Based, Realtime Mode. (Experimental)",
"description": "Item recommendation based on item's feature vector (itypes). This engine build a user preference model based on high ratings items (rate > 3).",
"batchcommands": [
"$base$/bin/itemrec.featurebased.Realtime --appid $appid$ --algoid $algoid$ --modelSet $modelset$ --numRecommendations $numRecommendations$ --featureItypes $featureItypes$ $itypes$"
],
"offlineevalcommands": [
"$base$/bin/itemrec.featurebased.Realtime --appid $appid$ --algoid $algoid$ --modelSet $modelset$ --numRecommendations $numRecommendations$ --whiteItypes $whiteItypes$"
],
"paramorder": [],
"engineinfoid": "itemrec",
"techreq": [],
"datareq": [
"Users, Items, and U2I Actions."
],
"params": {
"featureItypes": {
"name": "Feature Itypes",
"description": "A comma-delimited list of itypes that is used to construct the preference model. If not specified, all itypes found in items will be used.",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "text"
},
"defaultvalue": ""
}
},
"paramsections": [
{
"name": "Parameter Settings",
"sectiontype": "normal",
"params": [
"featureItypes"
]
}
]
},
"pio-itemsim-distributed-random": {
"name": "Random Rank",
"description": "Predict item similarities randomly.",
"batchcommands": [
"$hadoop$ jar $base$/lib/$pdioItemsimAlgo$ io.prediction.algorithms.scalding.itemsim.randomrank.RandomRank --hdfs --training_dbType $appdataDbType$ --training_dbName $appdataDbName$ --training_dbHost $appdataDbHost$ --training_dbPort $appdataDbPort$ --modeldata_dbType $modeldataDbType$ --modeldata_dbName $modeldataDbName$ --modeldata_dbHost $modeldataDbHost$ --modeldata_dbPort $modeldataDbPort$ --hdfsRoot $hdfsRoot$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ --numSimilarItems $numSimilarItems$ --modelSet $modelset$ --recommendationTime $recommendationTime$"
],
"offlineevalcommands": [
"$hadoop$ jar $base$/lib/$pdioItemsimAlgo$ io.prediction.algorithms.scalding.itemsim.randomrank.RandomRank --hdfs --training_dbType $appdataTrainingDbType$ --training_dbName $appdataTrainingDbName$ --training_dbHost $appdataTrainingDbHost$ --training_dbPort $appdataTrainingDbPort$ --modeldata_dbType $modeldataTrainingDbType$ --modeldata_dbName $modeldataTrainingDbName$ --modeldata_dbHost $modeldataTrainingDbHost$ --modeldata_dbPort $modeldataTrainingDbPort$ --hdfsRoot $hdfsRoot$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ --numSimilarItems $numSimilarItems$ --modelSet false --evalid $evalid$ --recommendationTime $recommendationTime$"
],
"paramorder": [],
"engineinfoid": "itemsim",
"techreq": [
"Hadoop"
],
"datareq": [
"Items."
],
"params": {},
"paramsections": []
},
"pio-itemsim-distributed-latest": {
"name": "Latest Rank",
"description": "Consider latest items as most similar.",
"batchcommands": [
"$hadoop$ jar $base$/lib/$pdioItemsimAlgo$ io.prediction.algorithms.scalding.itemsim.latestrank.LatestRank --hdfs --training_dbType $appdataDbType$ --training_dbName $appdataDbName$ --training_dbHost $appdataDbHost$ --training_dbPort $appdataDbPort$ --modeldata_dbType $modeldataDbType$ --modeldata_dbName $modeldataDbName$ --modeldata_dbHost $modeldataDbHost$ --modeldata_dbPort $modeldataDbPort$ --hdfsRoot $hdfsRoot$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ --numSimilarItems $numSimilarItems$ --modelSet $modelset$ --recommendationTime $recommendationTime$"
],
"offlineevalcommands": [
"$hadoop$ jar $base$/lib/$pdioItemsimAlgo$ io.prediction.algorithms.scalding.itemsim.latestrank.LatestRank --hdfs --training_dbType $appdataTrainingDbType$ --training_dbName $appdataTrainingDbName$ --training_dbHost $appdataTrainingDbHost$ --training_dbPort $appdataTrainingDbPort$ --modeldata_dbType $modeldataTrainingDbType$ --modeldata_dbName $modeldataTrainingDbName$ --modeldata_dbHost $modeldataTrainingDbHost$ --modeldata_dbPort $modeldataTrainingDbPort$ --hdfsRoot $hdfsRoot$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ --numSimilarItems $numSimilarItems$ --modelSet false --evalid $evalid$ --recommendationTime $recommendationTime$"
],
"paramorder": [],
"engineinfoid": "itemsim",
"techreq": [
"Hadoop"
],
"datareq": [
"Items with starttime."
],
"params": {},
"paramsections": []
},
"pio-itemsim-single-mahout-itemsimcf": {
"name": "Mahout's Item Similarity Collaborative Filtering (Single Machine)",
"description": "This algorithm predicts similar items which the user may also like (Single Machine).",
"batchcommands": [
"$base$/bin/itemsim.generic.dataprep --outputDir $localTempDir$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ $itypes$ --viewParam $viewParam$ --likeParam $likeParam$ --dislikeParam $dislikeParam$ --conversionParam $conversionParam$ --conflictParam $conflictParam$ --recommendationTime $recommendationTime$ --matrixMarket false",
"$base$/bin/itemsim.mahout.mahoutjob io.prediction.algorithms.mahout.itemsim.itemsimcf.ItemSimCFJob --input $localTempDir$ratings.csv --output $localTempDir$similarities.tsv --itemsFile $localTempDir$validItemsIndex.tsv --appid $appid$ --engineid $engineid$ --algoid $algoid$ --booleanData $booleanData$ --numSimilarItems $numSimilarItems$ --itemSimilarity $itemSimilarity$ --weighted $weighted$ --freshness $freshness$ --recommendationTime $recommendationTime$ --freshnessTimeUnit $freshnessTimeUnit$",
"$base$/bin/itemsim.mahout.modelcon --inputDir $localTempDir$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ --modelSet $modelset$ --numSimilarItems $numSimilarItems$"
],
"offlineevalcommands": [
"$base$/bin/itemsim.generic.dataprep --outputDir $localTempDir$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ --evalid $evalid$ $itypes$ --viewParam $viewParam$ --likeParam $likeParam$ --dislikeParam $dislikeParam$ --conversionParam $conversionParam$ --conflictParam $conflictParam$ --recommendationTime $recommendationTime$ --matrixMarket false",
"$base$/bin/itemsim.mahout.mahoutjob io.prediction.algorithms.mahout.itemsim.itemsimcf.ItemSimCFJob --input $localTempDir$ratings.csv --output $localTempDir$similarities.tsv --itemsFile $localTempDir$validItemsIndex.tsv --appid $appid$ --engineid $engineid$ --algoid $algoid$ --evalid $evalid$ --booleanData $booleanData$ --numSimilarItems $numSimilarItems$ --itemSimilarity $itemSimilarity$ --weighted $weighted$ --freshness $freshness$ --recommendationTime $recommendationTime$ --freshnessTimeUnit $freshnessTimeUnit$",
"$base$/bin/itemsim.mahout.modelcon --inputDir $localTempDir$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ --evalid $evalid$ --modelSet $modelset$ --numSimilarItems $numSimilarItems$"
],
"paramorder": [
"booleanData",
"itemSimilarity",
"weighted",
"viewParam",
"likeParam",
"dislikeParam",
"conversionParam",
"conflictParam"
],
"engineinfoid": "itemsim",
"techreq": [],
"datareq": [
"Users, Items, and U2I Actions such as Like, Conversion and Rate."
],
"capabilities": [
"freshness"
],
"params": {
"booleanData": {
"name": "Boolean Data",
"description": "Treat input data as having no preference values.",
"constraint": {
"paramtype": "boolean"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "True",
"value": "true"
},
{
"name": "False",
"value": "false"
}
]
},
"defaultvalue": false
},
"itemSimilarity": {
"name": "Item Similarity",
"description": "Item Similarity Measure.",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "City Block",
"value": "CityBlockSimilarity"
},
{
"name": "Euclidean Distance",
"value": "EuclideanDistanceSimilarity"
},
{
"name": "Log-Likelihood",
"value": "LogLikelihoodSimilarity"
},
{
"name": "Pearson Correlation",
"value": "PearsonCorrelationSimilarity"
},
{
"name": "Tanimoto Coefficient",
"value": "TanimotoCoefficientSimilarity"
},
{
"name": "Uncentered Cosine",
"value": "UncenteredCosineSimilarity"
}
]
},
"defaultvalue": "LogLikelihoodSimilarity"
},
"weighted": {
"name": "Weighted",
"description": "The Similarity score is weighted (only applied to Euclidean Distance, Pearson Correlation, Uncentered Cosine item similarity).",
"constraint": {
"paramtype": "boolean"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "True",
"value": "true"
},
{
"name": "False",
"value": "false"
}
]
},
"defaultvalue": false
},
"viewParam": {
"name": "View Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "3"
},
"likeParam": {
"name": "Like Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "5"
},
"dislikeParam": {
"name": "Dislike Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "1"
},
"conversionParam": {
"name": "Conversion Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "4"
},
"conflictParam": {
"name": "Override",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "Use the latest action",
"value": "latest"
},
{
"name": "Use the highest preference score one",
"value": "highest"
},
{
"name": "Use the lowest preference score one",
"value": "lowest"
}
]
},
"defaultvalue": "latest"
}
},
"paramsections": [
{
"name": "Parameter Settings",
"sectiontype": "normal",
"subsections": [
{
"name": "Item Similarity Measurement",
"sectiontype": "normal",
"params": [
"itemSimilarity"
]
},
{
"name": "Advanced Parameters",
"sectiontype": "normal",
"params": [
"booleanData",
"weighted"
]
}
]
},
{
"name": "User Actions Representation Settings",
"sectiontype": "normal",
"subsections": [
{
"name": "User Action Scores",
"sectiontype": "normal",
"description": "Define the preference score represented by each user action from 1 to 5. 5 is the most preferred, 1 is the least preferred. 3 is neutral.",
"params": [
"viewParam",
"likeParam",
"dislikeParam",
"conversionParam"
]
},
{
"name": "Overriding",
"sectiontype": "normal",
"description": "When there are conflicting actions, e.g. a user gives an item a rating 5 but later dislikes it, determine which action will be considered as final preference.",
"params": [
"conflictParam"
]
}
]
}
]
},
"pio-itemsim-distributed-mahout-itemsimcf": {
"name": "Mahout's Item Similarity Collaborative Filtering",
"description": "This algorithm predicts similar items which the user may also like.",
"batchcommands": [
"$base$/bin/quiet.sh $hadoop$ fs -rmr $mahoutTempDir$",
"$base$/bin/quiet.sh $hadoop$ fs -rmr $algoDir$",
"$hadoop$ jar $base$/lib/$pdioItemsimAlgo$ $hadoopOptions$ io.prediction.algorithms.scalding.mahout.itemsim.DataCopy --hdfs --dbType $appdataDbType$ --dbName $appdataDbName$ --dbHost $appdataDbHost$ --dbPort $appdataDbPort$ --hdfsRoot $hdfsRoot$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ $itypes$ --viewParam $viewParam$ --likeParam $likeParam$ --dislikeParam $dislikeParam$ --conversionParam $conversionParam$ --conflictParam $conflictParam$",
"$hadoop$ jar $base$/lib/$pdioItemsimAlgo$ $hadoopOptions$ io.prediction.algorithms.scalding.mahout.itemsim.DataPreparator --hdfs --dbType $appdataDbType$ --dbName $appdataDbName$ --dbHost $appdataDbHost$ --dbPort $appdataDbPort$ --hdfsRoot $hdfsRoot$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ $itypes$ --viewParam $viewParam$ --likeParam $likeParam$ --dislikeParam $dislikeParam$ --conversionParam $conversionParam$ --conflictParam $conflictParam$",
"$hadoop$ jar $mahoutCoreJob$ org.apache.mahout.cf.taste.hadoop.similarity.item.ItemSimilarityJob $hadoopOptions$ --input $dataFilePrefix$ratings.csv --output $algoFilePrefix$similarities.tsv --tempDir $mahoutTempDir$ --maxSimilaritiesPerItem $numSimilarItems$ --booleanData $booleanData$ --maxPrefs $maxPrefs$ --minPrefsPerUser $minPrefsPerUser$ --similarityClassname $similarityClassname$ --threshold $threshold$",
"$hadoop$ jar $base$/lib/$pdioItemsimAlgo$ $hadoopOptions$ io.prediction.algorithms.scalding.mahout.itemsim.ModelConstructor --hdfs --dbType $modeldataDbType$ --dbName $modeldataDbName$ --dbHost $modeldataDbHost$ --dbPort $modeldataDbPort$ --hdfsRoot $hdfsRoot$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ --modelSet $modelset$ --numSimilarItems $numSimilarItems$ --recommendationTime $recommendationTime$"
],
"offlineevalcommands": [
"$base$/bin/quiet.sh $hadoop$ fs -rmr $mahoutTempDir$",
"$base$/bin/quiet.sh $hadoop$ fs -rmr $algoDir$",
"$hadoop$ jar $base$/lib/$pdioItemsimAlgo$ $hadoopOptions$ io.prediction.algorithms.scalding.mahout.itemsim.DataCopy --hdfs --dbType $appdataTrainingDbType$ --dbName $appdataTrainingDbName$ --dbHost $appdataTrainingDbHost$ --dbPort $appdataTrainingDbPort$ --hdfsRoot $hdfsRoot$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ --evalid $evalid$ $itypes$ --viewParam $viewParam$ --likeParam $likeParam$ --dislikeParam $dislikeParam$ --conversionParam $conversionParam$ --conflictParam $conflictParam$",
"$hadoop$ jar $base$/lib/$pdioItemsimAlgo$ $hadoopOptions$ io.prediction.algorithms.scalding.mahout.itemsim.DataPreparator --hdfs --dbType $appdataTrainingDbType$ --dbName $appdataTrainingDbName$ --dbHost $appdataTrainingDbHost$ --dbPort $appdataTrainingDbPort$ --hdfsRoot $hdfsRoot$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ --evalid $evalid$ $itypes$ --viewParam $viewParam$ --likeParam $likeParam$ --dislikeParam $dislikeParam$ --conversionParam $conversionParam$ --conflictParam $conflictParam$",
"$hadoop$ jar $mahoutCoreJob$ org.apache.mahout.cf.taste.hadoop.similarity.item.ItemSimilarityJob $hadoopOptions$ --input $dataFilePrefix$ratings.csv --output $algoFilePrefix$similarities.tsv --tempDir $mahoutTempDir$ --maxSimilaritiesPerItem $numSimilarItems$ --booleanData $booleanData$ --maxPrefs $maxPrefs$ --minPrefsPerUser $minPrefsPerUser$ --similarityClassname $similarityClassname$ --threshold $threshold$",
"$hadoop$ jar $base$/lib/$pdioItemsimAlgo$ $hadoopOptions$ io.prediction.algorithms.scalding.mahout.itemsim.ModelConstructor --hdfs --dbType $modeldataTrainingDbType$ --dbName $modeldataTrainingDbName$ --dbHost $modeldataTrainingDbHost$ --dbPort $modeldataTrainingDbPort$ --hdfsRoot $hdfsRoot$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ --evalid $evalid$ --modelSet $modelset$ --numSimilarItems $numSimilarItems$ --recommendationTime $recommendationTime$"
],
"paramorder": [
"booleanData",
"maxPrefs",
"minPrefsPerUser",
"similarityClassname",
"threshold",
"viewParam",
"likeParam",
"dislikeParam",
"conversionParam",
"conflictParam"
],
"engineinfoid": "itemsim",
"techreq": [
"Hadoop"
],
"datareq": [
"Users, Items, and U2I Actions such as Like, Conversion and Rate."
],
"params": {
"booleanData": {
"name": "Boolean Data",
"description": "Treat input data as having no preference values.",
"constraint": {
"paramtype": "boolean"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "True",
"value": "true"
},
{
"name": "False",
"value": "false"
}
]
},
"defaultvalue": false
},
"maxPrefs": {
"name": "Max Num of Preferences per User",
"description": "Maximum number of preferences considered per user in final recommendation phase.",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 1000
},
"minPrefsPerUser": {
"name": "Min Num of Preferences per User",
"description": "Ignore users with less preferences than this.",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 1
},
"similarityClassname": {
"name": "Distance Function",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "Co-occurrence",
"value": "SIMILARITY_COOCCURRENCE"
},
{
"name": "Log-Likelihood",
"value": "SIMILARITY_LOGLIKELIHOOD"
},
{
"name": "Tanimoto Coefficient",
"value": "SIMILARITY_TANIMOTO_COEFFICIENT"
},
{
"name": "City Block",
"value": "SIMILARITY_CITY_BLOCK"
},
{
"name": "Cosine Similarity",
"value": "SIMILARITY_COSINE"
},
{
"name": "Pearson Correlation",
"value": "SIMILARITY_PEARSON_CORRELATION"
},
{
"name": "Euclidean Distance",
"value": "SIMILARITY_EUCLIDEAN_DISTANCE"
}
]
},
"defaultvalue": "SIMILARITY_LOGLIKELIHOOD"
},
"threshold": {
"name": "Threshold",
"description": "Discard item pairs with a similarity value below this.",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 5e-324
},
"viewParam": {
"name": "View Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "3"
},
"likeParam": {
"name": "Like Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "5"
},
"dislikeParam": {
"name": "Dislike Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "1"
},
"conversionParam": {
"name": "Conversion Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "4"
},
"conflictParam": {
"name": "Override",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "Use the latest action",
"value": "latest"
},
{
"name": "Use the highest preference score one",
"value": "highest"
},
{
"name": "Use the lowest preference score one",
"value": "lowest"
}
]
},
"defaultvalue": "latest"
},
"thresholdMin": {
"name": "thresholdMin",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 5e-324
},
"thresholdMax": {
"name": "thresholdMax",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0.15
},
"maxPrefsMin": {
"name": "maxPrefsMin",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 500
},
"maxPrefsMax": {
"name": "maxPrefsMax",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 1500
},
"minPrefsPerUserMin": {
"name": "minPrefsPerUserMin",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 1
},
"minPrefsPerUserMax": {
"name": "minPrefsPerUserMax",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 5
}
},
"paramsections": [
{
"name": "Parameter Settings",
"sectiontype": "normal",
"subsections": [
{
"name": "Item Similarity Measurement",
"sectiontype": "normal",
"params": [
"similarityClassname"
]
},
{
"name": "Advanced Parameters",
"sectiontype": "normal",
"params": [
"booleanData"
]
},
{
"name": "Numeric Parameters",
"sectiontype": "tuning",
"params": [
"threshold",
"maxPrefs",
"minPrefsPerUser"
]
}
]
},
{
"name": "User Actions Representation Settings",
"sectiontype": "normal",
"subsections": [
{
"name": "User Action Scores",
"sectiontype": "normal",
"description": "Define the preference score represented by each user action from 1 to 5. 5 is the most preferred, 1 is the least preferred. 3 is neutral.",
"params": [
"viewParam",
"likeParam",
"dislikeParam",
"conversionParam"
]
},
{
"name": "Overriding",
"sectiontype": "normal",
"description": "When there are conflicting actions, e.g. a user gives an item a rating 5 but later dislikes it, determine which action will be considered as final preference.",
"params": [
"conflictParam"
]
}
]
}
]
},
"pio-itemrank-single-mahout-knnitembased": {
"name": "Mahout's kNN Item Based Collaborative Filtering (extension to GenericItemBased) (Single Machine)",
"description": "Predicts user preferences based on previous behaviors of users on similar items (Single Machine).",
"batchcommands": [
"$base$/bin/itemrec.generic.dataprep --outputDir $localTempDir$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ $itypes$ --viewParam $viewParam$ --likeParam $likeParam$ --dislikeParam $dislikeParam$ --conversionParam $conversionParam$ --conflictParam $conflictParam$ --recommendationTime $recommendationTime$ --matrixMarket false",
"$base$/bin/itemrec.mahout.mahoutjob io.prediction.algorithms.mahout.itemrec.knnitembased.KNNItemBasedJob --input $localTempDir$ratings.csv --itemsFile $localTempDir$itemsIndex.tsv --output $localTempDir$predicted.tsv --outputSim $localTempDir$itemSim.csv --appid $appid$ --engineid $engineid$ --algoid $algoid$ --booleanData $booleanData$ --numRecommendations $itemCount$ --itemSimilarity $itemSimilarity$ --weighted $weighted$ --nearestN $nearestN$ --threshold $threshold$ --preComputeItemSim $preComputeItemSim$ --similarItemsPerItem $similarItemsPerItem$ --freshness $freshness$ --recommendationTime $recommendationTime$ --freshnessTimeUnit $freshnessTimeUnit$",
"$base$/bin/itemrec.mahout.modelcon --inputDir $localTempDir$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ --modelSet $modelset$ --numRecommendations $itemCount$ --booleanData $booleanData$"
],
"offlineevalcommands": [
"$base$/bin/itemrec.generic.dataprep --outputDir $localTempDir$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ $itypes$ --viewParam $viewParam$ --likeParam $likeParam$ --dislikeParam $dislikeParam$ --conversionParam $conversionParam$ --conflictParam $conflictParam$ --recommendationTime $recommendationTime$ --matrixMarket false",
"$base$/bin/itemrec.mahout.mahoutjob io.prediction.algorithms.mahout.itemrec.knnitembased.KNNItemBasedJob --input $localTempDir$ratings.csv --itemsFile $localTempDir$itemsIndex.tsv --output $localTempDir$predicted.tsv --outputSim $localTempDir$itemSim.csv --appid $appid$ --engineid $engineid$ --algoid $algoid$ --booleanData $booleanData$ --numRecommendations $itemCount$ --itemSimilarity $itemSimilarity$ --weighted $weighted$ --nearestN $nearestN$ --threshold $threshold$ --preComputeItemSim $preComputeItemSim$ --similarItemsPerItem $similarItemsPerItem$ --freshness $freshness$ --recommendationTime $recommendationTime$ --freshnessTimeUnit $freshnessTimeUnit$",
"$base$/bin/itemrec.mahout.modelcon --inputDir $localTempDir$ --appid $appid$ --engineid $engineid$ --algoid $algoid$ --modelSet $modelset$ --numRecommendations $itemCount$ --booleanData $booleanData$"
],
"paramorder": [
"booleanData",
"itemSimilarity",
"weighted",
"nearestN",
"threshold",
"preComputeItemSim",
"similarItemsPerItem",
"viewParam",
"likeParam",
"dislikeParam",
"conversionParam",
"conflictParam"
],
"engineinfoid": "itemrank",
"techreq": [],
"datareq": [
"Users, Items, and U2I Actions such as Like, Conversion and Rate."
],
"capabilities": ["freshness"],
"params": {
"booleanData": {
"name": "Boolean Data",
"description": "Treat input data as having no preference values.",
"constraint": {
"paramtype": "boolean"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "True",
"value": "true"
},
{
"name": "False",
"value": "false"
}
]
},
"defaultvalue": false
},
"itemSimilarity": {
"name": "Item Similarity",
"description": "Item Similarity Measure.",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "City Block",
"value": "CityBlockSimilarity"
},
{
"name": "Euclidean Distance",
"value": "EuclideanDistanceSimilarity"
},
{
"name": "Log-Likelihood",
"value": "LogLikelihoodSimilarity"
},
{
"name": "Pearson Correlation",
"value": "PearsonCorrelationSimilarity"
},
{
"name": "Tanimoto Coefficient",
"value": "TanimotoCoefficientSimilarity"
},
{
"name": "Uncentered Cosine",
"value": "UncenteredCosineSimilarity"
}
]
},
"defaultvalue": "LogLikelihoodSimilarity"
},
"weighted": {
"name": "Weighted",
"description": "The Similarity score is weighted (only applied to Euclidean Distance, Pearson Correlation, Uncentered Cosine item similarity).",
"constraint": {
"paramtype": "boolean"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "True",
"value": "true"
},
{
"name": "False",
"value": "false"
}
]
},
"defaultvalue": false
},
"viewParam": {
"name": "View Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "3"
},
"nearestN": {
"name": "Nearest K",
"description": "K-nearest rated item neighbors.",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 10
},
"threshold": {
"name": "Threshold",
"description": "Similarity threshold.",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 5e-324
},
"preComputeItemSim": {
"name": "Pre-Compute Item Similarity",
"description": "Pre-compute item similarity for better run time performance (but use more storage space and memory).",
"constraint": {
"paramtype": "boolean"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "True",
"value": "true"
},
{
"name": "False",
"value": "false"
}
]
},
"defaultvalue": false
},
"similarItemsPerItem": {
"name": "Number of Similar Items per Items",
"description": "Number of Similar items in pre-computed item similarity. Only applicable when Pre-Compute Item Similarity = true. Should set this cautiously if you have large number of items (>100K). Storage space needed is about number of items * number of similar items * 30Bytes. Also, the pre-computed similarity will be loaded into memory.",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 100
},
"likeParam": {
"name": "Like Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "5"
},
"dislikeParam": {
"name": "Dislike Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "1"
},
"conversionParam": {
"name": "Conversion Score",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "1",
"value": "1"
},
{
"name": "2",
"value": "2"
},
{
"name": "3",
"value": "3"
},
{
"name": "4",
"value": "4"
},
{
"name": "5",
"value": "5"
},
{
"name": "Ignore",
"value": "ignore"
}
]
},
"defaultvalue": "4"
},
"conflictParam": {
"name": "Override",
"description": "",
"constraint": {
"paramtype": "string"
},
"ui": {
"uitype": "selection",
"selections": [
{
"name": "Use the latest action",
"value": "latest"
},
{
"name": "Use the highest preference score one",
"value": "highest"
},
{
"name": "Use the lowest preference score one",
"value": "lowest"
}
]
},
"defaultvalue": "latest"
},
"nearestNMin": {
"name": "nearestNMin",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 5
},
"nearestNMax": {
"name": "nearestNMax",
"constraint": {
"paramtype": "integer"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 15
},
"thresholdMin": {
"name": "thresholdMin",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 5e-324
},
"thresholdMax": {
"name": "thresholdMax",
"constraint": {
"paramtype": "double"
},
"ui": {
"uitype": "text"
},
"defaultvalue": 0.2
}
},
"paramsections": [
{
"name": "Parameter Settings",
"sectiontype": "normal",
"subsections": [
{
"name": "Item Similarity Measurement",
"sectiontype": "normal",
"params": [
"itemSimilarity"
]
},
{
"name": "Advanced Parameters",
"sectiontype": "normal",
"params": [
"booleanData",
"weighted",
"preComputeItemSim",
"similarItemsPerItem"
]
},
{
"name": "Numeric Parameters",
"sectiontype": "tuning",
"params": [
"nearestN",
"threshold"
]
}
]
},
{
"name": "User Actions Representation Settings",
"sectiontype": "normal",
"subsections": [
{
"name": "User Action Scores",
"sectiontype": "normal",
"description": "Define the preference score represented by each user action from 1 to 5. 5 is the most preferred, 1 is the least preferred. 3 is neutral.",
"params": [
"viewParam",
"likeParam",
"dislikeParam",
"conversionParam"
]
},
{
"name": "Overriding",
"sectiontype": "normal",
"description": "When there are conflicting actions, e.g. a user gives an item a rating 5 but later dislikes it, determine which action will be considered as final preference.",
"params": [
"conflictParam"
]
}
]
}
]
}
},
"offlineevalsplitterinfos": {
"pio-distributed-trainingtestsplit": {
"name": "Training/Test Data Splitter With Time Order Option",
"description": "Split data into training, validation and test sets",
"engineinfoids": [
"itemrec", "itemsim"
],
"commands": [
"$base$/bin/u2itrainingtestsplit --hadoop $hadoop$ --pdioEvalJar $base$/lib/$pdioCommonsEval$ --sequenceNum $iteration$ --hdfs --dbType $appdataDbType$ --dbName $appdataDbName$ --dbHost $appdataDbHost$ --dbPort $appdataDbPort$ --training_dbType $appdataTrainingDbType$ --training_dbName $appdataTrainingDbName$ --training_dbHost $appdataTrainingDbHost$ --training_dbPort $appdataTrainingDbPort$ --validation_dbType $appdataValidationDbType$ --validation_dbName $appdataValidationDbName$ --validation_dbHost $appdataValidationDbHost$ --validation_dbPort $appdataValidationDbPort$ --test_dbType $appdataTestDbType$ --test_dbName $appdataTestDbName$ --test_dbHost $appdataTestDbHost$ --test_dbPort $appdataTestDbPort$ --hdfsRoot $hdfsRoot$ --localTempRoot $localTempRoot$ --appid $appid$ --engineid $engineid$ --evalid $evalid$ $itypes$ --trainingPercent $trainingPercent$ --validationPercent $validationPercent$ --testPercent $testPercent$ --timeorder $timeorder$"
],
"params": {
"timeorder": {
"name": "Data Selection",
"description": "Random with Time Order means that data in Test Set is always newer than those in Train Set.",
"constraint": {
"paramtype": "boolean"
},
"defaultvalue": false,
"ui": {
"uitype": "selection",
"selections": [
{
"name": "Random Sampling",
"value": "false"
},
{
"name": "Random with Time Order",
"value": "true"
}
]
}
}
},
"paramsections": [
{
"name": "Parameters",
"sectiontype": "normal",
"description": "",
"params": [
"timeorder"
]
}
],
"paramorder": [
"timeorder"
]
},
"pio-single-trainingtestsplit": {
"name": "Training and Test Set Data Splitter for User-to-Item Actions (Single Machine)",
"description": "Split data into training, validation and test sets",
"engineinfoids": [
"itemrec", "itemsim"
],
"commands": [
"$base$/bin/u2isplit --sequenceNum $iteration$ --appid $appid$ --engineid $engineid$ --evalid $evalid$ $itypesCSV$ --trainingpercent $trainingPercent$ --validationpercent $validationPercent$ --testpercent $testPercent$ --timeorder $timeorder$"
],
"params": {
"timeorder": {
"name": "Data Selection",
"description": "Random with Time Order means that data in Test Set is always newer than those in Train Set.",
"constraint": {
"paramtype": "boolean"
},
"defaultvalue": false,
"ui": {
"uitype": "selection",
"selections": [
{
"name": "Random Sampling",
"value": "false"
},
{
"name": "Random with Time Order",
"value": "true"
}
]
}
}
},
"paramsections": [
{
"name": "Parameters",
"sectiontype": "normal",
"description": "",
"params": [
"timeorder"
]
}
],
"paramorder": [
"timeorder"
]
}
},
"offlineevalmetricinfos": {
"pio-itemrec-distributed-map_k": {
"name": "MAP@k",
"description": "Mean Average Precision",
"engineinfoids": [
"itemrec"
],
"commands": [
"$hadoop$ jar $base$/lib/$pdioItemrecEval$ io.prediction.metrics.scalding.itemrec.map.MAPAtKDataPreparator --hdfs --test_dbType $appdataTestDbType$ --test_dbName $appdataTestDbName$ --test_dbHost $appdataTestDbHost$ --test_dbPort $appdataTestDbPort$ --training_dbType $appdataTrainingDbType$ --training_dbName $appdataTrainingDbName$ --training_dbHost $appdataTrainingDbHost$ --training_dbPort $appdataTrainingDbPort$ --modeldata_dbType $modeldataTrainingDbType$ --modeldata_dbName $modeldataTrainingDbName$ --modeldata_dbHost $modeldataTrainingDbHost$ --modeldata_dbPort $modeldataTrainingDbPort$ --hdfsRoot $hdfsRoot$ --appid $appid$ --engineid $engineid$ --evalid $evalid$ --metricid $metricid$ --algoid $algoid$ --kParam $kParam$ --goalParam $goal$",
"$base$/bin/topk --enginetype itemrec --evalid $evalid$ --algoid $algoid$ --k $kParam$ --metricid $metricid$ --hdfsroot $hdfsRoot$",
"$hadoop$ jar $base$/lib/$pdioItemrecEval$ io.prediction.metrics.scalding.itemrec.map.MAPAtK --hdfs --dbType $settingsDbType$ --dbName $settingsDbName$ --dbHost $settingsDbHost$ --dbPort $settingsDbPort$ --hdfsRoot $hdfsRoot$ --appid $appid$ --engineid $engineid$ --evalid $evalid$ --metricid $metricid$ --algoid $algoid$ --iteration $iteration$ --splitset $splitset$ --kParam $kParam$"
],
"params": {
"kParam": {
"name": "k",
"description": "",
"constraint": {
"paramtype": "integer"
},
"defaultvalue": 20,
"ui": {
"uitype": "text"
}
}
},
"paramsections": [
{
"name": "Parameters",
"sectiontype": "normal",
"description": "",
"params": [
"kParam"
]
}
],
"paramorder": [
"kParam"
]
},
"pio-itemrec-single-map_k": {
"name": "MAP@k (Single Machine)",
"description": "Mean Average Precision",
"engineinfoids": [
"itemrec"
],
"commands": [
"$base$/bin/topk --enginetype itemrec --evalid $evalid$ --algoid $algoid$ --k $k$ --metricid $metricid$ --hdfsroot $hdfsRoot$ --local",
"$base$/bin/mapatk --appid $appid$ --engineid $engineid$ --evalid $evalid$ --metricid $metricid$ --algoid $algoid$ --iteration $iteration$ --splitset $splitset$ --k $k$ --goal $goal$"
],
"params": {
"k": {
"name": "k",
"description": "",
"constraint": {
"paramtype": "integer"
},
"defaultvalue": 20,
"ui": {
"uitype": "text"
}
}
},
"paramsections": [
{
"name": "Parameters",
"sectiontype": "normal",
"description": "",
"params": [
"k"
]
}
],
"paramorder": [
"k"
]
},
"pio-itemsim-distributed-ismap_k": {
"name": "ISMAP@k",
"description": "Item Similarity Mean Average Precision",
"engineinfoids": [
"itemsim"
],
"commands": [
"$hadoop$ jar $base$/lib/$pdioItemsimEval$ io.prediction.metrics.scalding.itemsim.ismap.ISMAPAtKDataPreparator --hdfs --test_dbType $appdataTestDbType$ --test_dbName $appdataTestDbName$ --test_dbHost $appdataTestDbHost$ --test_dbPort $appdataTestDbPort$ --training_dbType $appdataTrainingDbType$ --training_dbName $appdataTrainingDbName$ --training_dbHost $appdataTrainingDbHost$ --training_dbPort $appdataTrainingDbPort$ --modeldata_dbType $modeldataTrainingDbType$ --modeldata_dbName $modeldataTrainingDbName$ --modeldata_dbHost $modeldataTrainingDbHost$ --modeldata_dbPort $modeldataTrainingDbPort$ --hdfsRoot $hdfsRoot$ --appid $appid$ --engineid $engineid$ --evalid $evalid$ --metricid $metricid$ --algoid $algoid$ --kParam $kParam$ --goalParam $goal$",
"$base$/bin/topk --enginetype itemsim --evalid $evalid$ --algoid $algoid$ --k $kParam$ --metricid $metricid$ --hdfsroot $hdfsRoot$",
"$hadoop$ jar $base$/lib/$pdioItemsimEval$ io.prediction.metrics.scalding.itemsim.ismap.ISMAPAtK --hdfs --dbType $settingsDbType$ --dbName $settingsDbName$ --dbHost $settingsDbHost$ --dbPort $settingsDbPort$ --hdfsRoot $hdfsRoot$ --appid $appid$ --engineid $engineid$ --evalid $evalid$ --metricid $metricid$ --algoid $algoid$ --iteration $iteration$ --splitset $splitset$ --kParam $kParam$"
],
"params": {
"kParam": {
"name": "k",
"description": "",
"constraint": {
"paramtype": "integer"
},
"defaultvalue": 20,
"ui": {
"uitype": "text"
}
}
},
"paramsections": [
{
"name": "Parameters",
"sectiontype": "normal",
"description": "",
"params": [
"kParam"
]
}
],
"paramorder": [
"kParam"
]
},
"pio-itemsim-single-ismap_k": {
"name": "ISMAP@k (Single Machine)",
"description": "Item Similarity Mean Average Precision",
"engineinfoids": [
"itemsim"
],
"commands": [
"$base$/bin/topk --enginetype itemsim --evalid $evalid$ --algoid $algoid$ --k $k$ --metricid $metricid$ --hdfsroot $hdfsRoot$ --local",
"$base$/bin/mapatk --appid $appid$ --engineid $engineid$ --evalid $evalid$ --metricid $metricid$ --algoid $algoid$ --iteration $iteration$ --splitset $splitset$ --k $k$ --goal $goal$"
],
"params": {
"k": {
"name": "k",
"description": "",
"constraint": {
"paramtype": "integer"
},
"defaultvalue": 20,
"ui": {
"uitype": "text"
}
}
},
"paramsections": [
{
"name": "Parameters",
"sectiontype": "normal",
"description": "",
"params": [
"k"
]
}
],
"paramorder": [
"k"
]
}
},
"paramgeninfos": {
"pio-single-random": {
"name": "Random Search",
"description": "Random search within specified interval",
"commands": [
"$base$/bin/paramgen --evalids $evalids$ --algoid $algoid$ --loop $loop$ --paramsets $paramsets$"
],
"paramorder": [],
"paramnames": {},
"paramdescription": {},
"paramdefaults": {}
}
}
}