通りすがりのクラスメートが JStarCraft フレームワークに星を付けていただければ幸いです。これは作者への励ましとも言えます。
JStarCraft RNS は、Apache 2.0 プロトコルに準拠した情報検索の分野を対象とした軽量エンジンです。
情報検索の分野における基本的な問題、つまり推奨と検索の解決に焦点を当てます。
産業レベルのシナリオの要件を満たすレコメンデーション エンジンの設計と実装を提供します。
産業レベルのシナリオの要件を満たす検索エンジンの設計と実装を提供します。
JStarCraft RNS を使用するには、ユーザーに次の環境が必要です。
git clone https://github.com/HongZhaoHua/jstarcraft-core.git
mvn install -Dmaven.test.skip=true
git clone https://github.com/HongZhaoHua/jstarcraft-ai.git
mvn install -Dmaven.test.skip=true
git clone https://github.com/HongZhaoHua/jstarcraft-rns.git
mvn install -Dmaven.test.skip=true
<dependency>
<groupId>com.jstarcraft</groupId>
<artifactId>rns</artifactId>
<version>1.0</version>
</dependency>
compile group : ' com.jstarcraft ' , name : ' rns ' , version : ' 1.0 '
Properties keyValues = new Properties ();
keyValues . load ( this . getClass (). getResourceAsStream ( "/data.properties" ));
keyValues . load ( this . getClass (). getResourceAsStream ( "/recommend/benchmark/randomguess-test.properties" ));
Configurator configurator = new Configurator ( keyValues );
RankingTask task = new RankingTask ( RandomGuessModel . class , configurator );
// 训练与评估排序模型
task . execute ();
RatingTask task = new RatingTask ( RandomGuessModel . class , configurator );
// 训练与评估评分模型
task . execute ();
// 获取模型
Model model = task . getModel ();
随着信息技术和互联网的发展,人们逐渐从信息匮乏(Information Underload)的时代走入了信息过载(Information Overload)的时代.
无论是信息消费者还是信息生产者都遇到了挑战:
* 对于信息消费者,从海量信息中寻找信息,是一件非常困难的事情;
* 对于信息生产者,从海量信息中暴露信息,也是一件非常困难的事情;
信息检索的任务就是联系用户和信息,一方面帮助用户寻找对自己有价值的信息,另一方面帮助信息暴露给对它感兴趣的用户,从而实现信息消费者和信息生产者的双赢.
从信息检索的角度:
* 搜索和推荐是获取信息的两种主要手段;
* 搜索和推荐是获取信息的两种不同方式;
* 搜索(Search)是主动明确的;
* 推荐(Recommend)是被动模糊的;
搜索和推荐是两个互补的工具.
JStarCraft-RNS引擎旨在解决推荐与搜索领域的两个核心任务:排序预测(Ranking)和评分预测(Rating).
根据解决基本问题的不同,将算法与评估指标划分为排序(Ranking)与评分(Rating).
两者之间的根本区别在于目标函数的不同.
通俗点的解释:
Ranking算法基于隐式反馈数据,趋向于拟合用户的排序.(关注度)
Rating算法基于显示反馈数据,趋向于拟合用户的评分.(满意度)
关键在于具体场景中,关注度与满意度是否保持一致.
通俗点的解释:
人们关注的东西,并不一定是满意的东西.(例如:个人所得税)
完全な例
BeanShell スクリプトを作成してモデルをトレーニングおよび評価し、Model.bsh ファイルに保存します。
// 构建配置
keyValues = new Properties();
keyValues.load(loader.getResourceAsStream("data.properties"));
keyValues.load(loader.getResourceAsStream("model/benchmark/randomguess-test.properties"));
configurator = new Configurator(keyValues);
// 此对象会返回给Java程序
_data = new HashMap();
// 构建排序任务
task = new RankingTask(RandomGuessModel.class, configurator);
// 训练与评估模型并获取排序指标
measures = task.execute();
_data.put("precision", measures.get(PrecisionEvaluator.class));
_data.put("recall", measures.get(RecallEvaluator.class));
// 构建评分任务
task = new RatingTask(RandomGuessModel.class, configurator);
// 训练与评估模型并获取评分指标
measures = task.execute();
_data.put("mae", measures.get(MAEEvaluator.class));
_data.put("mse", measures.get(MSEEvaluator.class));
_data;
// 获取BeanShell脚本
File file = new File ( ScriptTestCase . class . getResource ( "Model.bsh" ). toURI ());
String script = FileUtils . readFileToString ( file , StringUtility . CHARSET );
// 设置BeanShell脚本使用到的Java类
ScriptContext context = new ScriptContext ();
context . useClasses ( Properties . class , Assert . class );
context . useClass ( "Configurator" , MapConfigurator . class );
context . useClasses ( "com.jstarcraft.ai.evaluate" );
context . useClasses ( "com.jstarcraft.rns.task" );
context . useClasses ( "com.jstarcraft.rns.model.benchmark" );
// 设置BeanShell脚本使用到的Java变量
ScriptScope scope = new ScriptScope ();
scope . createAttribute ( "loader" , loader );
// 执行BeanShell脚本
ScriptExpression expression = new GroovyExpression ( context , scope , script );
Map < String , Float > data = expression . doWith ( Map . class );
Assert . assertEquals ( 0.005825241F , data . get ( "precision" ), 0F );
Assert . assertEquals ( 0.011579763F , data . get ( "recall" ), 0F );
Assert . assertEquals ( 1.2708743F , data . get ( "mae" ), 0F );
Assert . assertEquals ( 2.425075F , data . get ( "mse" ), 0F );
完全な例
Groovy スクリプトを作成してモデルをトレーニングおよび評価し、Model.groovy ファイルに保存します。
// 构建配置
def keyValues = new Properties ();
keyValues . load(loader . getResourceAsStream( " data.properties " ));
keyValues . load(loader . getResourceAsStream( " recommend/benchmark/randomguess-test.properties " ));
def configurator = new Configurator (keyValues);
// 此对象会返回给Java程序
def _data = [:];
// 构建排序任务
task = new RankingTask ( RandomGuessModel . class, configurator);
// 训练与评估模型并获取排序指标
measures = task . execute();
_data . precision = measures . get( PrecisionEvaluator . class);
_data . recall = measures . get( RecallEvaluator . class);
// 构建评分任务
task = new RatingTask ( RandomGuessModel . class, configurator);
// 训练与评估模型并获取评分指标
measures = task . execute();
_data . mae = measures . get( MAEEvaluator . class);
_data . mse = measures . get( MSEEvaluator . class);
_data;
// 获取Groovy脚本
File file = new File ( ScriptTestCase . class . getResource ( "Model.groovy" ). toURI ());
String script = FileUtils . readFileToString ( file , StringUtility . CHARSET );
// 设置Groovy脚本使用到的Java类
ScriptContext context = new ScriptContext ();
context . useClasses ( Properties . class , Assert . class );
context . useClass ( "Configurator" , MapConfigurator . class );
context . useClasses ( "com.jstarcraft.ai.evaluate" );
context . useClasses ( "com.jstarcraft.rns.task" );
context . useClasses ( "com.jstarcraft.rns.model.benchmark" );
// 设置Groovy脚本使用到的Java变量
ScriptScope scope = new ScriptScope ();
scope . createAttribute ( "loader" , loader );
// 执行Groovy脚本
ScriptExpression expression = new GroovyExpression ( context , scope , script );
Map < String , Float > data = expression . doWith ( Map . class );
完全な例
モデルをトレーニングおよび評価するための JS スクリプトを作成し、Model.js ファイルに保存します。
// 构建配置
var keyValues = new Properties ( ) ;
keyValues . load ( loader . getResourceAsStream ( "data.properties" ) ) ;
keyValues . load ( loader . getResourceAsStream ( "recommend/benchmark/randomguess-test.properties" ) ) ;
var configurator = new Configurator ( [ keyValues ] ) ;
// 此对象会返回给Java程序
var _data = { } ;
// 构建排序任务
task = new RankingTask ( RandomGuessModel . class , configurator ) ;
// 训练与评估模型并获取排序指标
measures = task . execute ( ) ;
_data [ 'precision' ] = measures . get ( PrecisionEvaluator . class ) ;
_data [ 'recall' ] = measures . get ( RecallEvaluator . class ) ;
// 构建评分任务
task = new RatingTask ( RandomGuessModel . class , configurator ) ;
// 训练与评估模型并获取评分指标
measures = task . execute ( ) ;
_data [ 'mae' ] = measures . get ( MAEEvaluator . class ) ;
_data [ 'mse' ] = measures . get ( MSEEvaluator . class ) ;
_data ;
// 获取JS脚本
File file = new File ( ScriptTestCase . class . getResource ( "Model.js" ). toURI ());
String script = FileUtils . readFileToString ( file , StringUtility . CHARSET );
// 设置JS脚本使用到的Java类
ScriptContext context = new ScriptContext ();
context . useClasses ( Properties . class , Assert . class );
context . useClass ( "Configurator" , MapConfigurator . class );
context . useClasses ( "com.jstarcraft.ai.evaluate" );
context . useClasses ( "com.jstarcraft.rns.task" );
context . useClasses ( "com.jstarcraft.rns.model.benchmark" );
// 设置JS脚本使用到的Java变量
ScriptScope scope = new ScriptScope ();
scope . createAttribute ( "loader" , loader );
// 执行JS脚本
ScriptExpression expression = new JsExpression ( context , scope , script );
Map < String , Float > data = expression . doWith ( Map . class );
完全な例
Kotlin スクリプトを作成してモデルをトレーニングおよび評価し、Model.kt ファイルに保存します。
// 构建配置
var keyValues = Properties ( ) ;
var loader = bindings [ "loader" ] as ClassLoader ;
keyValues . load ( loader . getResourceAsStream ( "data.properties" ) ) ;
keyValues . load ( loader . getResourceAsStream ( "model/benchmark/randomguess-test.properties" ) ) ;
var option = Option ( keyValues ) ;
// 此对象会返回给Java程序
var _data = mutableMapOf < String , Float > ( ) ;
// 构建排序任务
var rankingTask = RankingTask ( RandomGuessModel :: class . java , option ) ;
// 训练与评估模型并获取排序指标
val rankingMeasures = rankingTask . execute ( ) ;
_data [ "precision" ] = rankingMeasures . getFloat ( PrecisionEvaluator :: class . java ) ;
_data [ "recall" ] = rankingMeasures . getFloat ( RecallEvaluator :: class . java ) ;
// 构建评分任务
var ratingTask = RatingTask ( RandomGuessModel :: class . java , option ) ;
// 训练与评估模型并获取评分指标
var ratingMeasures = ratingTask . execute ( ) ;
_data [ "mae" ] = ratingMeasures . getFloat ( MAEEvaluator :: class . java ) ;
_data [ "mse" ] = ratingMeasures . getFloat ( MSEEvaluator :: class . java ) ;
_data ;
// 获取Kotlin脚本
File file = new File ( ScriptTestCase . class . getResource ( "Model.kt" ). toURI ());
String script = FileUtils . readFileToString ( file , StringUtility . CHARSET );
// 设置Kotlin脚本使用到的Java类
ScriptContext context = new ScriptContext ();
context . useClasses ( Properties . class , Assert . class );
context . useClass ( "Option" , MapOption . class );
context . useClasses ( "com.jstarcraft.ai.evaluate" );
context . useClasses ( "com.jstarcraft.rns.task" );
context . useClasses ( "com.jstarcraft.rns.model.benchmark" );
// 设置Kotlin脚本使用到的Java变量
ScriptScope scope = new ScriptScope ();
scope . createAttribute ( "loader" , loader );
// 执行Kotlin脚本
ScriptExpression expression = new KotlinExpression ( context , scope , script );
Map < String , Float > data = expression . doWith ( Map . class );
完全な例
Lua スクリプトを作成してモデルをトレーニングおよび評価し、Model.lua ファイルに保存します。
-- 构建配置
local keyValues = Properties . new ();
keyValues : load ( loader : getResourceAsStream ( " data.properties " ));
keyValues : load ( loader : getResourceAsStream ( " recommend/benchmark/randomguess-test.properties " ));
local configurator = Configurator . new ({ keyValues });
-- 此对象会返回给Java程序
local _data = {};
-- 构建排序任务
task = RankingTask . new ( RandomGuessModel , configurator );
-- 训练与评估模型并获取排序指标
measures = task : execute ();
_data [ " precision " ] = measures : get ( PrecisionEvaluator );
_data [ " recall " ] = measures : get ( RecallEvaluator );
-- 构建评分任务
task = RatingTask . new ( RandomGuessModel , configurator );
-- 训练与评估模型并获取评分指标
measures = task : execute ();
_data [ " mae " ] = measures : get ( MAEEvaluator );
_data [ " mse " ] = measures : get ( MSEEvaluator );
return _data ;
// 获取Lua脚本
File file = new File ( ScriptTestCase . class . getResource ( "Model.lua" ). toURI ());
String script = FileUtils . readFileToString ( file , StringUtility . CHARSET );
// 设置Lua脚本使用到的Java类
ScriptContext context = new ScriptContext ();
context . useClasses ( Properties . class , Assert . class );
context . useClass ( "Configurator" , MapConfigurator . class );
context . useClasses ( "com.jstarcraft.ai.evaluate" );
context . useClasses ( "com.jstarcraft.rns.task" );
context . useClasses ( "com.jstarcraft.rns.model.benchmark" );
// 设置Lua脚本使用到的Java变量
ScriptScope scope = new ScriptScope ();
scope . createAttribute ( "loader" , loader );
// 执行Lua脚本
ScriptExpression expression = new LuaExpression ( context , scope , script );
LuaTable data = expression . doWith ( LuaTable . class );
完全な例
Python スクリプトを作成してモデルをトレーニングおよび評価し、Model.py ファイルに保存します。
# 构建配置
keyValues = Properties ()
keyValues . load ( loader . getResourceAsStream ( "data.properties" ))
keyValues . load ( loader . getResourceAsStream ( "recommend/benchmark/randomguess-test.properties" ))
configurator = Configurator ([ keyValues ])
# 此对象会返回给Java程序
_data = {}
# 构建排序任务
task = RankingTask ( RandomGuessModel , configurator )
# 训练与评估模型并获取排序指标
measures = task . execute ()
_data [ 'precision' ] = measures . get ( PrecisionEvaluator )
_data [ 'recall' ] = measures . get ( RecallEvaluator )
# 构建评分任务
task = RatingTask ( RandomGuessModel , configurator )
# 训练与评估模型并获取评分指标
measures = task . execute ()
_data [ 'mae' ] = measures . get ( MAEEvaluator )
_data [ 'mse' ] = measures . get ( MSEEvaluator )
// 设置Python环境变量
System . setProperty ( "python.console.encoding" , StringUtility . CHARSET . name ());
// 获取Python脚本
File file = new File ( PythonTestCase . class . getResource ( "Model.py" ). toURI ());
String script = FileUtils . readFileToString ( file , StringUtility . CHARSET );
// 设置Python脚本使用到的Java类
ScriptContext context = new ScriptContext ();
context . useClasses ( Properties . class , Assert . class );
context . useClass ( "Configurator" , MapConfigurator . class );
context . useClasses ( "com.jstarcraft.ai.evaluate" );
context . useClasses ( "com.jstarcraft.rns.task" );
context . useClasses ( "com.jstarcraft.rns.model.benchmark" );
// 设置Python脚本使用到的Java变量
ScriptScope scope = new ScriptScope ();
scope . createAttribute ( "loader" , loader );
// 执行Python脚本
ScriptExpression expression = new PythonExpression ( context , scope , script );
Map < String , Double > data = expression . doWith ( Map . class );
完全な例
Ruby スクリプトを作成してモデルをトレーニングおよび評価し、Model.rb ファイルに保存します。
# 构建配置
keyValues = Properties . new ( )
keyValues . load ( $loader . getResourceAsStream ( "data.properties" ) )
keyValues . load ( $loader . getResourceAsStream ( "model/benchmark/randomguess-test.properties" ) )
configurator = Configurator . new ( keyValues )
# 此对象会返回给Java程序
_data = Hash . new ( )
# 构建排序任务
task = RankingTask . new ( RandomGuessModel . java_class , configurator )
# 训练与评估模型并获取排序指标
measures = task . execute ( )
_data [ 'precision' ] = measures . get ( PrecisionEvaluator . java_class )
_data [ 'recall' ] = measures . get ( RecallEvaluator . java_class )
# 构建评分任务
task = RatingTask . new ( RandomGuessModel . java_class , configurator )
# 训练与评估模型并获取评分指标
measures = task . execute ( )
_data [ 'mae' ] = measures . get ( MAEEvaluator . java_class )
_data [ 'mse' ] = measures . get ( MSEEvaluator . java_class )
_data ;
// 获取Ruby脚本
File file = new File ( ScriptTestCase . class . getResource ( "Model.rb" ). toURI ());
String script = FileUtils . readFileToString ( file , StringUtility . CHARSET );
// 设置Ruby脚本使用到的Java类
ScriptContext context = new ScriptContext ();
context . useClasses ( Properties . class , Assert . class );
context . useClass ( "Configurator" , MapConfigurator . class );
context . useClasses ( "com.jstarcraft.ai.evaluate" );
context . useClasses ( "com.jstarcraft.rns.task" );
context . useClasses ( "com.jstarcraft.rns.model.benchmark" );
// 设置Ruby脚本使用到的Java变量
ScriptScope scope = new ScriptScope ();
scope . createAttribute ( "loader" , loader );
// 执行Ruby脚本
ScriptExpression expression = new RubyExpression ( context , scope , script );
Map < String , Double > data = expression . doWith ( Map . class );
Assert . assertEquals ( 0.005825241096317768D , data . get ( "precision" ), 0D );
Assert . assertEquals ( 0.011579763144254684D , data . get ( "recall" ), 0D );
Assert . assertEquals ( 1.270874261856079D , data . get ( "mae" ), 0D );
Assert . assertEquals ( 2.425075054168701D , data . get ( "mse" ), 0D );
名前 | データセット | トレーニング (ミリ秒) | 予測 (ミリ秒) | AUC | 地図 | MRR | NDCG | ノベルティ | 精度 | 想起 |
---|---|---|---|---|---|---|---|---|---|---|
最も人気のある | フィルムトラスト | 43 | 273 | 0.92080 | 0.41246 | 0.57196 | 0.51583 | 11.79295 | 0.33230 | 0.62385 |
ランダム推測 | フィルムトラスト | 38 | 391 | 0.51922 | 0.00627 | 0.02170 | 0.01121 | 91.94900 | 0.00550 | 0.01262 |
名前 | データセット | トレーニング (ミリ秒) | 予測 (ミリ秒) | AUC | 地図 | MRR | NDCG | ノベルティ | 精度 | 想起 |
---|---|---|---|---|---|---|---|---|---|---|
ああ | フィルムトラスト | 12448 | 253 | 0.89324 | 0.38967 | 0.53990 | 0.48338 | 21.13004 | 0.32295 | 0.56864 |
アスペクトランキング | フィルムトラスト | 177 | 58 | 0.85130 | 0.15498 | 0.42480 | 0.26012 | 37.36273 | 0.13302 | 0.31292 |
BHフリーランキング | フィルムトラスト | 5720 | 4257 | 0.92080 | 0.41316 | 0.57231 | 0.51662 | 11.79567 | 0.33276 | 0.62500 |
BPR | フィルムトラスト | 4228 | 137 | 0.89390 | 0.39886 | 0.54790 | 0.49180 | 21.46738 | 0.32268 | 0.57623 |
BUCMランキング | フィルムトラスト | 2111 | 1343 | 0.90782 | 0.39794 | 0.55776 | 0.49651 | 13.08073 | 0.32407 | 0.59141 |
CDAE | フィルムトラスト | 89280 | 376 | 0.91880 | 0.40759 | 0.56855 | 0.51089 | 11.82466 | 0.33051 | 0.61967 |
CliMF | フィルムトラスト | 48429 | 140 | 0.88293 | 0.37395 | 0.52407 | 0.46572 | 19.38964 | 0.32049 | 0.54605 |
DeepFM | フィルムトラスト | 69264 | 99 | 0.91679 | 0.40580 | 0.56995 | 0.50985 | 11.90242 | 0.32719 | 0.61426 |
EALS | フィルムトラスト | 850 | 185 | 0.86132 | 0.31263 | 0.45680 | 0.39475 | 20.08964 | 0.27381 | 0.46271 |
フィスマック | フィルムトラスト | 2338 | 663 | 0.91216 | 0.40032 | 0.55730 | 0.50114 | 12.07469 | 0.32845 | 0.60294 |
フィスムルムス | フィルムトラスト | 4030 | 729 | 0.91482 | 0.40795 | 0.56470 | 0.50920 | 11.91234 | 0.33044 | 0.61107 |
GBPR | フィルムトラスト | 14827 | 150 | 0.92113 | 0.41003 | 0.57144 | 0.51464 | 11.87609 | 0.33090 | 0.62512 |
ふーむ | ゲーム | 38697 | 11223 | 0.80559 | 0.18156 | 0.37516 | 0.25803 | 16.01041 | 0.14572 | 0.22810 |
アイテムバイグラム | フィルムトラスト | 12492 | 61 | 0.88807 | 0.33520 | 0.46870 | 0.42854 | 17.11172 | 0.29191 | 0.53308 |
アイテムKNNランキング | フィルムトラスト | 2683 | 250 | 0.87438 | 0.33375 | 0.46951 | 0.41767 | 20.23449 | 0.28581 | 0.49248 |
LDA | フィルムトラスト | 696 | 161 | 0.91980 | 0.41758 | 0.58130 | 0.52003 | 12.31348 | 0.33336 | 0.62274 |
LambdaFM静的 | ゲーム | 25052 | 27078 | 0.87064 | 0.27294 | 0.43640 | 0.34794 | 16.47330 | 0.13941 | 0.35696 |
ラムダFM重量 | ゲーム | 25232 | 28156 | 0.87339 | 0.27333 | 0.43720 | 0.34728 | 14.71413 | 0.13742 | 0.35252 |
ラムダFM動的 | ゲーム | 74218 | 27921 | 0.87380 | 0.27288 | 0.43648 | 0.34706 | 13.50578 | 0.13822 | 0.35132 |
リストワイズMF | フィルムトラスト | 714 | 161 | 0.90820 | 0.40511 | 0.56619 | 0.50521 | 15.53665 | 0.32944 | 0.60092 |
PLSA | フィルムトラスト | 1027 | 116 | 0.89950 | 0.41217 | 0.57187 | 0.50597 | 16.01080 | 0.32401 | 0.58557 |
RankALS | フィルムトラスト | 3285 | 182 | 0.85901 | 0.29255 | 0.51014 | 0.38871 | 25.27197 | 0.22931 | 0.42509 |
ランクCD | 製品 | 1442 | 8905 | 0.56271 | 0.01253 | 0.04618 | 0.02682 | 55.42019 | 0.01548 | 0.03520 |
ランクSGD | フィルムトラスト | 309 | 113 | 0.80388 | 0.23587 | 0.42290 | 0.32081 | 42.83305 | 0.19363 | 0.35374 |
ランクVFCD | 製品 | 54273 | 6524 | 0.58022 | 0.01784 | 0.06181 | 0.03664 | 62.95810 | 0.01980 | 0.04852 |
スリム | フィルムトラスト | 62434 | 91 | 0.91849 | 0.44851 | 0.61083 | 0.54557 | 16.67990 | 0.34019 | 0.63021 |
ユーザーKNNランキング | フィルムトラスト | 1154 | 229 | 0.90752 | 0.41616 | 0.57525 | 0.51393 | 12.90921 | 0.32891 | 0.60152 |
VBPR | 製品 | 184473 | 15304 | 0.54336 | 0.00920 | 0.03522 | 0.01883 | 45.05101 | 0.01037 | 0.02266 |
WBPR | フィルムトラスト | 20705 | 183 | 0.78072 | 0.24647 | 0.33373 | 0.30442 | 17.18609 | 0.25000 | 0.35516 |
WRMF | フィルムトラスト | 482 | 158 | 0.90616 | 0.43278 | 0.58284 | 0.52480 | 15.17956 | 0.32918 | 0.60780 |
RankGeoFM | フォースクエア | 368436 | 1093 | 0.72708 | 0.05485 | 0.24012 | 0.11057 | 37.50040 | 0.07866 | 0.08640 |
SBPR | フィルムトラスト | 41481 | 247 | 0.91010 | 0.41189 | 0.56480 | 0.50726 | 15.67905 | 0.32440 | 0.59699 |
名前 | データセット | トレーニング (ミリ秒) | 予測 (ミリ秒) | AUC | 地図 | MRR | NDCG | ノベルティ | 精度 | 想起 |
---|---|---|---|---|---|---|---|---|---|---|
EFMランキング | dc_dense | 2066年 | 2276 | 0.61271 | 0.01611 | 0.04631 | 0.04045 | 53.26140 | 0.02387 | 0.07357 |
TFIDF | 楽器 | 942 | 1085 | 0.52756 | 0.01067 | 0.01917 | 0.01773 | 72.71228 | 0.00588 | 0.03103 |
名前 | データセット | トレーニング (ミリ秒) | 予測 (ミリ秒) | 前 | MPE | MSE |
---|---|---|---|---|---|---|
定数推測 | フィルムトラスト | 137 | 45 | 1.05608 | 1.00000 | 1.42309 |
グローバル平均 | フィルムトラスト | 60 | 13 | 0.71977 | 0.77908 | 0.85199 |
項目平均 | フィルムトラスト | 59 | 12 | 0.72968 | 0.97242 | 0.86413 |
アイテムクラスター | フィルムトラスト | 471 | 41 | 0.71976 | 0.77908 | 0.85198 |
ランダム推測 | フィルムトラスト | 38 | 8 | 1.28622 | 0.99597 | 2.47927 |
ユーザー平均 | フィルムトラスト | 35 | 9 | 0.64618 | 0.97242 | 0.70172 |
ユーザークラスター | フィルムトラスト | 326 | 45 | 0.71977 | 0.77908 | 0.85199 |
名前 | データセット | トレーニング (ミリ秒) | 予測 (ミリ秒) | 前 | MPE | MSE |
---|---|---|---|---|---|---|
アスペクトレーティング | フィルムトラスト | 220 | 5 | 0.65754 | 0.97918 | 0.71809 |
ASVDプラスプラス | フィルムトラスト | 5631 | 8 | 0.71975 | 0.77921 | 0.85196 |
偏ったMF | フィルムトラスト | 92 | 6 | 0.63157 | 0.98387 | 0.66220 |
BHフリー評価 | フィルムトラスト | 6667 | 76 | 0.71974 | 0.77908 | 0.85198 |
BPMF | フィルムトラスト | 25942 | 52 | 0.66504 | 0.98465 | 0.70210 |
BUCMR評価 | フィルムトラスト | 1843年 | 30 | 0.64834 | 0.99102 | 0.67992 |
CCD | 製品 | 15715 | 9 | 0.96670 | 0.93947 | 1.62145 |
FFM | フィルムトラスト | 5422 | 6 | 0.63446 | 0.98413 | 0.66682 |
FMALS | フィルムトラスト | 1854年 | 5 | 0.64788 | 0.96032 | 0.73636 |
fmsgd | フィルムトラスト | 3496 | 10 | 0.63452 | 0.98426 | 0.66710 |
GPLSA | フィルムトラスト | 2567 | 7 | 0.67311 | 0.98972 | 0.79883 |
IRRG | フィルムトラスト | 40284 | 6 | 0.64766 | 0.98777 | 0.73700 |
アイテムKNNRating | フィルムトラスト | 2052年 | 27 | 0.62341 | 0.95394 | 0.67312 |
LDCC | フィルムトラスト | 8650 | 84 | 0.66383 | 0.99284 | 0.70666 |
ロルマ | フィルムトラスト | 16618 | 82 | 0.64930 | 0.96591 | 0.76067 |
MFALS | フィルムトラスト | 2944 | 5 | 0.82939 | 0.94549 | 1.30547 |
NMF | フィルムトラスト | 1198 | 8 | 0.67661 | 0.96604 | 0.83493 |
PMF | フィルムトラスト | 215 | 7 | 0.72959 | 0.98165 | 0.99948 |
RBM | フィルムトラスト | 19551 | 270 | 0.74484 | 0.98504 | 0.88968 |
RFRec | フィルムトラスト | 16330 | 54 | 0.64008 | 0.97112 | 0.69390 |
SVDプラスプラス | フィルムトラスト | 452 | 26 | 0.65248 | 0.99141 | 0.68289 |
URP | フィルムトラスト | 1514 | 25 | 0.64207 | 0.99128 | 0.67122 |
ユーザーKNNRating | フィルムトラスト | 1121 | 135 | 0.63933 | 0.94640 | 0.69280 |
RSTE | フィルムトラスト | 4052 | 10 | 0.64303 | 0.99206 | 0.67777 |
ソーシャルMF | フィルムトラスト | 918 | 13 | 0.64668 | 0.98881 | 0.68228 |
ソレック | フィルムトラスト | 1048 | 10 | 0.64305 | 0.99232 | 0.67776 |
ソレグ | フィルムトラスト | 635 | 8 | 0.65943 | 0.96734 | 0.72760 |
時間SVD | フィルムトラスト | 11545 | 36 | 0.68954 | 0.93326 | 0.87783 |
トラストMF | フィルムトラスト | 2038年 | 7 | 0.63787 | 0.98985 | 0.69017 |
トラストSVD | フィルムトラスト | 12465 | 22 | 0.61984 | 0.98933 | 0.63875 |
アソシエーションルール | フィルムトラスト | 2628 | 195 | 0.90853 | 0.41801 | 0.57777 |
性格診断 | フィルムトラスト | 45 | 642 | 0.72964 | 0.76620 | 1.03071 |
PランクD | フィルムトラスト | 3321 | 170 | 0.74472 | 0.22894 | 0.32406 |
スロープワン | フィルムトラスト | 135 | 28 | 0.63788 | 0.96175 | 0.71057 |
名前 | データセット | トレーニング (ミリ秒) | 予測 (ミリ秒) | 前 | MPE | MSE |
---|---|---|---|---|---|---|
EFM評価 | dc_dense | 659 | 8 | 0.61546 | 0.85364 | 0.78279 |
HFT | 楽器 | 162753 | 13 | 0.64272 | 0.94886 | 0.81393 |
トピックMFAT | 楽器 | 6907 | 7 | 0.61896 | 0.98734 | 0.72545 |
トピックMFMT | 楽器 | 6323 | 7 | 0.61896 | 0.98734 | 0.72545 |
名前 | 質問 | 説明/論文 |
---|---|---|
ランダム推測 | ランキング評価 | ランダムな推測 |
最も人気のある | ランキング | 最も人気のある |
定数推測 | 評価 | 一定の推測 |
グローバル平均 | 評価 | 世界平均 |
項目平均 | 評価 | 項目平均 |
アイテムクラスター | 評価 | アイテムのクラスタリング |
ユーザー平均 | 評価 | 平均的なユーザー |
ユーザークラスター | 評価 | ユーザーのクラスタリング |
名前 | 質問 | 説明/論文 |
---|---|---|
アスペクトモデル | ランキング評価 | 協調フィルタリング用の潜在クラス モデル |
BHフリー | ランキング評価 | 予測と推奨精度のバランスをとる: 嗜好データの階層的潜在要素 |
BUCM | ランキング評価 | 正確な推奨事項のための項目の選択と関連性のモデリング |
アイテムKNN | ランキング評価 | アイテムベースの協調フィルタリング |
ユーザーKNN | ランキング評価 | ユーザーベースの協調フィルタリング |
ああ | ランキング | 暗黙的なフィードバックからのアイテム推奨のペアワイズ学習の改善 |
BPR | ランキング | BPR: 暗黙的なフィードバックからのベイジアンパーソナライズされたランキング |
CliMF | ランキング | CLiMF: 協調的な Less is More フィルタリングを使用して相互ランクを最大化する方法を学習する |
EALS | ランキング | 暗黙的フィードバック データセットの協調フィルタリング |
FISM | ランキング | FISM: トップ N レコメンダー システムの因数分解されたアイテム類似性モデル |
GBPR | ランキング | GBPR: ワンクラス協調フィルタリングのためのグループプリファレンスベースのベイジアンパーソナライズランキング |
HMMForCF | ランキング | 隠れマルコフ モデル 目的: パラメータを含むモデルのクラス |
アイテムバイグラム | ランキング | トピックモデリング: 言葉の枠を超えて |
ラムダFM | ランキング | LambdaFM: Lambda サロゲートを使用した因数分解マシンによる最適なランキングの学習 |
LDA | ランキング | 暗黙的なフィードバックのための潜在的なディリクレ割り当て |
リストワイズMF | ランキング | 協調フィルタリングの行列因数分解を使用してランク付けするリスト単位の学習 |
PLSA | ランキング | 協調フィルタリングの潜在セマンティック モデル |
RankALS | ランキング | パーソナライズされたランキングのための交互最小二乗法 |
ランクSGD | ランキング | ランキング用の協調フィルタリング アンサンブル |
スリム | ランキング | SLIM: トップ N レコメンダー システム用のスパース線形法 |
WBPR | ランキング | 不均一にサンプリングされた項目に対するベイジアンのパーソナライズされたランキング |
WRMF | ランキング | 暗黙的なフィードバック データセットの協調フィルタリング |
ランク-GeoFM | ランキング | Rank-GeoFM: 興味のある地点を推奨するためのランキングベースの地理的因数分解方法 |
SBPR | ランキング | ソーシャルコネクションを活用して協調フィルタリングのパーソナライズされたランキングを向上させる |
アソシエーションルール | ランキング | マルチレベル関連付けルールを使用した推奨アルゴリズム |
PランクD | ランキング | 多様性のあるパーソナライズされたランキング |
非対称SVD++ | 評価 | 因数分解と近傍の融合: 多面的な協調フィルタリング モデル |
自動記録 | 評価 | AutoRec: オートエンコーダーと協調フィルタリングの出会い |
BPMF | 評価 | マルコフ連鎖モンテカルロを使用したベイズ確率行列因数分解 |
CCD | 評価 | Netflix賞の大規模並列協調フィルタリング |
FFM | 評価 | CTR 予測のためのフィールド対応因数分解マシン |
GPLSA | 評価 | ガウス確率的潜在意味解析による協調フィルタリング |
IRRG | 評価 | 暗黙的なアイテム関係をレコメンダー システムに利用する |
MFALS | 評価 | Netflix賞の大規模並列協調フィルタリング |
NMF | 評価 | 非負行列因数分解のアルゴリズム |
PMF | 評価 | PMF: 確率的行列因数分解 |
RBM | 評価 | 協調フィルタリング用の制限付きボルツマン マシン |
RF-Rec | 評価 | RF-Rec: 評価周波数に基づいた推奨事項の高速かつ正確な計算 |
SVD++ | 評価 | 因数分解と近傍の融合: 多面的な協調フィルタリング モデル |
URP | 評価 | ユーザー評価プロファイル: 評価予測用の LDA モデル |
RSTE | 評価 | Social Trust Ensemble で推奨することを学ぶ |
ソーシャルMF | 評価 | ソーシャルネットワークでのレコメンデーションのための信頼伝播を備えた行列因数分解手法 |
ソレック | 評価 | SoRec: 確率的行列因数分解を使用した社会的推奨 |
ソレグ | 評価 | ソーシャル正則化を備えたレコメンダー システム |
時間SVD++ | 評価 | 時間的ダイナミクスを使用した協調フィルタリング |
トラストMF | 評価 | 信頼によるソーシャル協調フィルタリング |
トラストSVD | 評価 | TrustSVD: ユーザーの信頼とアイテム評価の明示的および暗黙的な影響を伴う協調フィルタリング |
性格診断 | 評価 | 性格診断を簡単に紹介 |
スロープワン | 評価 | オンライン評価ベースの協調フィルタリング用のスロープ ワン予測子 |
名前 | 質問 | 説明/論文 |
---|---|---|
EFM | ランキング評価 | フレーズレベルのセンチメント分析に基づいた説明可能な推奨事項のための明示的要因モデル |
TF-IDF | ランキング | 用語頻度 - 文書頻度の逆数 |
HFT | 評価 | 隠れた要素と隠れたトピック: レビュー テキストによる評価の次元を理解する |
トピックMF | 評価 | TopicMF: 評価とレビューを同時に活用して推奨する |
JStarCraft RNS は Apache 2.0 プロトコルに従っており、これに基づくすべての派生作品は派生作品の作成者に属します。
著者 | ホン・ジャオファ |
---|---|
電子メール | [email protected]、[email protected] |
LibRec チームとレコメンデーション システム QQ グループ(274750470) のサポートとレコメンデーションへの協力に心より感謝いたします。
Lu Xugang のサポートと検索にご協力いただきましたことに心より感謝いたします。
JStarCraft プロジェクトに寄付してくださった Hangzhou Chengzi Information Technology Co., Ltd. に心より感謝いたします。