联合Tag-Label的推荐方法:A Joint Approach to Label Classification and Tag Tecommendation
来源:互联网 发布:substring sql 编辑:程序博客网 时间:2024/05/20 07:34
- 基本分类模型
- Tag-Label关联信息
- 本文模型
- 小结
前文总结了推荐经典的推荐算法
由于rating 信息与tag信息是并列性质的信息,所以通常情况下,我们都是单独的处理;标签推荐或者评分预测(利用分类方法);
CLARE:A Joint Approach to Label Classification and Tag Tecommendation 联合Tag与Label之间的关系信息,分别进行分类和标签推荐;将二者的二部图关联信息(非结构化信息)通过重叠套索组方式融合到经典的模型中,(优化过程中用到了乘子罚函数法,矩阵的迹、矩阵的F-范数等信息)。
因为 Label属于大类别信息,它为Tag标签提供了一个上下文范围;同时Tag标签信息也为Label提供了证据;
1 基本分类模型
基本的分类模型使用了常用的分类器,然后构造出损失函数,再加上惩罚项约束,最后最小化这个目标函数即可。
那么:
其中,
2 Tag-Label关联信息
Label 是类别信息,一个文本一般只属于一个类;
Tag 是小标签信息,更加具体、随意;而且一个文本有多个Tag
一个Label 中有多个Tag
多个Label间共享多个Tag
可以使用二部图描述二者的关系:
对于一个Label
根据二部图,可以得到
特征之间存在组关联;利用重叠组套索模型,可以得到:
3 本文模型
本文首先将Tag推荐和Label分类模型进行统一化,相应的变量进行级联;
将特征的组模型作为惩罚项,构造新的目标函数:
组模型有一个问题:组的大小不一致,为此我们利用稀疏矩阵将组大小统一到
引入
原问题转换成:
含有等式约束的最优化问题见博客;
这里使用乘子罚函数法:其中
接下来,使用轮转方向乘子法更新
(1)更新
Trace(ATA)=∑ni∑niai,j∗ai,j=||A||2F
||A+B||2F=∑∑(ai,j+bi,j)2=∑∑(a2i,j+b2i,j+2ai,jbi,j)=||A||2F+||B||2F+2Trace(ATB)
梯度为零即可;这里有进一步的变换和化简;
(3)更新
(2)更新
梯度下降法更新即可;
4 小结
此文模型考虑了Tag-Label信息,利用重叠套索组模型构造特征组约束;
不管在分类领域还是标签推荐领域都取得了很好的结果;
不足之处:
1. 计算Tag-Label关联时,利用邻接矩阵方式,没有考虑他们共现的频率(Tag-Label之间的关联程度不同);
2. Tag信息的噪音很大,需要数据预处理;
- 联合Tag-Label的推荐方法:A Joint Approach to Label Classification and Tag Tecommendation
- WebSphere6.1上出现错误JSPG0123E: Unable to locate tag attribute info for tag attribute converterMessage or label
- 从边际投影中重构类别型联合分布的可视分析方法(A Visual Analytics Approach for Categorical Joint Distribution Reconstruction
- A Novel Multi-label Classification Based on PCA and ML-KNN
- PPP:Joint Pointwise and Pairwise Image Label Prediction 解读
- Delphi中组件Label、Edit、Tag、Memo、RichEdit
- 屏蔽 logcat中某个tag的方法 tag:^(?!TAG)
- Label的创建方法
- Describing People: A Poselet-Based Approach to Attribute Classification
- IOS Create a Label and use bundle
- How To Make a Tag Cloud
- SVN报错 Committing to a tag
- git tag与git tag -a的不同
- Joint Patch and Multi-label Learning for Facial Action Unit Detection
- svn: check out a new branch , realse or tag and merge to branches.
- string分隔tag的方法
- 取得tag的代码方法
- label
- Ripple 效果总结
- Win10重装系统/Ubuntu双系统-----备忘
- Https单向认证与双向认证
- android 热点开发、WiFi热点通信
- C++ 整型和字符串相互转换
- 联合Tag-Label的推荐方法:A Joint Approach to Label Classification and Tag Tecommendation
- 和为S的连续整数序列 JAVA实现
- Resin介绍及配置
- 使用npm安装包
- ZennoPoster
- 如何利用Java库学习神经网络
- Android 环信的简单使用
- CoordinatorLayout和AppBarLayout(android MD 三)
- 入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。